位元組1包頭位元組始終為255。標頭位元組僅表示新資料報的開始。
位元組2通常的做法是傳送乙個位元組告知資料報長度,以便接收**知道資料報中預期有多少個位元組。 在我們的情況下,資料報始終為13個位元組長,因此該位元組始終為13個位元組。
位元組3指令型別位元組是您要傳送到韌體的命令的主要識別符號。 請參閱「命令索引」部分以檢視指令型別的列表。
了解命令的三種型別
您會注意到每個命令最多可以有3個版本。 例如,命令40可以作為40、41或42傳送。
將其視為在單個位元組中傳送兩條資訊可能是最簡單的。
命令ie:0/10/20/40/50/80
帶有命令ie的r / w請求:0/1/2
每個命令具有三種不同型別的讀/寫0 =寫無回波包1 =用回波包寫2 =已讀
例如,如果您要呼叫命令40,則它可能是以下版本之一:40 =寫無回波包41 =使用回波包寫42 =已讀
回音包當請求回送資料報時,韌體將執行寫命令,然後返回序列資料報。序列資料報將與接收到的資料報相同,因此稱為名稱。回聲包。
使用回音包的原因主要有兩個:確認已接收並寫入資料在**中充當時序控制項。通常,在第乙個命令完成之前,您不希望下一部分**執行。因此,在繼續進行下一部分**之前,您需要等待回顯被返回。
請注意,並非每個命令都具有所有三個r / w選項。某些命令僅允許讀取,而某些命令則沒有0或無回聲的選項。
位元組4指令子型別位元組用於命令子型別。例如,對於用於設定模型變數的指令型別40,有以下子型別指令:
例項型別40子型別示例
1設定機械人模型
10讀/寫乙個模型變數
20配置乙個模型關節
21讀/寫乙個關節的最大值/最小值
22讀/寫乙個抓手的最大值/最小值
位元組5 /位元組6 /位元組7 /位元組8
這些位元組用於傳送命令所需的詳細資訊。 它們可能是暫存器位址,伺服id,聯合id或其他資訊。
位元組9 /位元組10 /位元組11 /位元組12
資料位元組用於傳送有符號整數。 由於乙個位元組只能儲存0〜255個有符號整數之間的值,因此分成4個位元組。
位元組13
校驗和用於檢查序列資料報是否已成功完整傳送,以及所有資料是否正確。
請注意:包頭不包含在校驗和中校驗和的
計算公式如下:
校驗和=(長度+指令型別+指令使用+指令詳細資訊1 +指令詳細資訊2 +指令詳細資訊3 +指令詳細資訊4 +資料位元組1 +資料位元組2 +資料位元組3 +資料位元組4)%256
讀寫所有舵機暫存器
header
length
instruction type
value range
servo count
register address low byte
register address high byte
value range
25513
30data integer(1)
data integer(2)
data integer(3)
data integer(4)
checksum
讀取關節的2d點/重心
header
length
instruction type
value range
servo count
register address low byte
register address high byte
value range
25513
8240
data integer(1)
data integer(2)
data integer(3)
data integer(4)
checksum
x position low byte
x position high byte
y position low byte
y position high byte
ARP協議 位址解析協議
網路層使用的是ip位址,但實際網路的鏈路上傳送資料幀時,最終還是必須使用該網路的硬體位址。arp快取記憶體 ip位址到硬體位址的對映表 那麼一台主機 a 是如何獲知本區域網內其他主機或路由的硬體位址的?主機a廣播arp請求分組 我的ip是 硬體位址是 請告知我ip位址為 主機的硬體位址。本區域網內的...
MQTT協議 MQTT協議解析
協議就是通訊雙方的乙個約定,即,表示第1位傳輸的什麼 第2位傳輸的什麼 在mqtt協議中,乙個mqtt資料報由 固定頭 fixed header 可變頭 variable header 訊息體 payload 三部分構成。mqtt 資料報結構 固定頭存在於所有mqtt資料報中,其結構如下 bit76...
MQTT 協議解析
wireshark安裝包 網路抓包工具 qmqtt原始碼 mqtt客戶端原始碼 qt版本 官網 英文版協議說明文件 中文版協議說明文件 1.1幀結構 fixed header,present in all mqtt control packets variable header,present in...