24 lines
633 B
C++
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);
|
|
}
|