鉴于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的编写啦~

MOOS通信框架初探(一)相关推荐

  1. 网络通信应用开发利器!—— ESPlus —— ESFramework通信框架的增强库

    概述 ESPlus 是基于网络通信框架ESFramework通信框架通信框架的增强库.为了更贴近实际应用,加快网络通信系统的开发,ESPlus在ESFramework通信框架原生功能的基础上,进行了再 ...

  2. 高可靠性的php通信框架,跨平台PHP高可靠性通信框架,OHSCE_V0.1.25 发布

    Open HI-REL Signal Communication Engine(简称OHSCE)是一款高可靠性跨平台的PHP通信框架,对Windows友好且同时支持Linux和OS X.对TCP.UD ...

  3. java 进程通信框架,MediatR-进程内的消息通信框架

    MediatR是一款进程内的消息订阅.发布框架,提供了Send方法用于发布到单个处理程序.Publish方法发布到多个处理程序,使用起来非常方便.目前支持 .NET Framework4.5..NET ...

  4. 【EventBus】事件通信框架 ( 总结 | 手写事件通信框架完整代码示例 | 测试上述框架 )

    文章目录 一.消息中心 二.订阅方法时的注解 三.订阅方法封装 四.订阅对象-方法封装 五.线程模式 六.Activity 中测试上述框架 七.博客源码 一.消息中心 该消息中心是事件通信框架的核心代 ...

  5. Netty通信框架Java实现小记

    1.Netty介绍    Netty通俗地说就是一套Socket通信框架,提供异步的.事件驱动的网络应用程序框架和工具,可快速开发高性能.高可靠性的网络服务器和客户端程序 2.Netty的特性     ...

  6. 高性能 TCP UDP 通信框架 HP-Socket v3.2.3

    HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++.C#.Del ...

  7. 介绍开源的.net通信框架NetworkComms

    Networkcomms 是一款C# 语言编写的TCP/UDP通信框架  作者是英国人  以前是收费的 目前作者已经开源  开源地址是:https://github.com/MarcFletcher/ ...

  8. ESFramework 可复用的通信框架(序)

    自从2004年7月开始,就一直从事N层C/S结构的服务端的开发,从最初的熟悉各种Windows Socket API.熟悉完成端口模型,探索高效稳定的服务端通信模型,时至今日,慢慢的积累了一些C/S服 ...

  9. AgileEAS.NET SOA 中间件平台.Net Socket通信框架-完整应用例子-在线聊天室系统-代码解析...

    一.AgileEAS.NET SOA中间件Socket/Tcp框架介绍 在文章AgileEAS.NET SOA 中间件平台.Net Socket通信框架-介绍一文之中我们对AgileEAS.NET S ...

最新文章

  1. 太胖就会变秃,这回真的有依据了!日本学者发现肥胖会诱导毛囊衰竭 | Nature...
  2. wireshark协议解析器原理与插件编写
  3. 网络爬虫(Web crawler)|| 爬虫入门程序
  4. 数字图像处理实验(7):PROJECT 04-03 , Lowpass Filtering
  5. 这样一款超低功耗的集成 2.4 GHz Wi-Fi 和支持长距离的 Bluetooth LE 5.0的SOC,你怎么能不爱它?
  6. CocoStudio 的使用
  7. mysql 5.5 驱动jar包_MySQL驱动jar包下载
  8. 网易云课堂资源合集百度云分享
  9. 王道机考系列——数学问题
  10. 网易蜂巢(云计算基础服务)MongoDB服务重磅来袭
  11. MDCC为移动开发者服务:一看、一聊、一聚
  12. ipad上怎么打开html文件,ipad HTML文件怎么打开
  13. 某剧院有33排座位java_行测备考资料:数量关系深处隐藏的整除技巧
  14. 0.91英寸和0.96英寸OLED驱动区别
  15. Linux系统Word转换PDF,文档字体乱码不显示问题解决。
  16. 路由器绑定mac地址
  17. 谷歌浏览器突然翻译不了怎么办?
  18. APP热更新方案(转)
  19. GDI基础(1):绘制线条和图形
  20. 新浪博客代码(第九十三期)-几种视频播放器的代码

热门文章

  1. VPN的搭建与使用--CentOS7.9(OpenVpn环境配置)
  2. 斐波纳契数列 python123
  3. 书法文化类毕业论文文献都有哪些?
  4. 解决微信上下滑动出现黑底背景问题
  5. 同一页面显示不同内容
  6. 蓝桥杯 算法训练 印章
  7. 网络测速一原理及实例
  8. 游戏开发商如何租用合适稳定的游戏服务器?
  9. Elasticsearch 7.10 之 Similarity module
  10. PS作业 不一样的我