В настоящее время я работаю над проектом, в котором мне нужно связаться с микрожестким сотовым модемом IPn3G. У меня настроен модем для отправки сообщений на мой компьютер через TCP, и я могу получить сообщение в сокете.
Однако сообщение выглядит так:
���������DKReadyCANRogersWirelessInc. Home354626030393530302720391029547
Теперь я могу распознать некоторые из этих полей, таких как статус или информация о перевозчике, а также imei и imsi в конце.
Моя проблема в том, как мне разобрать забавно выглядящие вещи? Я пробовал struct, но мне это не очень помогло.
В документации модема нашел только это:
Структура сообщения Modem_event:
- фиксированный заголовок (фиксированный размер 20 байт)
- Идентификатор модема (uint64_t (8 байт))
- Маска типа сообщения (uint8_t(1 байт))
- сдержанный
- длина пакета (uint16_t(2 байта)) Примечание: длина пакета = длина фиксированного заголовка + длина полезной нагрузки сообщения.
Информация о перевозчике:
- Длина содержимого 2 БАЙТА (UINT16_T)
- RSSI 1 БАЙТ (UINT8_T)
- РЧ-диапазон 2 БАЙТА (UINT16_T)
- Тип службы STRING (1–30 байт)
- Номер канала STRING (1–30 байт)
- Номер SIM-карты STRING (1–30 байт)
- Номер телефона STRING (1–30 байт)
Мне кажется, что сообщение даже не соответствует тому, что должно быть. Буду очень рад, если кто-нибудь подскажет, как решить эту проблему.
Спасибо
'\x00'). Вместоprint messageсделайтеprint repr(message)- person John Machin   schedule 28.04.2012