Dependents:   OBROT_ALL

Committer:
inst
Date:
Fri Nov 13 08:15:43 2015 +0000
Revision:
3:56ad82f5f780
Parent:
2:58d7debaed1f

        

Who changed what in which revision?

UserRevisionLine numberNew 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