MOOS例程HelloWorld-详细注释
来源:互联网 发布:js float 保留两位小数 编辑:程序博客网 时间:2024/05/24 05:50
MOOS学习笔记1——HelloWorld
例程
/** @功能:通讯客户端的最简单程序,向MOOSDB发送名为"Greeting"* 数据"Hello",并向MOOSDB订阅该信息,接收信息后显示* 出来*//** @功能:插入通讯类头文件* @介绍:MOOSAsyncCommClient与DB连接以后启动两个不同步的读写线程,* 极大的减少了时间延迟。*/#include"MOOS/libMOOS/Comms/MOOSAsyncCommClient.h"/** @功能:bool Fn(void * pParam)型函数,作为SetOnConnectCallBack()函数的* 初始参数,在与服务器连接时订阅变量使用。*/bool OnConnect(void *pParam){ /* * reinterpret_cast是强制类型转换符!用来处理无关类型转换,重新解释底层的编码; * 转换空指针为CMOOSCommClient类型的指针 * CMOOSCommClient为MOOS最重要的类之一,单线程的最初的通讯类 */ CMOOSCommClient *pC=reinterpret_cast<CMOOSCommClient*>(pParam); //第一个参数为订阅通知的变量名 //第二个参数为订阅信息到来的最小时间间隔,为0表示以最大速度获取 pC->Register("Greeting",0.0); return true;}//主函数形参C++ primer P196//第二个参数argv是元素为字符串指针的数组,第一个元素(编号为0)为函数名或空字符串,最后一个元素值为0//第一个参数argc为数组中字符串的数量,实际输入的字符串数量,值为编号的最大值,即去掉0值的剩下的字符串数量int main(int argc,char *argv[]){ //初始化通讯 MOOS::MOOSAsyncCommClient Comms; //调用用户的函数订阅变量通知,第一个参数为函数指针形参, //第二个参数为传递给用户函数的形参 //输入函数名自动转换为函数指针, //函数原型为void SetOnConnectCallBack ( bool (* pfn )( void * pParamCaller ),void * pCallerParam ); Comms.SetOnConnectCallBack(OnConnect,&Comms); //启动客户端线程,告知客户端运行MOOSDB的机器的名字和地址, //以及MOOSDB的端口,给客户端一个名字。 //最后一个参数指定每秒与MOOSDB通讯多少次,默认为5。 Comms.Run("localhost",9000,"EX10"); //MOOSMSG_LIST是std :: list <CMOOSMsg>的别名, //list为双向链表容器,类似于vector,CMOOSMsg用于打包moos数据。 //CMOOSMsg是一个类 MOOSMSG_LIST M; for(;;){ //暂停当前的线程1000毫秒 MOOSPause(1000); //发送数据,变量名为Greeting,变量值为Hello Comms.Notify("Greeting","Hello"); //取回客户端工作线程内已准备好的数据 Comms.Fetch(M); //表示迭代器类型 MOOSMSG_LIST::iterator q; //begin(),end(),返回迭代器类型,end()迭代器返回最后一个元素 //迭代器不要用<>号,用== != for(q=M.begin();q!=M.end();q++){ //输出消息的总结 q->Trace(); } } return 0;}
阅读全文
0 0
- MOOS例程HelloWorld-详细注释
- pXRelay 例程 MOOS 任务配置文件
- 汇编语言 HelloWorld (详细注释版)
- C# 多线程控制控件实例(例程简单,注释详细)
- C# 多线程控制控件实例(例程简单,注释详细)
- C# 多线程控制控件实例(例程简单,注释详细)
- Ajax入门实例----HelloWorld附源码详细注释
- Ajax入门实例----HelloWorld附源码详细注释
- 迅为Exynos4412开发板例程及注释——QT环境配置与HelloWorld
- Android HAL:helloworld例程
- OpenCL例程1-HelloWorld
- helloworld Snap例程
- qt 菜单例程注释
- Lucene创建和查询索引库的HelloWorld(含详细注释)
- hadoop SequenceFile 写入例程注释
- hadoop SequenceFile 读取例程注释
- hadoop SequenceFile 读取例程注释
- EmguCV学习之例程详解(01):HelloWorld
- Java 中的 static 使用之静态方法
- lua脚本学习8
- Asp.net Core 2.0+EntityFrameWorkCore 2.0添加数据迁移
- Codeforces Round #439 (Div.2)
- 线性表
- MOOS例程HelloWorld-详细注释
- 2017 10 08 NOIP2017模拟赛
- 数据结构顺序表实现
- 10个重要的Linux ps命令实战
- lua脚本学习9
- 内部类反序列化问题(fastjson exception: create instance error)
- 使用VS Code编译运行C/C++程序
- 在CentOS7上安装MongoDB
- 3. Spring Boot 初步了解