#pragma once #include #include class MCP2521_Hardware_Handle { public: virtual void execute(uint8_t cmd) = 0; virtual void execute(uint8_t cmd, uint8_t address) = 0; virtual void read(uint8_t cmd, uint8_t *data, size_t length, uint8_t address) = 0; virtual void read(uint8_t cmd, uint8_t *data, size_t length) = 0; virtual uint8_t read(uint8_t cmd, uint8_t address) = 0; virtual uint8_t read(uint8_t cmd) = 0; virtual void write(uint8_t cmd, uint8_t *data, size_t length, uint8_t address) = 0; virtual void write(uint8_t cmd, uint8_t *data, size_t length) = 0; virtual void write(uint8_t cmd, uint8_t data, uint8_t address) = 0; virtual void write(uint8_t cmd, uint8_t data) = 0; };