Cyber的Transport為上層封裝了底層資料傳輸的細節,上層主要使用Transport,Transmitter,Receiver三個類,其中Transport是工廠類,負責創建Transmitter、Receiver以及Dispatcher(上層不直接使用),Transmitter和Receiver各有三個派生類,對應Cyber的三種資料傳輸方式 ,分別是行程內(Intra)、行程間(Shm)以及網路(RTPS),每種訊息(Channel或Topic)可以在dag檔案中配置資料傳輸方式(OptionalMode),

● 行程內傳輸使用的是函式直接呼叫(回呼)的方式,呼叫鏈條是:
上層Writer---> IntraTransmitter--->IntraDispatcher--->(回呼)IntraReceiver---> (回呼)上層Reader,
● 行程內傳輸是通過共享記憶體輔助實作,鏈用鏈條是:
1、上層Writer---> Segment(共享記憶體)和Notifier(發送通知)
2、ShmDispatcher(有獨立執行緒)---> (主動讀取)Segment---> (回呼)上層Reader,
● 行程間傳輸是通過RTPS(DDS)實作,鏈用鏈條是:
1、上層Writer---> RtpsTransmitter打包成protobuf---> fastrtps發送到網路,
2、fastrtps接收到網路報文---> (回呼)RtpsDispatcher---> (回呼)RtpsReceiver---> (回呼)上層Reader,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/300808.html
標籤:其他
