<b>2.2.3 服务</b>
当你需要直接与节点通信并获得应答时,将无法通过主题实现,而需要使用服务。
服务需要由用户开发,节点并不提供标准服务。包含消息源代码的文件存储在srv文件夹中。
像主题一样,服务关联一个以功能包中.srv文件名称来命名的服务类型。与其他基于ros文件系统的类型一样,服务类型是功能包名称和.srv文件名称的组合。例如chapter2_tutorials/srv/chapter2_srv1.srv文件的服务类型是chapter2_tutorials/chapter2_srv1。
ros关于服务的命令行工具有两个:rossrv和rosservice。我们可以通过rossrv看到有关服务数据结构的信息,并且与rosmsg具有完全一致的用法。
通过rosservice可以列出服务列表和查询某个服务。支持的命令如下所示:
rosservice
call/service args 根据命令行参数调用服务。
rosservice find
msg-type 根据服务类型查询服务。
info/service 输出服务信息。
rosservice list 输出活动服务清单。
type/service 输出服务类型。
uri/service 输出服务的rosrpc uri。