#ifndef PISPI_H #define PISPI_H #include "piiodevice.h" class PIP_EXPORT PISPI: public PIIODevice { PIIODEVICE(PISPI) public: explicit PISPI(const PIString & path = PIString(), uint speed_hz = 1000000, PIIODevice::DeviceMode mode = PIIODevice::ReadWrite); ~PISPI() {} //! \brief Parameters of PISPI enum Parameters { ClockInverse /*! SPI clk polarity control check and generate */ = 0x1, ParityOdd /*! Parity is odd instead of even */ = 0x2, TwoStopBits /*! Two stop bits instead of one */ = 0x4 }; void setSpeed(uint speed_hz); uint speed() const {return spi_speed;} void setBits(uchar bits = 8); uchar bits() const {return spi_bits;} protected: bool openDevice(); bool closeDevice(); int readDevice(void * read_to, int max_size); int writeDevice(const void * data, int max_size); private: uint spi_speed; uchar spi_mode; uchar spi_bits; PIByteArray tx_buf, rx_buf; PIByteArray recv_buf; PRIVATE_DECLARATION }; #endif // PISPI_H