px4自定義uORB消息,並實現收發

 

如題,實現以上需求。主要有三個步驟:

一、添加一個新的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數據,檢查是否傳輸成功。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章