Dependents:   RobotBase

Committer:
inst
Date:
Thu Jul 02 00:57:59 2015 +0000
Revision:
0:89910534fad4
Child:
1:46cf8d086b38
2015 robocon beta

Who changed what in which revision?

UserRevisionLine numberNew contents of line
inst 0:89910534fad4 1 #ifndef INCLUDED_I2C_MOTOR_H
inst 0:89910534fad4 2 #define INCLUDED_I2C_MOTOR_H
inst 0:89910534fad4 3
inst 0:89910534fad4 4 #include "I2CDevice.h"
inst 0:89910534fad4 5 #include "mbed.h"
inst 0:89910534fad4 6
inst 0:89910534fad4 7 class I2CMotor : public I2CDevice{
inst 0:89910534fad4 8 public:
inst 0:89910534fad4 9 enum ActionType{
inst 0:89910534fad4 10 RELEASE,
inst 0:89910534fad4 11 LEFT,
inst 0:89910534fad4 12 RIGHT,
inst 0:89910534fad4 13 BRAKE
inst 0:89910534fad4 14 };
inst 0:89910534fad4 15 I2CMotor( I2C* i2c, char address );
inst 0:89910534fad4 16
inst 0:89910534fad4 17 void setActionType( ActionType action ){
inst 0:89910534fad4 18 mActionType = action;
inst 0:89910534fad4 19 }
inst 0:89910534fad4 20 void setDuty( float duty ){
inst 0:89910534fad4 21 if ( duty > 1.0f ){
inst 0:89910534fad4 22 duty = 1.0f;
inst 0:89910534fad4 23 } else if ( duty < 0.0f ){
inst 0:89910534fad4 24 duty = 0.0f;
inst 0:89910534fad4 25 }
inst 0:89910534fad4 26
inst 0:89910534fad4 27 mDuty = duty;
inst 0:89910534fad4 28 }
inst 0:89910534fad4 29 ActionType getActionType(){
inst 0:89910534fad4 30 return mActionType;
inst 0:89910534fad4 31 }
inst 0:89910534fad4 32 float getDuty(){
inst 0:89910534fad4 33 return mDuty;
inst 0:89910534fad4 34 }
inst 0:89910534fad4 35
inst 0:89910534fad4 36 float getMaxDuty(){
inst 0:89910534fad4 37 return mMaxDuty;
inst 0:89910534fad4 38 }
inst 0:89910534fad4 39 float getMinDuty(){
inst 0:89910534fad4 40 return mMinDuty;
inst 0:89910534fad4 41 }
inst 0:89910534fad4 42
inst 0:89910534fad4 43 protected:
inst 0:89910534fad4 44 virtual void write();
inst 0:89910534fad4 45 virtual void read(){}
inst 0:89910534fad4 46 private:
inst 0:89910534fad4 47 ActionType mActionType;
inst 0:89910534fad4 48 float mDuty;
inst 0:89910534fad4 49
inst 0:89910534fad4 50 float mMaxDuty;
inst 0:89910534fad4 51 float mMinDuty;
inst 0:89910534fad4 52 };
inst 0:89910534fad4 53
inst 0:89910534fad4 54 #endif