利用Microsoft Robotics Studio远程控制机器人
2009-05-21 08:30:05 来源:WEB开发网第三步:使用Brick Service
Brick Service 负责处理对机器人的访问,它把执行请求发送给机器人并且将机器人的传感器信息发送回订阅Brick Service的服务。
在前面的两个实例Service Tutorial 4 (C#) - Supporting Subscriptions和 Service Tutorial 5 (C#) – Subscribing中我们了解了服务的订阅(subscription)方法,但是这两个例子中描述的服务订阅和这里的并不完全合适,前面实例中的服务订阅会将所有传感器数据返回给订阅者,而下面所说的自定义服务(Custom Subscriptions)只返回传感器数据的一个子集,例如一个订阅了brickService的红外传感器服务并不想获取其他传感器的数据,它只是获得红外传感器的数据,如一个接触(Contract)传感器服务只订阅了碰撞传感器(bumper)的数据,它也不会得到其他传感器的数据,下面就讲解如何是自定义订阅服务。
自定义订阅(Custom Subscriptions)
和一般订阅的实现方式一样,自定义订阅同样使用订阅管理器(subscription manager)处理消息的通知,不同的是,当一个自定义订阅请求发送到被订阅服务,同时也会附带发送一个消息,这个消息用来告诉被订阅服务我们要订阅那些传感器的数据,这个消息是一个列表(List),是一个要订阅的传感器的名称的列表,被订阅服务可以支持这个传感器名称列表的“逻辑或”或者“逻辑与”操作(逻辑或即如何列表里有任一个数据改变,就要发出通知,逻辑与即列表里所有传感器数据发生改变才发出通知。)
下面的代码演示了使用一个逻辑或来订阅服务,也就是说当任何一个过滤字符串匹配后,它都会通知订阅者,假如逻辑与被实现,需要所有的过滤字符串匹配后才会通知订阅者。
更多精彩
赞助商链接