В настоящее время я работаю над проектом, где мне нужно общаться с микроарговым сотовым модемом IPn3G. У меня есть модем, настроенный для отправки сообщений на мой компьютер через TCP, и я могу получить сообщение в сокете.Как разобрать двоичные данные из сокета в python?
сообщение выглядит это, хотя:
���������DKReadyCANRogersWirelessInc. Home354626030393530302720391029547
Теперь я могу признать некоторые из этих областей, как положение или Carrierinfo, а также и IMSI номер IMEI, в конце концов.
Моя проблема в том, как разобрать забавные вещи? Я пробовал структуру, но мне это, похоже, не очень помогло.
В документации модема я только нашел это:
Modem_event структура сообщения:
- фиксированный заголовок фиксированного размера (20 байт)
- Modem ID (uint64_t (8 байт))
- Тип сообщения маска (uint8_t (1 байт))
- защищены
- длина пакета (uint16_t (2 байта)) Примечание: длина пакета = длина фиксированного заголовка + длина полезной нагрузки сообщения. Информация
Carrier:
- Содержание Длина 2 ЧИСЛО (uint16_t)
- RSSI 1 BYTE (uint8_t)
- РФ Группа 2 ЧИСЛО (uint16_t)
- Service Тип STRING (1- 30 байт)
- Номер канала STRING (1-30 байт)
- Номер SIM-карты STRING (1-30 байт)
- Телефон STRING (1-30 байт)
Мне кажется, что сообщение даже не выстраиваются в очередь с тем, что это должно быть. Я был бы очень рад, если бы кто-нибудь посоветовал, как решить эту проблему.
Спасибо
Что такое сообщение «выглядит», например. при печати на консоль не очень полезно. В частности, любые байты NUL ('' \ x00'') вряд ли появятся.Вместо 'print message' do' print repr (message) ' –
Указывает ли документация, сколько времени зарезервировано? Что вы подразумеваете под «или» в «Я могу распознать несколько таких полей, как« Статус »или« Carrierinfo »? Что такое «Статус»? Что должно быть в «фиксированном заголовке»? –
@JohnMachin: новый вывод с представлением (сообщением) - «\ 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