Я портирую простое приложение Bluetooth, которое отправляет «волшебный» пакет по протоколу L2Cap на устройство Bluetooth.
У меня проблема с преобразованием объекта struct в C в эквивалент Python ..
В c:
/* command types */
#define CFGBT_TYPE_SETREQ 0x00
#define CFGBT_TYPE_SETRES 0x01
#define CFGBT_TYPE_GETREQ 0x02
#define CFGBT_TYPE_GETRES 0x03
/* varid types */
#define CFG_VARIDT_UINT16 0x0000
#define CFG_VARIDT_UINT32 0x1000
#define CFG_VARIDT_STRING16 0x2000
typedef struct {
uint8_t type, status;
uint16_t varid;
uint8_t value[16];
} __attribute__((packed)) CFGBTFRAME;
static CFGBTFRAME c;
, а затем в приложении он используется следующим образом:
/* set up */
c.type = CFGBT_TYPE_GETREQ;
c.varid = strtol(argv[3], NULL, 0);
c.status = 0;
memset(c.value, 0, 16);
/* send frame */
write(s, &c, sizeof(c));
Можете ли вы указать мне, как построить такую же структуру пакета / стуктуры с использованием Python?
Я знаю, что мне, вероятно, нужно будет использовать ctypes и создать «пустой» класс, но как собрать все это вместе?