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@1:260869102f7e, 2011-03-17 (annotated)
- Committer:
- diderot2
- Date:
- Thu Mar 17 09:46:31 2011 +0000
- Revision:
- 1:260869102f7e
- Parent:
- 0:5ae6ccb247c6
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 | 1:260869102f7e | 17 | #define ACK 0x41 |
diderot2 | 1:260869102f7e | 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 | 1:260869102f7e | 68 | Gamoto(); |
diderot2 | 1:260869102f7e | 69 | ~Gamoto(); |
diderot2 | 0:5ae6ccb247c6 | 70 | |
diderot2 | 1:260869102f7e | 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 | 1:260869102f7e | 116 | //methods |
diderot2 | 1:260869102f7e | 117 | unsigned char CheckSum(unsigned char* Buffer,int Len); |
diderot2 | 1:260869102f7e | 118 | //variables |
diderot2 | 1:260869102f7e | 119 | unsigned char wBuffer[20]; //write buffer used to construct messages |
diderot2 | 1:260869102f7e | 120 | unsigned char rBuffer[20]; //read buffer used to parse messages |
diderot2 | 0:5ae6ccb247c6 | 121 | }; |