为行为树添加Drogon控制器

文章介绍了如何利用Drogon框架创建控制器项目,包括静态工程的构建、动态控制器的添加,以及处理POST请求的方法。在.cc文件中添加响应命令,.h文件中映射请求路径。接着将行为树的文件集成到项目中,修改CMakeLists.txt以组合所有部分,并最终编译生成可执行文件。通过POST请求触发行为树功能并接收响应。
摘要由CSDN通过智能技术生成

1、在下面的网站里,创建控制器项目和.cc等文件:(先用静态创建工程,再用动态创建控制器)
CHN 03 快速开始 · drogonframework/drogon Wiki · GitHubhttps://github.com/drogonframework/drogon/wiki/CHN-03-%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B


2、修改生成的.cc和.h文件,这里只要把行为树的.cpp和.h文件粘进来就可以了。

① 因为这里我们打算行为树是接收到信号被触发的,所有用POST方式,那么需要在.cc文件最后,加上相应POST的响应命令,如下所示:

    Json::Value ret;
    ret["code"] = 200;
    std::string ip("192.168.13.18");
    ret["dstnode"] = ip;
    ret["msg"] = "success";

    auto resp = HttpResponse::newHttpJsonResponse(ret);
    callback(resp);

② 修改.h文件如下所示:(主要是分别在两端注释下加了两行代码,chatGPT解释)

第一行作用:将路径为"/trigger"的POST请求映射到function::trigger控制器类中相应的处理方法。换句话说,当有一个POST请求发送到"/trigger"路径时,Drogon框架将调用function::trigger控制器类中对应的方法来处理该请求。

第二行作用:处理接收到的HTTP请求。它接受一个指向 HttpRequest 对象的智能指针引用,用于获取请求的详细信息。另外,该函数还接受一个回调函数,当处理完请求后,可以使用回调函数来发送响应给客户端。

#pragma once

#include <drogon/HttpController.h>

using namespace drogon;

namespace container
{
class function : public drogon::HttpController<function>
{
  public:
    METHOD_LIST_BEGIN
    // use METHOD_ADD to add your custom processing function here;
    // METHOD_ADD(seepage::get, "/{2}/{1}", Get); // path is /container/seepage/{arg2}/{arg1}
    // METHOD_ADD(seepage::your_method_name, "/{1}/{2}/list", Get); // path is /container/seepage/{arg1}/{arg2}/list
    // ADD_METHOD_TO(seepage::your_method_name, "/absolute/path/{1}/{2}/list", Get); // path is /absolute/path/{arg1}/{arg2}/list
    
    METHOD_ADD(function::trigger, "/trigger", Post);

    METHOD_LIST_END
    // your declaration of processing function maybe like this:
    // void get(const HttpRequestPtr& req, std::function<void (const HttpResponsePtr &)> &&callback, int p1, std::string p2);
    // void your_method_name(const HttpRequestPtr& req, std::function<void (const HttpResponsePtr &)> &&callback, double p1, int p2) const;
    void trigger(const HttpRequestPtr &req, std::function<void (const HttpResponsePtr &)> &&callback);
};
}

3、把行为树文件夹目录下的其他内容粘贴过来。


4、修改CMakeLists.txt。【非常重要,成败在此!】

方法:将行为树的部分和原有创建的部分相结合,基本就是拼起来就行,不需要修改什么。


5、编译生成可执行文件后,执行代码;接着使用插件POST相应IP和端口的trigger,得到响应,大功告成!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一棵纯白菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值