Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Gamoto.h@0:5ae6ccb247c6, 2011-03-14 (annotated)
- Committer:
- diderot2
- Date:
- Mon Mar 14 08:33:05 2011 +0000
- Revision:
- 0:5ae6ccb247c6
- Child:
- 1:260869102f7e
Who changed what in which revision?
| User | Revision | Line number | New contents of line | 
|---|---|---|---|
| diderot2 | 0:5ae6ccb247c6 | 1 | /* | 
| diderot2 | 0:5ae6ccb247c6 | 2 | Gamoto Class header file | 
| diderot2 | 0:5ae6ccb247c6 | 3 | Provides serial access to the Gamoto PID Motor Controller | 
| diderot2 | 0:5ae6ccb247c6 | 4 | More info on the Gamoto here: http://www.gamatronix.com | 
| diderot2 | 0:5ae6ccb247c6 | 5 | Written by: Randy Gamage | 
| diderot2 | 0:5ae6ccb247c6 | 6 | 16-June-2005 | 
| diderot2 | 0:5ae6ccb247c6 | 7 | Written in C++ using MS Visual Studio .NET 7.1 | 
| diderot2 | 0:5ae6ccb247c6 | 8 | |
| diderot2 | 0:5ae6ccb247c6 | 9 | */ | 
| diderot2 | 0:5ae6ccb247c6 | 10 | //#define WIN32_LEAN_AND_MEAN | 
| diderot2 | 0:5ae6ccb247c6 | 11 | //#include <windows.h> | 
| diderot2 | 0:5ae6ccb247c6 | 12 | |
| diderot2 | 0:5ae6ccb247c6 | 13 | // TYPEDEF FOR BYTES | 
| diderot2 | 0:5ae6ccb247c6 | 14 | typedef unsigned char byte; | 
| diderot2 | 0:5ae6ccb247c6 | 15 | |
| diderot2 | 0:5ae6ccb247c6 | 16 | // Constants | 
| diderot2 | 0:5ae6ccb247c6 | 17 | #define ACK 0x41 | 
| diderot2 | 0:5ae6ccb247c6 | 18 | #define gxHEADER 0xAA | 
| diderot2 | 0:5ae6ccb247c6 | 19 | #define gxWRITE 0x82 | 
| diderot2 | 0:5ae6ccb247c6 | 20 | #include "mbed.h" | 
| diderot2 | 0:5ae6ccb247c6 | 21 | |
| diderot2 | 0:5ae6ccb247c6 | 22 | enum DriveModes { | 
| diderot2 | 0:5ae6ccb247c6 | 23 | POSITION_MODE=1, | 
| diderot2 | 0:5ae6ccb247c6 | 24 | TRAJECTORY_MODE=3, | 
| diderot2 | 0:5ae6ccb247c6 | 25 | VELOCITY_MODE=5, | 
| diderot2 | 0:5ae6ccb247c6 | 26 | POWER_MODE=17 | 
| diderot2 | 0:5ae6ccb247c6 | 27 | }; | 
| diderot2 | 0:5ae6ccb247c6 | 28 | |
| diderot2 | 0:5ae6ccb247c6 | 29 | #define gxFactoryReset 0 | 
| diderot2 | 0:5ae6ccb247c6 | 30 | #define gxSaveParams 1 | 
| diderot2 | 0:5ae6ccb247c6 | 31 | #define gxReset 2 | 
| diderot2 | 0:5ae6ccb247c6 | 32 | #define gxSetHome 3 | 
| diderot2 | 0:5ae6ccb247c6 | 33 | #define gxKp 34 | 
| diderot2 | 0:5ae6ccb247c6 | 34 | #define gxKi 36 | 
| diderot2 | 0:5ae6ccb247c6 | 35 | #define gxKd 38 | 
| diderot2 | 0:5ae6ccb247c6 | 36 | #define gxiL 40 | 
| diderot2 | 0:5ae6ccb247c6 | 37 | #define gxdS 42 | 
| diderot2 | 0:5ae6ccb247c6 | 38 | #define gxMode 43 | 
| diderot2 | 0:5ae6ccb247c6 | 39 | #define gxPositionMode 1 | 
| diderot2 | 0:5ae6ccb247c6 | 40 | #define gxTrajMode 3 | 
| diderot2 | 0:5ae6ccb247c6 | 41 | #define gxVelocityMode 5 | 
| diderot2 | 0:5ae6ccb247c6 | 42 | #define gxPowerMode 17 | 
| diderot2 | 0:5ae6ccb247c6 | 43 | #define gxpwrLimit 44 | 
| diderot2 | 0:5ae6ccb247c6 | 44 | #define gxdummy1 45 | 
| diderot2 | 0:5ae6ccb247c6 | 45 | #define gxsetPosition 47 | 
| diderot2 | 0:5ae6ccb247c6 | 46 | #define gxmPosition 51 | 
| diderot2 | 0:5ae6ccb247c6 | 47 | #define gxsetVelocity 54 | 
| diderot2 | 0:5ae6ccb247c6 | 48 | #define gxmVelocity 57 | 
| diderot2 | 0:5ae6ccb247c6 | 49 | #define gxTrajectory 59 | 
| diderot2 | 0:5ae6ccb247c6 | 50 | #define gxmPower 60 | 
| diderot2 | 0:5ae6ccb247c6 | 51 | |
| diderot2 | 0:5ae6ccb247c6 | 52 | #define dBug1 122 | 
| diderot2 | 0:5ae6ccb247c6 | 53 | #define dBug2 123 | 
| diderot2 | 0:5ae6ccb247c6 | 54 | |
| diderot2 | 0:5ae6ccb247c6 | 55 | #define gxAnalog0 160 | 
| diderot2 | 0:5ae6ccb247c6 | 56 | #define gxAnalog1 162 | 
| diderot2 | 0:5ae6ccb247c6 | 57 | #define gxAnalog2 164 | 
| diderot2 | 0:5ae6ccb247c6 | 58 | #define gxAnalog3 166 | 
| diderot2 | 0:5ae6ccb247c6 | 59 | #define gxAnalog4 168 | 
| diderot2 | 0:5ae6ccb247c6 | 60 | #define gxProfile0 180 | 
| diderot2 | 0:5ae6ccb247c6 | 61 | #define gxVersion 178 | 
| diderot2 | 0:5ae6ccb247c6 | 62 | #define gxTrajx 180 | 
| diderot2 | 0:5ae6ccb247c6 | 63 | #define gxTrajv 183 | 
| diderot2 | 0:5ae6ccb247c6 | 64 | #define gxTraja 185 | 
| diderot2 | 0:5ae6ccb247c6 | 65 | |
| diderot2 | 0:5ae6ccb247c6 | 66 | class Gamoto { | 
| diderot2 | 0:5ae6ccb247c6 | 67 | public: | 
| diderot2 | 0:5ae6ccb247c6 | 68 | Gamoto(); | 
| diderot2 | 0:5ae6ccb247c6 | 69 | ~Gamoto(); | 
| diderot2 | 0:5ae6ccb247c6 | 70 | |
| diderot2 | 0:5ae6ccb247c6 | 71 | //methods | 
| diderot2 | 0:5ae6ccb247c6 | 72 | int WriteReg(int reg,int len,int data); | 
| diderot2 | 0:5ae6ccb247c6 | 73 | int ReadReg(int reg,int len); | 
| diderot2 | 0:5ae6ccb247c6 | 74 | //int Init(byte PortNum,int BaudRate,byte MotoAddress); | 
| diderot2 | 0:5ae6ccb247c6 | 75 | int Reset(); | 
| diderot2 | 0:5ae6ccb247c6 | 76 | int FactoryReset(); | 
| diderot2 | 0:5ae6ccb247c6 | 77 | int SaveParams(); | 
| diderot2 | 0:5ae6ccb247c6 | 78 | int SetHome(); | 
| diderot2 | 0:5ae6ccb247c6 | 79 | int setMode(DriveModes newMode); | 
| diderot2 | 0:5ae6ccb247c6 | 80 | int setTrajectory(int); | 
| diderot2 | 0:5ae6ccb247c6 | 81 | int setsetPosition(int pos); | 
| diderot2 | 0:5ae6ccb247c6 | 82 | int setKp(int); | 
| diderot2 | 0:5ae6ccb247c6 | 83 | int setKi(int); | 
| diderot2 | 0:5ae6ccb247c6 | 84 | int setKd(int); | 
| diderot2 | 0:5ae6ccb247c6 | 85 | int setdS(int); | 
| diderot2 | 0:5ae6ccb247c6 | 86 | int setiL(int); | 
| diderot2 | 0:5ae6ccb247c6 | 87 | int setpwrLimit(int); | 
| diderot2 | 0:5ae6ccb247c6 | 88 | int setmPosition(int); | 
| diderot2 | 0:5ae6ccb247c6 | 89 | int setsetVelocity(int); | 
| diderot2 | 0:5ae6ccb247c6 | 90 | int setmPower(int); | 
| diderot2 | 0:5ae6ccb247c6 | 91 | int setTrajx(int,int=0); | 
| diderot2 | 0:5ae6ccb247c6 | 92 | int setTrajv(int,int=0); | 
| diderot2 | 0:5ae6ccb247c6 | 93 | int setTraja(int,int=0); | 
| diderot2 | 0:5ae6ccb247c6 | 94 | int getKp(); | 
| diderot2 | 0:5ae6ccb247c6 | 95 | int getKi(); | 
| diderot2 | 0:5ae6ccb247c6 | 96 | int getKd(); | 
| diderot2 | 0:5ae6ccb247c6 | 97 | int getiL(); | 
| diderot2 | 0:5ae6ccb247c6 | 98 | int getdS(); | 
| diderot2 | 0:5ae6ccb247c6 | 99 | int getMode(); | 
| diderot2 | 0:5ae6ccb247c6 | 100 | int getpwrLimit(); | 
| diderot2 | 0:5ae6ccb247c6 | 101 | int getsetPosition(); | 
| diderot2 | 0:5ae6ccb247c6 | 102 | int getmPosition(); | 
| diderot2 | 0:5ae6ccb247c6 | 103 | int getsetVelocity(); | 
| diderot2 | 0:5ae6ccb247c6 | 104 | int getmVelocity(); | 
| diderot2 | 0:5ae6ccb247c6 | 105 | int getTrajectory(); | 
| diderot2 | 0:5ae6ccb247c6 | 106 | int getmPower(); | 
| diderot2 | 0:5ae6ccb247c6 | 107 | int getVersion(); | 
| diderot2 | 0:5ae6ccb247c6 | 108 | int getmCurrent(); | 
| diderot2 | 0:5ae6ccb247c6 | 109 | int getAnalog0(); | 
| diderot2 | 0:5ae6ccb247c6 | 110 | int getAnalog1(); | 
| diderot2 | 0:5ae6ccb247c6 | 111 | int getAnalog2(); | 
| diderot2 | 0:5ae6ccb247c6 | 112 | int getAnalog3(); | 
| diderot2 | 0:5ae6ccb247c6 | 113 | int getAnalog4(); | 
| diderot2 | 0:5ae6ccb247c6 | 114 | |
| diderot2 | 0:5ae6ccb247c6 | 115 | private: | 
| diderot2 | 0:5ae6ccb247c6 | 116 | //methods | 
| diderot2 | 0:5ae6ccb247c6 | 117 | unsigned char CheckSum(unsigned char* Buffer,int Len); | 
| diderot2 | 0:5ae6ccb247c6 | 118 | //variables | 
| diderot2 | 0:5ae6ccb247c6 | 119 | unsigned char wBuffer[20]; //write buffer used to construct messages | 
| diderot2 | 0:5ae6ccb247c6 | 120 | unsigned char rBuffer[20]; //read buffer used to parse messages | 
| diderot2 | 0:5ae6ccb247c6 | 121 | }; |