26 static constexpr uint8_t
INPUT = 0;
53 virtual std::vector<uint8_t>
transfer(
const std::vector<uint8_t>& write_data,
size_t read_length = 0) = 0;
76 virtual bool pinMode(uint8_t pin, uint8_t mode) = 0;
114 static std::unique_ptr<SPIInterface>
createCH341SPI(
int device_index = 0,
bool lsb_first =
false);
115 static std::unique_ptr<SPIInterface>
createLinuxSPI(
const std::string& device = std::string(
"/dev/spidev0.0"),
116 uint32_t speed = 1000000,
125 static std::unique_ptr<SPIInterface>
createSPIInterface(
const std::string& device_type,
int device_index = 0,
bool lsb_first =
false);
Factory class for creating SPI interfaces.
Definition SPIInterface.hpp:112
static std::unique_ptr< SPIInterface > createCH341SPI(int device_index=0, bool lsb_first=false)
Definition SPIFactory.cpp:6
static std::unique_ptr< SPIInterface > createSPIInterface(const std::string &device_type, int device_index=0, bool lsb_first=false)
static std::unique_ptr< SPIInterface > createLinuxSPI(const std::string &device=std::string("/dev/spidev0.0"), uint32_t speed=1000000, uint8_t mode=0)
Definition SPIFactory.cpp:10
static void cleanupResources()
Abstract interface for SPI communication.
Definition SPIInterface.hpp:21
static constexpr uint8_t INPUT_PULLUP
Definition SPIInterface.hpp:28
virtual bool isActive() const =0
virtual bool enableInterrupt(bool enable)=0
virtual ~SPIInterface()=default
virtual bool setInterruptCallback(InterruptCallback callback)=0
virtual bool configureInterrupt(uint8_t pin, bool enable)=0
virtual bool pinMode(uint8_t pin, uint8_t mode)=0
std::function< void(void)> InterruptCallback
Definition SPIInterface.hpp:89
virtual bool digitalRead(uint8_t pin)=0
virtual std::vector< uint8_t > transfer(const std::vector< uint8_t > &write_data, size_t read_length=0)=0
static constexpr uint8_t OUTPUT
Definition SPIInterface.hpp:27
static constexpr uint8_t INPUT
Definition SPIInterface.hpp:26
virtual bool digitalWrite(uint8_t pin, bool value)=0