Dependents:   ShootingSystem

Committer:
inst
Date:
Wed Oct 14 03:52:34 2015 +0000
Revision:
2:5ec2a3097d4c
Parent:
1:42d2772575c5

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
inst 0:fac139a6b77c 1 #ifndef INCLUDED_AMMO_PUSHER_H
inst 0:fac139a6b77c 2 #define INCLUDED_AMMO_PUSHER_H
inst 0:fac139a6b77c 3
inst 0:fac139a6b77c 4 #include "mbed.h"
inst 2:5ec2a3097d4c 5 #include "I2CDevice.h"
inst 0:fac139a6b77c 6
inst 2:5ec2a3097d4c 7 class AmmoPusher : public I2CDevice{
inst 0:fac139a6b77c 8 public:
inst 2:5ec2a3097d4c 9 enum ActionType{
inst 2:5ec2a3097d4c 10 NO_OPERATION,
inst 2:5ec2a3097d4c 11 DRAWING,
inst 2:5ec2a3097d4c 12 PUSHING
inst 2:5ec2a3097d4c 13 };
inst 2:5ec2a3097d4c 14 enum State{
inst 2:5ec2a3097d4c 15 BETWEEN,
inst 2:5ec2a3097d4c 16 HAS_FINISHED_DRAWING,
inst 2:5ec2a3097d4c 17 HAS_FINISHED_PUSHING
inst 2:5ec2a3097d4c 18 };
inst 2:5ec2a3097d4c 19
inst 2:5ec2a3097d4c 20 AmmoPusher( char address );
inst 0:fac139a6b77c 21
inst 2:5ec2a3097d4c 22 void push(){
inst 2:5ec2a3097d4c 23 setActionType( PUSHING );
inst 2:5ec2a3097d4c 24 }
inst 2:5ec2a3097d4c 25 void draw(){
inst 2:5ec2a3097d4c 26 setActionType( DRAWING );
inst 2:5ec2a3097d4c 27 }
inst 2:5ec2a3097d4c 28 void setActionType( ActionType action ){
inst 2:5ec2a3097d4c 29 mActionType = action;
inst 2:5ec2a3097d4c 30 }
inst 2:5ec2a3097d4c 31 State getState(){
inst 2:5ec2a3097d4c 32 return mState;
inst 2:5ec2a3097d4c 33 }
inst 2:5ec2a3097d4c 34 bool isWorking(){
inst 2:5ec2a3097d4c 35 return ( ( mState == BETWEEN ) && ( mActionType != NO_OPERATION ) );
inst 2:5ec2a3097d4c 36 }
inst 2:5ec2a3097d4c 37 bool hasPushed(){
inst 2:5ec2a3097d4c 38 return ( mState == HAS_FINISHED_PUSHING );
inst 2:5ec2a3097d4c 39 }
inst 2:5ec2a3097d4c 40 bool hasDrawn(){
inst 2:5ec2a3097d4c 41 return ( mState == HAS_FINISHED_DRAWING );
inst 2:5ec2a3097d4c 42 }
inst 0:fac139a6b77c 43
inst 2:5ec2a3097d4c 44 virtual int write();
inst 2:5ec2a3097d4c 45 virtual int read();
inst 0:fac139a6b77c 46
inst 0:fac139a6b77c 47 private:
inst 2:5ec2a3097d4c 48 ActionType mActionType;
inst 2:5ec2a3097d4c 49 State mState;
inst 0:fac139a6b77c 50 };
inst 0:fac139a6b77c 51
inst 0:fac139a6b77c 52 #endif