概述
前言
有一段时间没更新了,这个系列不会涉及到具体项目,只是moos在实际应用的总结。
虽然moos自带编译脚本,但是调试的时候很麻烦,所以直接用qt创建一个moosapp,便于链库和调试。
转载请注明出处
原文链接
完整工程下载
环境配置
vm虚拟机 ubuntu 18.04
QT版本随意
MOOS-ivp 19.8.1
MOOS-ivp的安装可以参考我之前的博文
创建QT工程
打开Qt创建一个控制台工程,qt版本随意。
脚本生成一个moosapp
cd到qt工程的目录,在终端输入生成指令
MyGenMOOSApp qtMoosApp p "you name"
qt工程中添加生成的moosapp文件
添加的文件应该如下图所示两个.cpp一个.h,main.cpp可以删除
在.pro文件中添加依赖
MOOSADDER = /home/m/moos-ivp #你的moosivp路径
INCLUDEPATH += $$MOOSADDER
$$MOOSADDER/include/ivp
$$MOOSADDER/MOOS/MOOSCore/Core/libMOOS/App/include
$$MOOSADDER/MOOS/MOOSCore/Core/libMOOS/Comms/include
$$MOOSADDER/MOOS/MOOSCore/Core/libMOOS/Utils/include
$$MOOSADDER/MOOS/MOOSCore/Core/libMOOS/include
$$MOOSADDER/MOOS/MOOSCore/Core/libMOOS/Thirdparty/getpot/include
$$MOOSADDER/MOOS/MOOSCore/Core/libMOOS/Thirdparty/PocoBits/include
LIBS += -L$$MOOSADDER/build/MOOS/MOOSCore/lib -lMOOS
LIBS += -L$$MOOSADDER/lib -lmbutil
LIBS += -lpthread
LIBS += -lm
编写测试代码
在RegisterVariables函数中,注册一个接收变量
Register("MYTEST", 0);
在OnNewMail函数的for循环中添加下列代码,解析从moosdb收到的数据,并在终端输出
string key = msg.GetKey();
if(key == "MYTEST")
{
//再此添加对订阅消息的处理,消息只有double和string两种数据类型
//如何处理看具体需求
double temp = msg.m_dfVal;//保存
std::cout<<"TEST_VAL="<<temp<<"n";
}
测试
编写一个moos配置文件,只启动一个moosdb
touch moosdb.moos
配置文件中添加以下内容
ServerHost = localhost
ServerPort = 9000
Simulator = true
Community = test
MOOSTimeWarp = 1
ProcessConfig = ANTLER
{
MSBetweenLaunches = 200
Run = MOOSDB @ NewConsole = false
}
启动这个moosdb
pAntler moosdb.moos
如下图所示
启动用qt编译的moosapp
在启动moosdb那个终端中,出现下面的连接信息说明已经我们的qt程序连接到moosdb。
再打开一个终端使用uPokeDB向moosdb推数据
uPokeDB MYTEST=22
qt程序输出
最后
以上就是清脆蜜蜂为你收集整理的MOOS-ivp 使用qt创建一个moosapp前言环境配置创建QT工程脚本生成一个moosappqt工程中添加生成的moosapp文件在.pro文件中添加依赖编写测试代码测试的全部内容,希望文章能够帮你解决MOOS-ivp 使用qt创建一个moosapp前言环境配置创建QT工程脚本生成一个moosappqt工程中添加生成的moosapp文件在.pro文件中添加依赖编写测试代码测试所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复