简介
通配符订阅是 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
来源: http://www.bubuko.com/infodetail-2580660.html