Command.h@3:56ad82f5f780, 2015-11-13 (annotated)
- Committer:
- inst
- Date:
- Fri Nov 13 08:15:43 2015 +0000
- Revision:
- 3:56ad82f5f780
- Parent:
- 2:58d7debaed1f
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
inst | 0:57ef16865c0b | 1 | #ifndef INCLUDED_COMMAND_H |
inst | 0:57ef16865c0b | 2 | #define INCLUDED_COMMAND_H |
inst | 0:57ef16865c0b | 3 | |
inst | 2:58d7debaed1f | 4 | #include "Steering.h" |
inst | 2:58d7debaed1f | 5 | #include "Shooter.h" |
inst | 2:58d7debaed1f | 6 | #include "ShootingSystem.h" |
inst | 2:58d7debaed1f | 7 | |
inst | 0:57ef16865c0b | 8 | class Command{ |
inst | 0:57ef16865c0b | 9 | public: |
inst | 1:e541c8ebe96b | 10 | enum ShotTargetID{ |
inst | 1:e541c8ebe96b | 11 | OWN_POLE_ID, |
inst | 2:58d7debaed1f | 12 | CENTER_MIDDLE_POLE_ID, |
inst | 2:58d7debaed1f | 13 | CENTER_SIDE_POLE_ID, |
inst | 1:e541c8ebe96b | 14 | ENEMYS_POLE_ID |
inst | 1:e541c8ebe96b | 15 | }; |
inst | 1:e541c8ebe96b | 16 | |
inst | 2:58d7debaed1f | 17 | Command(); |
inst | 2:58d7debaed1f | 18 | Command( Steering::ActionType steeringAction, |
inst | 2:58d7debaed1f | 19 | ShootingSystem::AimState aimState, |
inst | 2:58d7debaed1f | 20 | float moveDirection_rad, float angleAdjust_deg, |
inst | 2:58d7debaed1f | 21 | float moveDuty, float roll, bool isSupplying ); |
inst | 1:e541c8ebe96b | 22 | |
inst | 2:58d7debaed1f | 23 | void setSteeringActionType( Steering::ActionType action ){ |
inst | 2:58d7debaed1f | 24 | mSteeringActionType = action; |
inst | 1:e541c8ebe96b | 25 | } |
inst | 2:58d7debaed1f | 26 | void setAimStateAndAimParam( ShootingSystem::AimState aimState ); |
inst | 1:e541c8ebe96b | 27 | void setMoveDirection_rad( float moveDirection_rad ){ |
inst | 1:e541c8ebe96b | 28 | mMoveDirection_rad = moveDirection_rad; |
inst | 1:e541c8ebe96b | 29 | } |
inst | 1:e541c8ebe96b | 30 | void setMoveDuty( float moveDuty ){ |
inst | 1:e541c8ebe96b | 31 | mMoveDuty = moveDuty; |
inst | 1:e541c8ebe96b | 32 | } |
inst | 1:e541c8ebe96b | 33 | void setRollCoeff( float rollCoeff ){ |
inst | 1:e541c8ebe96b | 34 | mRollCoeff = rollCoeff; |
inst | 1:e541c8ebe96b | 35 | } |
inst | 2:58d7debaed1f | 36 | void setAngleOfShooting( float angle ){ |
inst | 2:58d7debaed1f | 37 | mShootingAngle_deg = angle; |
inst | 1:e541c8ebe96b | 38 | } |
inst | 2:58d7debaed1f | 39 | void setAngleAdjust_deg( float angle_deg ){ |
inst | 2:58d7debaed1f | 40 | mAngleAdjust_deg = angle_deg; |
inst | 2:58d7debaed1f | 41 | } |
inst | 2:58d7debaed1f | 42 | void setShooterPosition( float pos ){ |
inst | 2:58d7debaed1f | 43 | mShooterPosition = pos; |
inst | 0:57ef16865c0b | 44 | } |
inst | 0:57ef16865c0b | 45 | |
inst | 2:58d7debaed1f | 46 | Steering::ActionType getSteeringActionType(){ |
inst | 2:58d7debaed1f | 47 | return mSteeringActionType; |
inst | 2:58d7debaed1f | 48 | } |
inst | 2:58d7debaed1f | 49 | ShootingSystem::AimState getAimState(){ |
inst | 2:58d7debaed1f | 50 | return mAimState; |
inst | 0:57ef16865c0b | 51 | } |
inst | 0:57ef16865c0b | 52 | float getMoveDirection_rad(){ |
inst | 0:57ef16865c0b | 53 | return mMoveDirection_rad; |
inst | 0:57ef16865c0b | 54 | } |
inst | 0:57ef16865c0b | 55 | float getMoveDuty(){ |
inst | 0:57ef16865c0b | 56 | return mMoveDuty; |
inst | 0:57ef16865c0b | 57 | } |
inst | 0:57ef16865c0b | 58 | float getRollCoeff(){ |
inst | 0:57ef16865c0b | 59 | return mRollCoeff; |
inst | 0:57ef16865c0b | 60 | } |
inst | 2:58d7debaed1f | 61 | float getShootingAngleAnalog(){ |
inst | 2:58d7debaed1f | 62 | return angleToAnalog( mShootingAngle_deg ); |
inst | 2:58d7debaed1f | 63 | } |
inst | 2:58d7debaed1f | 64 | Shooter::ActionType getShootVoltage(){ |
inst | 2:58d7debaed1f | 65 | return mShootVoltage; |
inst | 2:58d7debaed1f | 66 | } |
inst | 2:58d7debaed1f | 67 | float getAngleAdjust_deg(){ |
inst | 2:58d7debaed1f | 68 | return mAngleAdjust_deg; |
inst | 1:e541c8ebe96b | 69 | } |
inst | 2:58d7debaed1f | 70 | float getShooterPosition(){ |
inst | 2:58d7debaed1f | 71 | return mShooterPosition; |
inst | 1:e541c8ebe96b | 72 | } |
inst | 2:58d7debaed1f | 73 | bool isShooting(){ |
inst | 2:58d7debaed1f | 74 | return mIsShooting; |
inst | 2:58d7debaed1f | 75 | } |
inst | 2:58d7debaed1f | 76 | bool isSupplying(){ |
inst | 2:58d7debaed1f | 77 | return mIsSupplying; |
inst | 1:e541c8ebe96b | 78 | } |
inst | 0:57ef16865c0b | 79 | |
inst | 0:57ef16865c0b | 80 | private: |
inst | 2:58d7debaed1f | 81 | float angleToAnalog( float angle_deg ){ |
inst | 2:58d7debaed1f | 82 | return mAngleToAnalogCoeffA * angle_deg + mAngleToAnalogCoeffB; |
inst | 2:58d7debaed1f | 83 | } |
inst | 2:58d7debaed1f | 84 | |
inst | 2:58d7debaed1f | 85 | static const float mShootingAngleTable[]; |
inst | 2:58d7debaed1f | 86 | static const float mAngleToAnalogCoeffA; |
inst | 2:58d7debaed1f | 87 | static const float mAngleToAnalogCoeffB; |
inst | 2:58d7debaed1f | 88 | static const float mMaxAngle_deg; |
inst | 2:58d7debaed1f | 89 | static const float mMinAngle_deg; |
inst | 2:58d7debaed1f | 90 | static const float mShooterPositionTable[]; |
inst | 1:e541c8ebe96b | 91 | |
inst | 2:58d7debaed1f | 92 | Steering::ActionType mSteeringActionType; |
inst | 2:58d7debaed1f | 93 | Shooter::ActionType mShootVoltage; |
inst | 2:58d7debaed1f | 94 | ShootingSystem::AimState mAimState; |
inst | 0:57ef16865c0b | 95 | float mMoveDirection_rad; |
inst | 0:57ef16865c0b | 96 | float mMoveDuty; |
inst | 0:57ef16865c0b | 97 | float mRollCoeff; |
inst | 2:58d7debaed1f | 98 | float mShootingAngle_deg; |
inst | 2:58d7debaed1f | 99 | float mAngleAdjust_deg; |
inst | 2:58d7debaed1f | 100 | float mShooterPosition; |
inst | 2:58d7debaed1f | 101 | bool mIsShooting; |
inst | 2:58d7debaed1f | 102 | bool mIsSupplying; |
inst | 0:57ef16865c0b | 103 | }; |
inst | 0:57ef16865c0b | 104 | |
inst | 0:57ef16865c0b | 105 | #endif |