1
我目前正在開發一個項目,需要與微硬調制解調器IPn3G進行通信。我有調制解調器設置爲通過TCP向我的計算機發送消息,我可以在套接字中接收消息。如何在python中解析來自套接字的二進制數據?
的消息是這樣的,雖然:
���������DKReadyCANRogersWirelessInc. Home354626030393530302720391029547
現在,我可以承認其中的一些領域,如最終狀態或Carrierinfo還有IMEI和IMSI的。
我的問題是,我該如何解析有趣的東西?我嘗試過struct,但它似乎沒有幫我很多。
在調制解調器我只找到這個的文檔:
Modem_event消息結構:
- 固定報頭(固定大小20個字節)
- 調制解調器ID(uint64_t中(8個字節))
- 消息類型掩膜(uint8_t(1個字節))
- 保留
- 分組長度(uint16_t(2個字節)) 注意:數據包長度=固定報頭長度+報文有效載荷長度。
載波信息:
- 內容長度2個字節(UINT16_T)
- RSSI 1字節(UINT8_T)
- RF頻帶2個字節(UINT16_T)
- 服務類型STRING(1- 30個字節)
- 通道號STRING(1-30字節)
- SIM卡號STRING(1-30字節)
- 手機串號(1-30字節)
對我來說,這似乎是消息不即使它應該是排隊。如果有人就如何解決這個問題提出建議,我會很高興。
謝謝
什麼信息「看起來像」例如當打印到您的控制檯不是很有用。特別是任何NUL(''\ x00'')字節不太可能出現。文檔顯示「保留」的時間長度是多少?而不是「打印消息」是否打印重新生成(消息)' – 2012-04-28 00:19:50
? 「我可以識別一些像Status或Carrierinfo這樣的字段」中的「或」是什麼意思?什麼是「狀態」?什麼應該在「固定標題」? – 2012-04-28 00:28:29
@JohnMachin:repr(message)的新輸出是「\ xb7 \ xff \ xff \ xff \ xff \ xff \ xff \ xff \ x04 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00Z \ x00D \ X00 \ XF3 \ X00 \ x00Ready \ x00CANRogersWirelessInc。\ x00Home \ x00354626030393530 \ x00302720391029547 \ X00" 。 – masterlampe 2012-04-28 16:38:31