teamALI / Mbed 2 deprecated HB2018

Dependencies:   mbed FreeRTOS

Committer:
YutakaTakagi
Date:
Fri Mar 22 00:59:32 2019 +0000
Revision:
75:215dd63032d6
Parent:
70:a7b1e3eec51b
add yaw and gyroZ check for New Arduino Code

Who changed what in which revision?

UserRevisionLine numberNew contents of line
takeru0x1103 16:05b9e44889f1 1 #ifndef __HBMANAGER_H__
takeru0x1103 16:05b9e44889f1 2 #define __HBMANAGER_H__
takeru0x1103 0:ecd925601fc6 3 /////////////////////////////////////////////////////////////////////
takeru0x1103 17:f9610f3cfa1b 4 #include "typedef.h"
takeru0x1103 17:f9610f3cfa1b 5 #include "HbEngine.h"
takeru0x1103 18:5aa48aec9cae 6 #include "HbAttitude.h"
takeru0x1103 18:5aa48aec9cae 7 #include "HbMotor.h"
takeru0x1103 18:5aa48aec9cae 8 #include "Imu.h"
MasashiNomura 22:24c9c2dedca9 9 #include "HbUserOpe.h"
takeru0x1103 17:f9610f3cfa1b 10
takeru0x1103 0:ecd925601fc6 11
takeru0x1103 19:4b0fe9a5ec38 12
takeru0x1103 19:4b0fe9a5ec38 13
takeru0x1103 17:f9610f3cfa1b 14 /////////////////////////////////////////////////
takeru0x1103 17:f9610f3cfa1b 15 class HbManager{
takeru0x1103 17:f9610f3cfa1b 16 private:
MasashiNomura 53:b09c062cc31c 17 INT16 en_srv_step[2]; //!< エンジンスロットルを変化させる際のステップ値
MasashiNomura 53:b09c062cc31c 18 INT16 en_srv_adj_step[2]; //!< エンジンを浮上中にドライバーが調整する際のステップ値
MasashiNomura 63:aee44afe6363 19 INT16 motorOfsVal[4] ; //!< 姿勢制御用のオフセット
MasashiNomura 56:f363a6877c6a 20 INT16 mot_brk; //!< MotorブレーキのRPM値
MasashiNomura 63:aee44afe6363 21 INT16 mot_takeoff_offset; //!< モーターのTAKE_OFFステート時に使用するオフセット値
takeru0x1103 18:5aa48aec9cae 22 UINT16 accelVal[2] ;//
YutakaTakagi 70:a7b1e3eec51b 23 float ang_rate_brk; //!< ブレーキボタンON時の目標角度[deg]変化率
MasashiNomura 36:2cc739c7e4cb 24 float nowTrgtAng; //目標ヨー角
takeru0x1103 19:4b0fe9a5ec38 25 float nowAngle ;//現在ヨー角
takeru0x1103 19:4b0fe9a5ec38 26 float nowRate ;//現在加速度
MasashiNomura 22:24c9c2dedca9 27 typUserSw usrSW ;//ユーザー操作SW
takeru0x1103 19:4b0fe9a5ec38 28 //メンバクラス
takeru0x1103 18:5aa48aec9cae 29 HbEngine *eng[2] ;//エンジン制御クラス
takeru0x1103 18:5aa48aec9cae 30 HbAttitude *att ;//姿勢制御クラス
MasashiNomura 28:fdb3b144e342 31 //HbMotor *mot[4] ;//モーター制御クラス
MasashiNomura 28:fdb3b144e342 32 HbSubProp *subProp[4] ;//モーター制御クラス
takeru0x1103 18:5aa48aec9cae 33 Imu *imu ;//慣性計測装置
MasashiNomura 22:24c9c2dedca9 34
MasashiNomura 22:24c9c2dedca9 35 HbUserOpe *ope ;//ユーザー操作
MasashiNomura 22:24c9c2dedca9 36
MasashiNomura 24:c5945aaae777 37 //INT16 motVal; // モーターチェック用モーター値
MasashiNomura 24:c5945aaae777 38 //short motNum; // モーターチェック用モーター番号
MasashiNomura 24:c5945aaae777 39
takeru0x1103 17:f9610f3cfa1b 40 public:
takeru0x1103 17:f9610f3cfa1b 41 HbManager();
MasashiNomura 39:1b76f7df8804 42 // TestSPIRead Task生存証明用アクセスProof of survival
MasashiNomura 39:1b76f7df8804 43 UINT16 proofOfSurvival();
MasashiNomura 38:24ee50452755 44 // Attitude
takeru0x1103 18:5aa48aec9cae 45 void getAttitude();
MasashiNomura 25:f3a6e7eec9c3 46 void calAtt();
takeru0x1103 18:5aa48aec9cae 47 void controlAttitude();
MasashiNomura 24:c5945aaae777 48 void controlAttitude(float cmdAngle);
MasashiNomura 24:c5945aaae777 49 void setAttPara(typPidPara para);
MasashiNomura 38:24ee50452755 50 // Motor
takeru0x1103 18:5aa48aec9cae 51 void controlMotor();
MasashiNomura 29:eb3d72dd94aa 52 void addMotVal(eMotPos pos, INT16 add);
MasashiNomura 29:eb3d72dd94aa 53 void subMotVal(eMotPos pos, INT16 add);
MasashiNomura 30:13ada1a24c59 54 INT16 getCurMotVal(eMotPos pos);
MasashiNomura 30:13ada1a24c59 55 void setMotVal(eMotPos pos, INT16 val);
MasashiNomura 46:5074781a28dd 56 void setMotValOfs(eMotPos pos, INT16 val);
MasashiNomura 56:f363a6877c6a 57 void setMotValAtt(eMotPos pos, INT16 val);
MasashiNomura 63:aee44afe6363 58 void setMotTakeOffOffset();
MasashiNomura 40:debe99e228d3 59 void setFpgaMot(eMotPos pos,eMotType type, INT16 val);
MasashiNomura 36:2cc739c7e4cb 60 //void setMotFPGA(UCHAR num, INT16 val);
MasashiNomura 27:ff63c23bc689 61
MasashiNomura 38:24ee50452755 62 // Engine
MasashiNomura 39:1b76f7df8804 63 void getEngine();
takeru0x1103 17:f9610f3cfa1b 64 void controlEngine();
MasashiNomura 46:5074781a28dd 65 void controlEngine(enmHbState stat);
MasashiNomura 46:5074781a28dd 66
MasashiNomura 36:2cc739c7e4cb 67 void clearHvAxl();
MasashiNomura 36:2cc739c7e4cb 68 bool chkSetHvAxl(eEgPos pos);
MasashiNomura 36:2cc739c7e4cb 69 void setHvAxl(eEgPos pos, INT16 val);
MasashiNomura 38:24ee50452755 70 INT16 getHvAxl(eEgPos pos);
MasashiNomura 36:2cc739c7e4cb 71 void setAccelVal(eEgPos pos, INT16 val);
MasashiNomura 39:1b76f7df8804 72 INT16 getAccelVal(eEgPos pos);
MasashiNomura 36:2cc739c7e4cb 73
takeru0x1103 17:f9610f3cfa1b 74 void getUserCommand();
MasashiNomura 33:eb260dbfc22a 75 INT16 getUserMotAxl();
MasashiNomura 36:2cc739c7e4cb 76 INT16 getUserEngTrottle();
MasashiNomura 38:24ee50452755 77 float getUserMotAxlRaw();
MasashiNomura 38:24ee50452755 78 float getUserEngTrottleRaw();
MasashiNomura 33:eb260dbfc22a 79
MasashiNomura 23:79e20be4bc5b 80 bool chkOverIDLE();
MasashiNomura 23:79e20be4bc5b 81 bool chkInRangeIDLE();
MasashiNomura 31:56c554c560c1 82 void chkSW(enmHbState stat);
MasashiNomura 23:79e20be4bc5b 83 bool chkSWUserOpe(HbUserOpe::SW_TYPE stype);
MasashiNomura 30:13ada1a24c59 84 bool chkSWUserOpeRE(HbUserOpe::SW_TYPE stype);//立ち上がり検出
MasashiNomura 23:79e20be4bc5b 85 bool chkSWUserOpeAny();
MasashiNomura 36:2cc739c7e4cb 86 bool chkSWUserOpeBoth(HbUserOpe::SW_TYPE stype1, HbUserOpe::SW_TYPE stype2);
MasashiNomura 36:2cc739c7e4cb 87
MasashiNomura 23:79e20be4bc5b 88 typUserSw getUserSw();
takeru0x1103 17:f9610f3cfa1b 89 };
takeru0x1103 0:ecd925601fc6 90
takeru0x1103 0:ecd925601fc6 91 /////////////////////////////////////////////////////////////////////
takeru0x1103 16:05b9e44889f1 92 #endif