LTPS C++ API
Cspi.h
1 
5 
6 #ifndef __CSPI_H__
7 #define __CSPI_H__
8 
9 #include <unistd.h>
10 #include <string.h>
11 #include <stdint.h>
12 
13 #include <linux/spi/spidev.h>
14 
16 class Cspi {
17 
18 private:
19 
20  long addr;
21  uint32_t mode;
22  uint8_t bits;
23  uint32_t speed;
24  uint16_t delay;
25  struct spi_ioc_transfer tr;
26 
27 protected:
28 
29  int f_rw;
30  int busn;
31  int x_open( uint16_t _busn, uint8_t _dev);
32  void x_close( void) {
33  if ( this->f_rw >= 0) close( this->f_rw);
34  this->f_rw = -1;
35  }
36 
37 public:
38 
39  Cspi( void) {
40  this->busn = this->addr = this->f_rw = -1;
41  this->bits = 8; this->speed = 500000; this->delay = 0;
42  }
43  Cspi( Cspi &_o) { this->busn = _o.busn; this->addr = this->f_rw = -1; }
44  ~Cspi( void) { this->x_close(); }
45 
47  int set_dev( uint16_t _busn, uint8_t _dev);
50  int set_dev( const char *_sock, uint8_t _dev = 0);
51 
55  int settings_get( void);
56  int settings_set( void);
58 
63  inline void set_bits( uint8_t _bits) { this->bits = _bits; }
64  inline uint8_t cur_bits( void) { return( this->bits); }
65  inline void set_speed( uint32_t _speed) { this->speed = _speed; }
66  inline uint32_t cur_speed( void) { return( this->speed); }
67  inline void set_delay( uint16_t _delay) { this->delay = _delay; }
68  inline uint16_t cur_delay( void) { return( this->delay); }
73  inline void set_mode( uint32_t _mode) { this->mode = _mode; }
74  inline uint32_t cur_mode( void) { return( this->mode); }
76 
79  int cur_bus( void) { return( this->busn); }
82  int cur_dev( void) { return( this->addr); }
83 
89  inline int R( uint8_t const *_b, size_t _l) { return( this->WR( _b, NULL, _l)); }
90  inline int W( uint8_t const *_b, size_t _l) { return( this->WR( NULL, _b, _l)); }
91  int WR( uint8_t const *_w, uint8_t const *_r, uint32_t _l);
93 
95  static int find_bus( const char *_sock);
96 
97 }; // class /
98 
99 #endif
int cur_bus(void)
Definition: Cspi.h:79
void set_mode(uint32_t _mode)
Definition: Cspi.h:73
General perpose SPI I/O class.
Definition: Cspi.h:16
int set_dev(uint16_t _busn, uint8_t _dev)
int cur_dev(void)
Definition: Cspi.h:82
static int find_bus(const char *_sock)