嵌入式開發中,自定義協議的解析與組包
2023-08-01 14:40:43 來源:面包芯語
比如針對下面的這樣一個協議:
數據在發送時涉及到一個大小端的概念,大小端是針對多字節數據的傳輸,比如上述協議中字段1,假設兩字節內容為0x0001,先發送0x01后發送0x00,稱為小端模式;先發送0x00后發送0x01,稱為大端模式。
(資料圖片)
假設字段1內容為0x001,字段2內容為0x40533333(對應為3.3)
假設按照小端方式發送,下面是幀數據:
55 AA 01 00 33 33 53 40 ED
下面來看看如何解析:
簡單來說就是硬來,按照數組的先后順序逐個重組解析,如果協議比較長,代碼里會充斥著很多的數組下標,一不小心就數錯了。而且如果更改協議的話,代碼要改動很多地方。
后來有人告訴我可以定義個結構體,然后使用memcpy函數直接復制過去就完事了。
再后來,又見到有人用如下代碼實現:
除了上述2個函數,完整的轉換包含以下函數,就是將Bytes轉換為不同的數據類型,以及將不同的數據類型轉換為Bytes。
組包的過程和解析的過程正好相反,這里不再贅述。你在開發中遇到這種問題時,又是如何處理的呢?歡迎留言討論!
關鍵詞:
相關文章
精彩推送
歐晶科技(001269)盤中異動 股價振幅達6.72% 跌6.98% 報53.74元(08-01)
摘要:2023年08月01日歐晶科技(001269)股價大幅跳水6 98%,該股報53
來源:自選股寫手
