如題,實現以上需求。主要有三個步驟:
一、添加一個新的topic(話題)(以uORB_test.msg爲例)
1.在根目錄中msg文件下添加uORB_test.msg,並在該文件中加入所需的數據。(在新版本中必須要添加時間戳,否則編譯不過)
2.在msg文件下的CMakeLists.txt文件中添加uORB_test.msg。
3.編譯。
注:要編譯過後在build/xxx/uORB/topic文件中才有相應的topic,這時候添加纔有效。xxx依據自身板子和編譯的代碼版本有關。
二、uORB消息發佈。
1.在需要用到該topic的文件中包含頭文件
2. 聲明並定義一個該topic類型的結構體,清零用以裝新的uORB數據。
3.廣播一下該topic,獲得消息句柄。告訴系統當下我該用什麼結構體
4.給該結構體賦值。使用該topic ID,消息句柄,數據結構體發佈該消息。
三、uorb消息訂閱
1.聲明並定義一個該topic類型的結構體,清零,用以裝新的uorb數據。
2. 訂閱該topic的消息,獲得句柄。
3.可以用阻塞等待,也可以用檢查更新,也可以不用,依具體情況而定。
4.使用消息ID,訂閱句柄,topic類型結構體取出數據
完成以上步驟,可以編譯並燒錄代碼,運行相關進程,打印test1,2,3數據,檢查是否傳輸成功。