refactoring

This commit is contained in:
Maxim Devaev 2023-03-04 19:41:12 +02:00
parent 52ac8d93a1
commit 79e1b457b7
6 changed files with 14 additions and 7 deletions

View File

@ -21,8 +21,9 @@
#include "spi.h"
#ifdef CMD_SPI
#include <SPI.h>
static volatile uint8_t _spi_in[8] = {0};
static volatile uint8_t _spi_in_index = 0;
@ -30,6 +31,7 @@ static volatile uint8_t _spi_in_index = 0;
static volatile uint8_t _spi_out[8] = {0};
static volatile uint8_t _spi_out_index = 0;
namespace DRIVERS {
void Spi::begin() {
pinMode(MISO, OUTPUT);
@ -77,4 +79,5 @@ ISR(SPI_STC_vect) {
SPDR = 0;
}
}
#endif

View File

@ -23,8 +23,10 @@
#pragma once
#include <Arduino.h>
#include "connection.h"
namespace DRIVERS {
struct Spi : public Connection {
Spi() : Connection(CONNECTION) {}

View File

@ -25,9 +25,10 @@
#include "driver.h"
#include "stdint.h"
namespace DRIVERS {
typedef void(*DataHandler)(const uint8_t * data, size_t len);
typedef void(*TimeoutHandler)();
typedef void (*DataHandler)(const uint8_t *data, size_t size);
typedef void (*TimeoutHandler)();
struct Connection : public Driver {
using Driver::Driver;

View File

@ -21,12 +21,14 @@
#pragma once
#ifdef CMD_SERIAL
#include "connection.h"
namespace DRIVERS {
#ifdef Serial
#undef Serial
# undef Serial
#endif
struct Serial : public Connection {
Serial() : Connection(CONNECTION) {}

View File

@ -11,7 +11,6 @@ lib_deps =
git+https://github.com/Harvie/ps2dev#v0.0.3
digitalWriteFast@1.0.0
HID@1.0
SPI
drivers-avr
extra_scripts =
pre:avrdude.py

View File

@ -115,7 +115,7 @@ static uint8_t _handleRequest(const uint8_t *data) { // 8 bytes
if (data[0] == PROTO::MAGIC && PROTO::crc16(data, 6) == PROTO::merge8(data[6], data[7])) {
# define HANDLE(_handler) { _handler(data + 2); return PROTO::PONG::OK; }
switch (data[1]) {
case PROTO::CMD::PING: return PROTO::PONG::OK;
case PROTO::CMD::PING: return PROTO::PONG::OK;
case PROTO::CMD::SET_KEYBOARD: HANDLE(_cmdSetKeyboard);
case PROTO::CMD::SET_MOUSE: HANDLE(_cmdSetMouse);
case PROTO::CMD::SET_CONNECTED: HANDLE(_cmdSetConnected);
@ -220,7 +220,7 @@ static void _onTimeout() {
_sendResponse(PROTO::RESP::TIMEOUT_ERROR);
}
static void _onData(const uint8_t * data, size_t len) {
static void _onData(const uint8_t *data, size_t size) {
_sendResponse(_handleRequest(data));
}