AmmoPusher.h@2:5ec2a3097d4c, 2015-10-14 (annotated)
- Committer:
- inst
- Date:
- Wed Oct 14 03:52:34 2015 +0000
- Revision:
- 2:5ec2a3097d4c
- Parent:
- 1:42d2772575c5
Who changed what in which revision?
User | Revision | Line number | New 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 |