Например, есть такая структура на Си.
Код
struct
{
int temperatura;
unsigned char voltage;
int crc;
} packet;
На Пайтоне будет вот так
Код
temperatura = 1234
voltage = 1
crc = 1234
packet = [temperatura, voltage, crc]
print struct.pack('iBi', *packet) # выравнивание я потом поставлю какое нужно будет
Это можно как-то еще оформить?
И может у кого-то есть пример как обычно распознают пакеты на Пайтоне?
Рассмотрим пример с более сложным протоколом. Возникает ситуация когда чтение начнется с середины пакета. Я должен дочитать пакет до конца, найти заголовок следующего пакета, проверить контрольную сумму и взять из него нужные данные. Тут больше ничего не нужно?
Дальше возникает ситуация что виндоус была занята и при следующем чтении я получаю сразу два и более пакета. Такая ситуация возможна?