ya moua / Gamoto
Committer:
diderot2
Date:
Thu Mar 17 09:46:31 2011 +0000
Revision:
1:260869102f7e
Parent:
0:5ae6ccb247c6

        

Who changed what in which revision?

UserRevisionLine numberNew 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 };