mirror of
https://github.com/mofeng-git/One-KVM.git
synced 2025-12-12 01:00:29 +08:00
refactoring
This commit is contained in:
parent
52ac8d93a1
commit
79e1b457b7
@ -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
|
||||
|
||||
@ -23,8 +23,10 @@
|
||||
#pragma once
|
||||
|
||||
#include <Arduino.h>
|
||||
|
||||
#include "connection.h"
|
||||
|
||||
|
||||
namespace DRIVERS {
|
||||
struct Spi : public Connection {
|
||||
Spi() : Connection(CONNECTION) {}
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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) {}
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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));
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user