#pragma once #include #include typedef void (*intHandlerFunction_t)(void *); class MCP2521_Hardware_Handle { public: virtual void registerIntHandler(intHandlerFunction_t handler, void * arg) = 0; 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; };