#pragma once #include "mcp2521_hardware_handle.hpp" #ifdef ESP_PLATFORM #include "driver/gpio.h" #include "driver/spi_master.h" class MCP2521_Hardware_Handle_ESP : public MCP2521_Hardware_Handle { char spi_tmp_buffer; spi_bus_config_t * spi_bus_config; spi_device_interface_config_t spi_device_config; spi_device_handle_t spi_device_handle; public: MCP2521_Hardware_Handle_ESP( spi_host_device_t spi_host, spi_bus_config_t *bus_config, gpio_num_t mosi, gpio_num_t miso, gpio_num_t sclk, gpio_num_t cs, gpio_num_t int_pin ); MCP2521_Hardware_Handle_ESP( spi_host_device_t spi_host, spi_bus_config_t *bus_config, gpio_num_t cs, gpio_num_t int_pin ); static void initSPIBus( spi_host_device_t spi_host, gpio_num_t mosi, gpio_num_t miso, gpio_num_t sclk, spi_bus_config_t *bus_config ); void initSPIDevice( spi_host_device_t spi_host, gpio_num_t cs ); void initPins( gpio_num_t int_pin ); ~MCP2521_Hardware_Handle_ESP(); spi_bus_config_t * getSPI_bus_config(); // Inherited from MCP2521_Hardware_Handle void execute(uint8_t cmd); void execute(uint8_t cmd, uint8_t address); void read(uint8_t cmd, uint8_t *data, size_t length, uint8_t address); void read(uint8_t cmd, uint8_t *data, size_t length); uint8_t read(uint8_t cmd, uint8_t address); uint8_t read(uint8_t cmd); void write(uint8_t cmd, uint8_t *data, size_t length, uint8_t address); void write(uint8_t cmd, uint8_t *data, size_t length); void write(uint8_t cmd, uint8_t data, uint8_t address); void write(uint8_t cmd, uint8_t data); }; #endif