72 std::vector<uint8_t>
transfer(
const std::vector<uint8_t>& write_data,
size_t read_length = 0);
95 bool pinMode(uint8_t pin, uint8_t mode);
A class to interface with the CH341 USB to SPI adapter.
Definition CH341SPI.hpp:41
uint8_t swapBits(uint8_t byte)
Swaps the bits of a byte.
Definition CH341SPI.cpp:259
void close()
Closes the SPI connection.
Definition CH341SPI.cpp:168
int device_index
Index of the CH341 device.
Definition CH341SPI.hpp:145
uint8_t _gpio_direction
Direction of GPIO pins.
Definition CH341SPI.hpp:148
uint8_t _gpio_output
Output state of GPIO pins.
Definition CH341SPI.hpp:149
bool is_open
Flag to indicate whether the device is open and active.
Definition CH341SPI.hpp:147
bool pinMode(uint8_t pin, uint8_t mode)
Sets the mode of a specified pin.
Definition CH341SPI.cpp:470
static const uint8_t PIN_D4
Definition CH341SPI.hpp:139
static const uint8_t PIN_D1
Definition CH341SPI.hpp:136
libusb_context * context
Context for libusb.
Definition CH341SPI.hpp:144
bool threadRunning
Flag to indicate if the interrupt monitoring thread is running.
Definition CH341SPI.hpp:153
bool configStream()
Configures the SPI stream.
Definition CH341SPI.cpp:186
bool digitalRead(uint8_t pin)
Reads a digital value from a specified pin.
Definition CH341SPI.cpp:421
void interruptMonitoringThread()
Thread function for monitoring interrupts.
Definition CH341SPI.cpp:527
bool enableInterrupt(bool enable) override
Enable or disable interrupts.
Definition CH341SPI.cpp:504
static const uint8_t PIN_D5
Definition CH341SPI.hpp:140
bool setInterruptCallback(InterruptCallback callback) override
Set interrupt callback.
Definition CH341SPI.cpp:498
bool digitalWrite(uint8_t pin, bool value)
Writes a digital value to a specified pin.
Definition CH341SPI.cpp:389
bool enablePins(bool enable)
Enables or disables the pins.
Definition CH341SPI.cpp:219
bool open()
Opens the SPI connection.
Definition CH341SPI.cpp:59
std::vector< uint8_t > transfer(const std::vector< uint8_t > &write_data, size_t read_length=0)
Transfers data over SPI.
Definition CH341SPI.cpp:273
static const uint8_t PIN_D0
Definition CH341SPI.hpp:135
bool configureInterrupt(uint8_t pin, bool enable) override
Configure interrupt settings for a pin.
Definition CH341SPI.hpp:104
static const uint8_t PIN_D3
Definition CH341SPI.hpp:138
bool interruptEnabled
Flag to indicate if interrupts are enabled.
Definition CH341SPI.hpp:151
std::thread interruptThread
Thread for monitoring interrupts.
Definition CH341SPI.hpp:152
InterruptCallback interruptCallback
Callback function for interrupts.
Definition CH341SPI.hpp:150
libusb_device_handle * device
Handle to the libusb device.
Definition CH341SPI.hpp:143
bool lsb_first
Flag to indicate if LSB should be sent first.
Definition CH341SPI.hpp:146
bool isActive() const override
Check if the device is active/connected.
Definition CH341SPI.hpp:130
static const uint8_t PIN_D2
Definition CH341SPI.hpp:137
~CH341SPI()
Destructor for CH341SPI.
Definition CH341SPI.cpp:36
Abstract interface for SPI communication.
Definition SPIInterface.hpp:21
std::function< void(void)> InterruptCallback
Definition SPIInterface.hpp:89