MOOS通信框架初探(一)

鉴于moos官网上资料有很多,此处只是针对于用到的东西进行了学习:

moos-ivp官网网址: https://oceanai.mit.edu/moos-ivp/pmwiki/pmwiki.php?n=Main.HomePage
基础文档如下:这是基础文档里插入图片描述

1. MOOS概述

1.1. MOOS的框架如下:

​ MOOS是一套自主的发布-订阅的中间件,消息由各个app自主订阅,MOOSDB统一分发;(每一个moos应用程序都是一个客户端,都连接在MOOSDB上,这个连接是由客户端建立的); MOOS的应用程序接口允许客户端与MOOSDB之间进行数据传输。
在这里插入图片描述
1.2 MOOS应用中的关键虚函数
在这里插入图片描述
(1) Iterate();(在调用OnNewMail()之后,在每次应用程序迭代时都会调用Iterate()方法。 )
​ 通过该功能可以协调应用程序要执行的工作,基类会定期自动调用iterate函数;可以配置SetAppFreq()调用迭代的速率,也可以通过在任务文件中指定“ AppTick”参数来配置;MOOSApp知道何时调用Iterate。函数MOOSTime以浮点秒为单位返回Unix时间。

(2)OnNewMail();(订阅时使用----用来处理邮件)
​ 如果有新邮件在等待,则varCMOOSApp基类将调用OnNewMail()虚函数,在CMOOSApp :: Run()中调用此函数,返回值是std :: list <CMOOSMsg>形式;可以自由地遍历此集合,以检查谁发送了数据以及数据的相关性并相应地操作数据。

(3) OnConnectToServer();-----末尾一般用来读邮件时注册登记变量
​ 它实际上是来自CMOOSApp拥有的处理所有IPC通信的mComms对象(实例CMOOSCommsObject)中的线程的回调;如果有其他进程发布与特定变量有关的数据,则告诉MOOSDB我们要发送邮件;

(4) OnStartup();--------末尾一般用来注册变量
​ 在应用程序进入其自己的永久循环之前调用此函数。这是实现应用程序的初始化代码的应用程序,尤其是读取配置参数(包括那些修改CMOOSApp基类的默认的参数 )中的文件。

1.3. 客户端之间传递的数据形式受到MOOS的限制:

​ (1) 通常,数据类型是字符串或双精度型 ;

​ (2) 二进制数据可以打包到字符串字段中 ;

​ 其消息类为MOOSMsg ,提供的部分功能如下:

在这里插入图片描述
下一篇就是MOOSApp的编写啦~

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值