#ifndef _SPI_H_ #define _SPI_H_ #include #include #include #include #include #include #include #include #include #define SPI_DEVICE "/dev/spidev0.0" #define SPI_MODULE SPI_MODE_1 #define SPI_MAX_SPEED ( 25 * 1000 * 1000) #define SPI_NBITS 8 #define SPI_FIRST 0 #define SPI_BUFFER_NUM 1024 class Spi { public : Spi(char *para_dev = SPI_DEVICE , int para_mode = SPI_MODULE , int para_max_speed = SPI_MAX_SPEED , int para_nbits = SPI_NBITS , int para_first = SPI_FIRST) ; ~Spi() ; void spiMutexLock() ; void spiMutexUnlock() ; void printTxBuffer() ; void printRxBuffer() ; int getTxLength() ; int getRxLength() ; uint8_t* getTxBuffer() ; uint8_t* getRxBuffer() ; void printTxBuffer(uint8_t *para_tx_buffer , int para_tx_len) ; void printRxBuffer(uint8_t *para_rx_buffer , int para_rx_len) ; int singleWriteSpi(unsigned char *para_tx_buffer , int para_tx_len) ; int singleReadSpi(unsigned char *para_rx_buffer , int para_rx_len) ; int writeSpi(unsigned char *para_tx_buffer , int para_tx_len) ; int readSpi( unsigned char *para_rx_buffer , int para_rx_len) ; int readWriteSpi(unsigned char *para_tx_buffer , unsigned char *para_rx_buffer , int para_tx_len , int para_rx_len ) ; private : int spi_fd ; int mode ; int max_speed ; int nbits ; int first ; int ret ; pthread_mutex_t spi_mutex ; uint8_t tx_buffer[SPI_BUFFER_NUM] ; uint8_t rx_buffer[SPI_BUFFER_NUM] ; } ; #endif