10#ifndef SEMF_COMMUNICATION_SPISLAVEHARDWARE_H_
11#define SEMF_COMMUNICATION_SPISLAVEHARDWARE_H_
37 Read_BufferSizeIsZero,
39 StopWrite_IsNotWriting,
40 StopRead_IsNotReading,
42 WriteRead_WriteDataIsNullptr,
43 WriteRead_ReadBufferIsNullptr,
55 void write(
const uint8_t data[],
size_t dataSize)
override;
62 void read(uint8_t buffer[],
size_t bufferSize)
override;
83 void writeRead(
const uint8_t writeData[], uint8_t readBuffer[],
size_t size)
override;
123 virtual void writeReadHardware(
const uint8_t writeData[], uint8_t readBuffer[],
size_t size) = 0;
148 bool m_isBusy =
false;
154 static constexpr Error::ClassID kSemfClassId = Error::ClassID::SpiSlaveHardware;
This interface standardized the read and write interface for synchronous slave hardware,...
Class for representing errors. Every error should have a unique source code. As a user feel encourage...
Interface for SPI specific functionalities, which are not solved in a generic way in CommunicationHar...
Class for using spi hardware in slave mode. In order of being a SPI slave IO-operations will not get ...
void setWireMode(WireMode mode)
Sets the wire mode.
void onError(Error thrown)
Error routine, emits the error signal.
void setFrame(Frame frame) override
Sets the selected usage of start and stop condition.
bool isBusyReading() const override
Communication hardware is busy reading at the moment.
virtual ~SpiSlaveHardware()=default
void setFormat(uint8_t bits, TransmissionMode transmission, WireMode wire) override
Sets the format for the spi slave device.
virtual void readHardware(uint8_t buffer[], size_t bufferSize)=0
Accesses the spi hardware in order to read bufferSize bytes and stores them in buffer.
bool isBusyWriting() const override
Communication hardware is busy writing at the moment.
virtual void stopReadHardware()=0
void read(uint8_t buffer[], size_t bufferSize) override
For reading data, dataAvailable signal will be emitted after successful read.
virtual void stopWriteHardware()=0
virtual void writeReadHardware(const uint8_t writeData[], uint8_t readBuffer[], size_t size)=0
Accesses the spi hardware in order to perform a full duplex read/write.
void setBusy(bool busy)
Sets the flag m_isBusy.
ErrorCode
Error IDs for this class. Error ID identify a unique error() / onError call (excluding transferring).
void setTransmissionMode(TransmissionMode mode)
Sets the transmission mode.
virtual void writeHardware(const uint8_t data[], size_t dataSize)=0
Accesses the spi hardware in order to write dataSize bytes of data.
void stopWrite() override
virtual void setFormatHardware(uint8_t bits, TransmissionMode transmission, WireMode wire)=0
Configures the hardware for insuring the given configuration.
void write(const uint8_t data[], size_t dataSize) override
For writing data, dataWritten signal will be emitted after successful write.
void writeRead(const uint8_t writeData[], uint8_t readBuffer[], size_t size) override
For writing and reading data parallel through the communication hardware 1) For interrupt or one shot...