Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members

roboteqSC.h

00001 
00009 #include <termios.h>
00010 #include <sys/types.h>
00011 #include <sys/stat.h>
00012 #include <pthread.h>
00015 #define SCPATH "/dev/ttyS0"
00016 
00022 
00023 #define INPUTCTRL     0x00
00024 
00025 #define MOTORMODE     0x01
00026 
00027 #define AMPLIMIT      0x02
00028 
00029 #define ACCELERATION  0x03
00030 
00031 #define INPUTSWITCH   0x04
00032 
00033 #define BRAKE         0x05
00034 
00035 #define JOYDEADBAND   0x06
00036 
00037 #define EXPON1        0x07
00038 
00039 #define EXPON2        0x08
00040 
00041 #define GAININT       0x0F
00042 
00043 #define GAINDIFF      0x10
00044 
00045 #define GAINPROP      0x11
00046 
00047 
00048 #ifndef ROBOTEQSC_H
00049 #define ROBOTEQSC_H
00050 
00051 class RoboteqSC{
00052         public:
00056         enum {
00057             baudrate = B9600
00058         };
00062                 enum status {
00064                         OPEN = 1,
00066                         CLOSED = 0,
00068                         ERROR = -1
00069                 };
00070         
00074         enum Motor {
00076             MOTOR0 = 0x41,
00078             MOTOR1 = 0x42,
00080             MOTOR0BKW = 0x61,
00082             MOTOR1BKW = 0x62
00083         };
00084 
00090                 static RoboteqSC * theInstance();
00091                 
00096                 inline status getStatus() {return SCStatus;}
00097                                 
00103                 int openSC();
00104                 
00110                 int closeSC();
00111         
00121                 int setMotorSpeed(int motor, int speed);
00122         
00128                 int getPower(int motor);
00129         
00135                 int getAmps(int motor);
00136                 
00141                 int getControllerTemp();        
00142                 
00148                 int convertTemp(int input);
00149 
00155                 int applyParam();
00156 
00160                 void resetController();
00161 
00167                 int readParamSetting(int param);
00168                 
00176                 int setParam(int param, int value);
00177 
00182         int sem_P();
00183 
00188         int sem_V();
00189 
00199         static void watchDog();
00200 
00206         int openCommand();
00207 
00212         int getfd();
00213 
00214         protected:
00218                 RoboteqSC();
00219                 
00223                 ~RoboteqSC();
00224         
00225     private:  
00227                 status SCStatus;
00228         
00230                 int fd;
00231         
00233                 struct termios oldttyS;
00234         
00236                 struct termios newttyS;
00237 
00239                 fd_set set;
00240 
00242                 struct timeval tv;
00243 
00245         pthread_t scThread; 
00246 
00248         int roboteqsv;
00249 };
00250 #endif //ROBOTEQSC_H
00251 

Generated on Fri Mar 25 23:48:45 2005 for CS498EmbeddedSystemsProgramming by doxygen 1.3.6