<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。