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