MOOS通配符订阅

MOOS通配符订阅

简介

通配符订阅是MOOSV10的重要进步,客户端可以通过此方式订阅名字和来源符合简单正则表达式的数据。

现在仅支持“*”和“?”两种通配符,其中“*”指任意数量的字符,“?”指任意单个字符。

例子

以下使用CMOOSApp::Register(sVarPattern,sAppPattern,dfInterval)函数为例展示通配符订阅的格式。

bool MyApp::OnConnectToServer()
{
	//订阅所有以“image”结尾的变量
    //从任何以“camera_”开始的进程中
    Register("*image","camera_*",0.0);
    
    //订阅来自名为“system_control”进程的任何单一变量
    Rrgister("*","syster_cintrol",0.0);
    
    //订阅任何名称以“error_”开始的变量
    //由名称为9个字符的以“process_0”开始的进程产生
    //注意通讯速度为每秒最多两次
    Register("error_*","process_0",2.0);
    return true;
}

这种方式提供了一种简洁有效的方式订阅数据,尤其是可以实现大范围变量的订阅;比如指定过程的所有变量——Register("*","ProcessName");甚至来自所有过程的所有变量——Register("*","*")。

注意

[2049]错误

发生该错误时显示的内容为

Too many unread incoming messages [2049] : purging
The user must read mail occasionally

posted @ 2018-04-29 21:11  静世孔明  阅读(279)  评论(0编辑  收藏  举报