58 struct _queue_buffer_t
62 _queue_buffer_t* next;
67 _queue_buffer_t* front =
nullptr;
68 _queue_buffer_t* back =
nullptr;
71 static const uint8_t descHidReport[];
75 uint16_t _manufacturerId;
76 uint16_t _maskVersion;
80 void addBufferTxQueue(uint8_t* data, uint16_t length);
81 bool isTxQueueEmpty();
82 void loadNextTxFrame(uint8_t** sendBuffer, uint16_t* sendBufferLength);
85 static _queue_t _rx_queue;
86 static void addBufferRxQueue(
const uint8_t* data, uint16_t length);
87 bool isRxQueueEmpty();
88 void loadNextRxBuffer(uint8_t** receiveBuffer, uint16_t* receiveBufferLength);
89 static bool rxHaveCompletePacket;
91 void handleTransferProtocolPacket(uint8_t* data, uint16_t length);
92 void handleHidReportRxQueue();
93 void handleBusAccessServerProtocol(
ServiceIdType servId,
const uint8_t* requestData, uint16_t packetLength);
This is an implementation of the cEMI server as specified in .
static void receiveHidReport(uint8_t const *data, uint16_t bufSize)
void sendCemiFrame(CemiFrame &frame)
UsbTunnelInterface(CemiServer &cemiServer, uint16_t manufacturerId, uint16_t maskVersion)
static const uint8_t * getKnxHidReportDescriptor()
static uint16_t getHidReportDescriptorLength()
@ HostDeviceDescriptorType0