Committer:
inst
Date:
Wed Oct 14 03:52:28 2015 +0000
Revision:
1:215e05be641b
Parent:
0:d660b49b71e0

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
inst 0:d660b49b71e0 1 #ifndef INCLUDED_SHOOTER_H
inst 0:d660b49b71e0 2 #define INCLUDED_SHOOTER_H
inst 0:d660b49b71e0 3
inst 0:d660b49b71e0 4 #include "I2CDevice.h"
inst 0:d660b49b71e0 5
inst 0:d660b49b71e0 6 class Shooter : public I2CDevice{
inst 0:d660b49b71e0 7 public:
inst 1:215e05be641b 8 enum ActionType{
inst 1:215e05be641b 9 STOP = 0x00, // 0000(2)
inst 1:215e05be641b 10 WORKING_8V = 0x01, // 0001(2)
inst 1:215e05be641b 11 WORKING_12V = 0x03, // 0011(2)
inst 1:215e05be641b 12 WORKING_16V = 0x07, // 0111(2)
inst 1:215e05be641b 13 WORKING_20V = 0x0F // 1111(2)
inst 1:215e05be641b 14 };
inst 1:215e05be641b 15
inst 0:d660b49b71e0 16 Shooter( char address );
inst 1:215e05be641b 17
inst 1:215e05be641b 18 void setVoltage( ActionType action ){
inst 1:215e05be641b 19 setLaunchType( action );
inst 1:215e05be641b 20
inst 1:215e05be641b 21 if ( mActionType != STOP ){
inst 1:215e05be641b 22 setActionType( mLaunchType );
inst 1:215e05be641b 23 }
inst 1:215e05be641b 24 }
inst 1:215e05be641b 25 void setActionType( ActionType action ){
inst 1:215e05be641b 26 mActionType = action;
inst 1:215e05be641b 27 }
inst 1:215e05be641b 28 void setLaunchType( ActionType action ){
inst 1:215e05be641b 29 mLaunchType = action;
inst 1:215e05be641b 30 }
inst 0:d660b49b71e0 31 void launch();
inst 0:d660b49b71e0 32 void stop();
inst 1:215e05be641b 33 bool isWorking(){
inst 1:215e05be641b 34 return ( mActionType != STOP );
inst 1:215e05be641b 35 }
inst 1:215e05be641b 36
inst 1:215e05be641b 37 ActionType getVoltage(){
inst 1:215e05be641b 38 return mActionType;
inst 1:215e05be641b 39 }
inst 0:d660b49b71e0 40
inst 0:d660b49b71e0 41 protected:
inst 1:215e05be641b 42 virtual int write();
inst 0:d660b49b71e0 43
inst 0:d660b49b71e0 44 private:
inst 1:215e05be641b 45 ActionType mActionType;
inst 1:215e05be641b 46 ActionType mLaunchType;
inst 0:d660b49b71e0 47 };
inst 0:d660b49b71e0 48
inst 0:d660b49b71e0 49 #endif