概述
MOOS-ivp 实验四 MOOS编程入门(2)MOOSapp类讲解
文章目录
- MOOS-ivp 实验四 MOOS编程入门(2)MOOSapp类讲解
- 前言
- 一、MOOSapp父类的结构和方法
- 1.使用MOOSapp父类创建自己的app
- 2.MOOSapp主要的可重载功能
- 二、MOOSapp的实用函数
- 1.The Notify() function
- 2.The Register() function
- 3.The UnRegister() function
- 4。其他函数成员
- 总结
前言
因为在学习的过程中遇到了问题,不知道如何订阅变量,于是专门开一片文章来记录关于MOOS类的内容。详情请参考官网帮助文档《Help Topic: The MOOSApp Superclass》一、MOOSapp父类的结构和方法
几乎在moos应用树种的所有的MOOS应用文件都继承自MOOSapp这个父类中。这个父类通过给应用程序构建配置模板、订阅邮件、迭代循环来方便我们对于app的构建工作。下面会详细写一下关于MOOSapp类中的基本结构,以及用这些结构如何方便的构建使用的app,
1.使用MOOSapp父类创建自己的app
同过MOOSapp父类创建自己的app的过程类似于我们下面给出的这个pFooBar应用程序的例子
#include "MOOS/libMOOS/MOOSLib.h"
class FooBar : public CMOOSApp
{
public:
FooBar();
~FooBar();
protected:
bool OnNewMail(MOOSMSG_LIST &NewMail);
bool Iterate();
bool OnConnectToServer();
bool OnStartUp();
};
虽然可以创建文件夹并且把上面的内容复制到头文件FooBar.h文件里去,但更好的办法是用一个脚本来创建一个模板文件
GenMOOSApp [app-name] [prefix]
示例如下:
GenMOOSApp FooBar p
还有一个用于生成MOOScasting的版本
GenMOOSApp_AppCasting FooBar p
关于MOOScasting的更多内容看网站,这里还包含了如何把一个MOOSapp转换为MOOScasting app
http://oceanai.mit.edu/ivpman/appcasting.
2.MOOSapp主要的可重载功能
MOOSapp的所有功能包括发布、订阅、处理程序间传递的邮件都是通过MOOSDB来进行的。所有的moos应用程序都是MOOSapp父类的子类,主要的程序都是通过写下面三个关键程序来实现的(这图出现了好几次了):
二、MOOSapp的实用函数
1.The Notify() function
这个函数是应用程序将邮件发送到MOOSDB的主要方法,并且这个函数有多种版本,版本取决于发布的数据类型。一般来说MOOS发布的信息通常包含时间和发布来源,但是有些辅助信息也很有用,所以有些版本也可以对辅助信息进行发布。下面是常用的一些函数版本,后面的参数不同。
bool Notify(string varname, double value)
bool Notify(string varname, string value, string auxilliary_info)
bool Notify(string varname, double value, string auxilliary_info)
bool Notify(string varname, vector<unsigned char> binaray_data)
bool Notify(string varname, vector<unsigned char> binaray_data, string auxilliary_info)
2.The Register() function
通过这个函数可以向mail注册变量,后面的interval参数指的是我们希望接收mail的频率。每秒一次就赋值为1,默认是所有变化都发送值是0。多次注册同一个mail也不会有什么影响,但是要修改接收频率的话必须先注销mail再重新注册。
bool Register(string varname, double interval=0)
bool Register(string varname_pattern, string appname_pattern, double interval=0)
3.The UnRegister() function
这个函数的作用是对变量进行注销,如果对一个变量的信息不再感兴趣了,那么可以Onnewmail中忽略,或者将其注销。注销的话可以使得程序更小
bool UnRegister(string varname)
之后有一堆MOOSapp的函数成员没有具体解释,不过最重要的三个我们已经知道其作用了,基本上足够我们来对程序进行书写了 我也将这些函数列举出来,看名知意。
4。其他函数成员
这些函数的主要作用都是对程序变量进行修改或者获取,因为类的变量都是protect对象所以不能直接在派生类中进行修改。
总结
关于MOOSapp类讲解的主要内容就这些,主要讲解了三个成员函数的主要功能,分别是将变量发布到MOOSDB,以及注册和注销变量。剩下的一些函数主要作用就是读取和修改类中的变量了。
最后
以上就是舒心皮皮虾为你收集整理的MOOS-ivp 实验四 MOOS编程入门(2)MOOS类讲解MOOS-ivp 实验四 MOOS编程入门(2)MOOSapp类讲解前言一、MOOSapp父类的结构和方法二、MOOSapp的实用函数总结的全部内容,希望文章能够帮你解决MOOS-ivp 实验四 MOOS编程入门(2)MOOS类讲解MOOS-ivp 实验四 MOOS编程入门(2)MOOSapp类讲解前言一、MOOSapp父类的结构和方法二、MOOSapp的实用函数总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复