Расшифровка данных полученных через socket

Кратко о ситуации. Дано задание передать данные в стороннее программное обеспечение(далее ПО), написанное на Python 3.8 из ПЛК(ссылка). Предложили делать это через socket. Все данные либо integer либо float.
На данном этапе тестируется конфигурация сервер на Python 3.8 и клиент-ПЛК на CoDeSys 2.3 (ссылка).
При построении клиент-серверной структуры чисто на Python есть библиотека pickle и форматирование для сериализации/десериализации данных.
В нашем случае работает обмен согласно теории соединения по протоколу UDP. Открыли сокет, передали запрос, получили ответ и закрыли сокет. Есть свои нюансы, разбираемся. Сейчас вопрос в следующем:
1. На стороне клиента-ПЛК формируется массив sSendToServer:ARRAY [0..5] OF BYTE; со значениями [210, 1, 2, 7, 9, count]. (count - переменная меняется от 0 до 98 чисто ввиде теста)
2. Сервер на python получает данные в таком формате:
recv: b'\xd2\x01\x02\x07\t\x03'
recv: b'\xd2\x01\x02\x07\t\t'
recv: b'\xd2\x01\x02\x07\t\x0f'
recv: b'\xd2\x01\x02\x07\t\x15'
recv: b'\xd2\x01\x02\x07\t\x1b'
recv: b'\xd2\x01\x02\x07\t!'
recv: b"\xd2\x01\x02\x07\t'"
recv: b'\xd2\x01\x02\x07\t-'
recv: b'\xd2\x01\x02\x07\t3'
recv: b'\xd2\x01\x02\x07\t9'
recv: b'\xd2\x01\x02\x07\t?'
recv: b'\xd2\x01\x02\x07\tE' и т.д.
При обратной ситуации, когда сервер-ПЛК (тип данных sReadFromClient:ARRAY [0..5] OF BYTE;), а клиент на Python (тип данных count = bytearray([1, 2, 6, 9, int(b*10), c]), b и c переменные для эксперимента, считайте их константами) обмен идет и все проходит десериализацию.

Вопрос возникает как расшифровать полученное сообщение от клиента-ПЛК в первоначальный формат.


Ответы (0 шт):