4G路由器串口自定義協議配置使用示例(路由器串口配置命令)
4G路由器串口自定義協議的目標在于減少客戶的OEM定制,盡可能地滿足不同客戶對數據封包的不同需求。當前可支持用戶靈活定制的消息結構字段有消息前綴、消息長度域、消息序列號、設備ID、業務數據域、CRC校驗及消息后綴七個字段。
下面以4G路由器局域網測試為例,分別說明以上使用情況。
1. 4G路由器lan口地址為192.168.8.1,路由器下面網口連接的電腦地址為192.168.8.152,分別如下:
2. 4G路由器smartlink串口參數設置。
2.1設置“模式配置”及各參數定義說明如下(以tcp客戶端工作模式為例)。
啟用:開啟串口應用。
名稱:自定義設置一個名稱,默認為空。
工作模式:選擇串口工作模式,這里以TCP客戶端為例。
服務器地址:填寫遠端數據接收中心的服務器ip地址和端口。
協議:選擇“自定義”;
消息前綴: 可選,不支持前綴時值為空,即可!該值必須配置為十六進制串,支持 以0x開頭或不以0x開頭的十六進制。最大支持4個字節的前綴。
消息長度:可選,消息長度占用0字節時表示不帶消息長度域。可支持1個或2個字節的 消息長度域!高字節在前。
消息長度的值包括:消息長度域、消息序列號、設備ID、業務數據和CRC校 驗值五個字段的長度。
消息序列號:可選,序列號占用0字節時表示不帶消息序列號域。可支持1個或2個字節 的消息序列號域!高字節在前。
設備ID:可選,為空時表示不帶設備ID;默認為17位的產品序列號內容長度。
業務數據:必填,包括協議頭尾在內,整個消息包的長度最大為65535。
對于心跳消息,該值為配置的心跳內容。
CRC校驗:CRC校驗值基于 消息長度、消息序列號、設備ID、業務數據 四個部分進行校驗。
CRC校驗算法為CRC8, CRC16_ARC, CRC16_BuyPass, CRC16_CCITT_False, CRC16_Genbus, CRC16_Kermit, CRC16_X25, CRC16_Modem。
消息后綴:與消息前綴相同,可選,不支持前綴時值為空,即可!該值必須配置為十六進 制串,支持以0x開頭或不以0x開頭的進十六進制。最大支持4個字節的前 綴。
設備模式:僅支持透傳模式,完全透明傳輸。
啟用心跳:串口是否支持心跳包上傳功能,心跳包內容位ASCII格式。默認不開啟,可根據具體情況設置。
2.2設置“串口配置”
串口com1的各波特率和奇偶校驗位必須和用戶串口設備完全一樣,否則服務器端數據會接收不到或異常。
以上所有參數設置完,必須點擊“保存及應用”按鈕使參數生效。設備連接成功如圖:
3. 4G路由器串口和電腦TCP/UDP工具進行局域網數據收發測試。
具體地,4G路由器串口端使用DB9母頭(孔)接線端子,電腦端使用USB轉DB9公頭(針)連接線接好,然后電腦上分別打開sscom32串口助手和TCP/UDP測試工具進行數據收發測試。
3.1 設備端不帶 消息前綴、后綴、無消息長度及消息序列號,數據收發測試如下:
注意:服務器端如果需要下發數據到4G路由器,則必須按照當前自定義格式下發,否則串口端無法正常解析數據。
示例:
設備ID:1120ZR21911306677(對應HEX:31 31 32 30 5A 52 32 31 39 31 31 33 30 36 36 37 37)
消息前綴HEX數據:空
消息長度:0字節
消息序列號:0字節
消息后綴HEX數據:空
串口發送HEX數據:11 22 33
則服務器端接收HEX數據為:31 31 32 30 5A 52 32 31 39 31 31 33 30 36 36 37 37 11 22 33
服務器下發HEX數據:31 31 32 30 5A 52 32 31 39 31 31 33 30 36 36 37 37 66 77 88
則串口側接收HEX數據為:66 77 88
3.2 設備端帶 消息前綴、后綴、無消息長度及消息序列號(均為0字節),數據收發測試 如下:
注意:服務器端如果需要下發數據到4G路由器,則必須按照當前自定義格式下發,否則串口端無法正常接解析數據。
示例:
設備ID:1120ZR21911306677(對應HEX:31 31 32 30 5A 52 32 31 39 31 31 33 30 36 36 37 37)
消息前綴HEX數據:7B7B
消息后綴HEX數據:7D7D
串口發送HEX數據:11 22 33
則服務器端接收HEX數據為:
7B 7B 31 31 32 30 5A 52 32 31 39 31 31 33 30 36 36 37 37 11 22 33 7D 7D
服務器下發HEX數據:
7B 7B 31 31 32 30 5A 52 32 31 39 31 31 33 30 36 36 37 37 66 77 88 7D 7D
則串口側接收HEX數據為:66 77 88
3.3 設備端帶 消息前綴、后綴、無消息長度,有1或2個字節消息序列號,數據收發 測試分別如下:
注意:服務器端如果需要下發數據到4G路由器,則必須按照當前自定義格式下發,否則串口端無法正常接解析數據。
示例1:
設備ID:1120ZR21911306677
(對應HEX:31 31 32 30 5A 52 32 31 39 31 31 33 30 36 36 37 37)
消息前綴HEX數據:7B7B
消息后綴HEX數據:7D7D
消息序列號:1個字節,支持范圍00-ff,即0-255個消息
串口發送HEX數據:11 22 33
則服務器端接收HEX數據依次為:
7B 7B 01 31 31 32 30 5A 52 32 31 39 31 31 33 30 36 36 37 37 11 22 33 7D 7D
7B 7B 02 31 31 32 30 5A 52 32 31 39 31 31 33 30 36 36 37 37 11 22 33 7D 7D
7B 7B 03 31 31 32 30 5A 52 32 31 39 31 31 33 30 36 36 37 37 11 22 33 7D 7D
......
服務器下發HEX數據:
7B 7B 09 31 31 32 30 5A 52 32 31 39 31 31 33 30 36 36 37 37 66 77 88 7D 7D
則串口側接收HEX數據為:66 77 88
示例2:
設備ID:1120ZR21911306677
(對應HEX:31 31 32 30 5A 52 32 31 39 31 31 33 30 36 36 37 37)
消息前綴HEX數據:7B7B
消息后綴HEX數據:7D7D
消息序列號:2個字節,高字節在前,支持范圍0000 -ffff,即0-65355個消息
串口發送HEX數據:11 22 33
則服務器端接收HEX數據依次為:
......
7B 7B 00 0A 31 31 32 30 5A 52 32 31 39 31 31 33 30 36 36 37 37 11 22 33 7D 7D
7B 7B 00 0B 31 31 32 30 5A 52 32 31 39 31 31 33 30 36 36 37 37 11 22 33 7D 7D
7B 7B 00 0C 31 31 32 30 5A 52 32 31 39 31 31 33 30 36 36 37 37 11 22 33 7D 7D
......
服務器下發HEX數據:
7B 7B 00 09 31 31 32 30 5A 52 32 31 39 31 31 33 30 36 36 37 37 66 77 88 7D 7D
則串口側接收HEX數據為:66 77 88
3.4設備端帶 消息前綴、后綴,并且有消息長度及消息序列號(都以2個字節為例),數據收發測試如下:
示例:
設備ID:1120ZR21911306677(對應HEX:31 31 32 30 5A 52 32 31 39 31 31 33 30 36 36 37 37)
消息前綴HEX數據:7B7B
消息后綴HEX數據:7D7D
消息長度:2個字節,高字節在前,支持范圍0000 -ffff,即0-65355個消息,長度范圍 =消息長度自身(2B)+消息序列號(2B)+設備ID(17B)+數據內容(實際長度B)=21B+數據內容(實際長度B)
消息序列號:2個字節,高字節在前,支持范圍0000 -ffff,即0-65355個消息
串口發送HEX數據:11 22 33
則服務器端接收HEX數據依次為:
7B 7B 00 18 00 00 31 31 32 30 5A 52 32 31 39 31 31 33 30 36 36 37 37 11 22 33 7D 7D
7B 7B 00 18 00 01 31 31 32 30 5A 52 32 31 39 31 31 33 30 36 36 37 37 11 22 33 7D 7D
7B 7B 00 18 00 02 31 31 32 30 5A 52 32 31 39 31 31 33 30 36 36 37 37 11 22 33 7D 7D
......
其中消息長度00 18為24個字節,即 消息總長度(24B)=消息長度自身(2B)+消息序列號(2B)+設備ID(17B)+數據內容(3B)
服務器下發HEX數據:
7B 7B 00 18 00 03 31 31 32 30 5A 52 32 31 39 31 31 33 30 36 36 37 37 66 77 88 7D 7D
則串口側接收HEX數據為:66 77 88

