LTPS C++ API
cpin.h
1 // This I Love
2 // (C) dvorkin@tibbo.com, 2015
3 
4 #ifndef __CPIN_H__
5 #define __CPIN_H__
6 
7 #include <stdio.h>
8 #include <string.h>
9 #include <dirent.h>
10 
11 #define PIN_DIR_I 0
12 #define PIN_DIR_O 1
13 
14 class CPin {
15 
16 protected:
17 
18  int pin;
19  FILE *fp_rw;
20 
21  FILE *x_open( int _pin, const char *_what);
22  void x_close( void) {
23  if ( this->fp_rw) fclose( this->fp_rw);
24  this->fp_rw = NULL; }
25 
26 public:
27 
28  CPin( void) { this->pin = 0; this->fp_rw = NULL; }
29  ~CPin( void) { this->x_close(); }
30 
31  // call once
32  // ret: 0 - OK, -1 - err
33  int init( int _pin);
34  int cur( void) { return( this->pin); }
35 
36  // ret: pin value = 0|1
37  int R( void);
38  // ret: fwrite return code | < 0 on error
39  int W( int _val);
40 
41  // ret: -1 - err, 0 == PIN_DIR_I, 1 == PIN_DIR_O
42  int dir_get( void);
43  // ret: -1 - err, 0 - success
44  int dir_set( int _dir);
45 
46 };
47 
48 #endif