Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
HbManager.h@75:215dd63032d6, 2019-03-22 (annotated)
- 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?
User | Revision | Line number | New 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 |