Я проверил проект на GitHub (https://gist.github.com/sabas1080/93115fb66e09c9b40e5857a19f3e7787), и пытаюсь реализовать BLE-пульт дистанционного управления на ESP32 (этот пульт имеет 32 ключа). Проблема в том, что я не совсем уверенкак объявить отчет и, следовательно, входной отчет.
Формат данных HCI, который я должен отправить, выглядит следующим образом:
В соответствии с документом, таблицы использования HID универсальной последовательной шины, я объявил этот отчет:
0x05, 0x0C, // Usage Page (Consumer)
0x09, 0x01, // Usage (Consumer Control)
0xA1, 0x01, // Collection (Application)
0x85, 0x01, // Report ID (1)
0x05, 0x0C, // Usage Page (Consumer Devices)
0x15, 0x00, // Logical Minimum (1)
0x25, 0x01, // Logical Maximum (2)
0x15, 0x08, // Report Size (8)
0x25, 0x01, // Report Count (1) Modifier 1 Byte
0x81, 0x00, // Input(Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x15, 0x08, // Report Size (8)
0x25, 0x01, // Report Count (1) Reserved 1 Byte
0x81, 0x01, // Input(Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x15, 0x00, // Logical Minimum
0x25, 0x20, // Logical Maximum 32 keys
0x15, 0x08, // Report Size (8)
0x25, 0x06, // Report Count (6) Keys 6 Bytes
0x81, 0x00, // Input(Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
0xC0, // End Collection
Это правильноЯ запутался в том, как установить параметры отчета.
Для входного отчета я попытался отправить команду громкости, например:
uint8_t msg1[] = {0x0, 0x0, 0xE9, 0x0, 0x0, 0x0, 0x0, 0x0}; // Volume Up
input->setValue(msg1, sizeof(msg1));
input->notify();
uint8_t msg2[] = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0};
input->setValue(msg2, sizeof(msg2));
input->notify();