Topuino_Hardware/src/UsbConnector.cpp

24 lines
633 B
C++

#include "UsbConnector.h"
static byte* dataBuff;
static void Receive()
{
static byte raw[sizeof(UsbData) + 4];
Serial.readBytes(raw, sizeof(UsbData) + 4);
if (raw[0] == 0x19 && raw[1] == 0x26 && raw[2] == 0x08 && raw[3] == 0x17) {
byte pongBuf[2] = { 0x68, 0x61 };
Serial.write(pongBuf, 2);
} else if (raw[0] == 0x66 && raw[1] == 0x77 && raw[2] == 0xaa && raw[3] == 0xff) {
memcpy(dataBuff, raw + 4, sizeof(UsbData));
}
}
UsbConnector::UsbConnector()
{
memset(&data, 0, sizeof(UsbData));
Serial.setTimeout(100);
dataBuff = (byte*)&data;
receiver.attach(0.5, Receive);
}