teamALI / Mbed 2 deprecated HB2018

Dependencies:   mbed FreeRTOS

Committer:
MasashiNomura
Date:
Wed Dec 19 12:22:22 2018 +0000
Revision:
31:56c554c560c1
Parent:
30:13ada1a24c59
Child:
32:7f4145cc3551
12/19 test modify PID etc

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:
takeru0x1103 18:5aa48aec9cae 17 INT16 motorVal[4] ;//
MasashiNomura 25:f3a6e7eec9c3 18 INT16 motorValD[4] ;// オフセット込みで直接入れられた値
takeru0x1103 18:5aa48aec9cae 19 UINT16 accelVal[2] ;//
takeru0x1103 19:4b0fe9a5ec38 20 float nowAngle ;//現在ヨー角
takeru0x1103 19:4b0fe9a5ec38 21 float nowRate ;//現在加速度
MasashiNomura 22:24c9c2dedca9 22 typUserSw usrSW ;//ユーザー操作SW
takeru0x1103 19:4b0fe9a5ec38 23 //メンバクラス
takeru0x1103 18:5aa48aec9cae 24 HbEngine *eng[2] ;//エンジン制御クラス
takeru0x1103 18:5aa48aec9cae 25 HbAttitude *att ;//姿勢制御クラス
MasashiNomura 28:fdb3b144e342 26 //HbMotor *mot[4] ;//モーター制御クラス
MasashiNomura 28:fdb3b144e342 27 HbSubProp *subProp[4] ;//モーター制御クラス
takeru0x1103 18:5aa48aec9cae 28 Imu *imu ;//慣性計測装置
MasashiNomura 22:24c9c2dedca9 29
MasashiNomura 22:24c9c2dedca9 30 HbUserOpe *ope ;//ユーザー操作
MasashiNomura 22:24c9c2dedca9 31
MasashiNomura 24:c5945aaae777 32 //INT16 motVal; // モーターチェック用モーター値
MasashiNomura 24:c5945aaae777 33 //short motNum; // モーターチェック用モーター番号
MasashiNomura 24:c5945aaae777 34
takeru0x1103 17:f9610f3cfa1b 35 public:
takeru0x1103 17:f9610f3cfa1b 36 HbManager();
takeru0x1103 18:5aa48aec9cae 37 void getAttitude();
MasashiNomura 25:f3a6e7eec9c3 38 void calAtt();
takeru0x1103 18:5aa48aec9cae 39 void controlAttitude();
MasashiNomura 24:c5945aaae777 40 void controlAttitude(float cmdAngle);
MasashiNomura 24:c5945aaae777 41 void setAttPara(typPidPara para);
takeru0x1103 18:5aa48aec9cae 42 void controlMotor();
MasashiNomura 29:eb3d72dd94aa 43 //void addMotOfs(HbUserOpe::SW_TYPE2 sw);// テスト用ボタンで回転数オフセット上げ
MasashiNomura 30:13ada1a24c59 44 // void addMotVal(HbUserOpe::SW_TYPE sw);
MasashiNomura 30:13ada1a24c59 45 // void subMotVal(HbUserOpe::SW_TYPE sw);
MasashiNomura 29:eb3d72dd94aa 46 void addMotVal(eMotPos pos, INT16 add);
MasashiNomura 29:eb3d72dd94aa 47 void subMotVal(eMotPos pos, INT16 add);
MasashiNomura 30:13ada1a24c59 48 void setMotPara(UCHAR num, typMotPara para); // 今は使わない
MasashiNomura 24:c5945aaae777 49 //void initChkMotor();
MasashiNomura 24:c5945aaae777 50 //bool chkMotor();
MasashiNomura 25:f3a6e7eec9c3 51 void getCurMotVal();
MasashiNomura 30:13ada1a24c59 52 INT16 getCurMotVal(eMotPos pos);
MasashiNomura 30:13ada1a24c59 53 void setMotVal(eMotPos pos, INT16 val);
MasashiNomura 25:f3a6e7eec9c3 54 bool stopMotor();
MasashiNomura 25:f3a6e7eec9c3 55 void initMotVal();
MasashiNomura 27:ff63c23bc689 56
MasashiNomura 27:ff63c23bc689 57 void setMotFPGA(UCHAR num, INT16 val);
MasashiNomura 27:ff63c23bc689 58
takeru0x1103 17:f9610f3cfa1b 59 void controlEngine();
takeru0x1103 17:f9610f3cfa1b 60 void getUserCommand();
MasashiNomura 23:79e20be4bc5b 61
MasashiNomura 23:79e20be4bc5b 62 bool chkOverIDLE();
MasashiNomura 23:79e20be4bc5b 63 bool chkInRangeIDLE();
MasashiNomura 31:56c554c560c1 64 void chkSW(enmHbState stat);
MasashiNomura 23:79e20be4bc5b 65 bool chkSWUserOpe(HbUserOpe::SW_TYPE stype);
MasashiNomura 30:13ada1a24c59 66 bool chkSWUserOpeRE(HbUserOpe::SW_TYPE stype);//立ち上がり検出
MasashiNomura 23:79e20be4bc5b 67 bool chkSWUserOpeAny();
MasashiNomura 23:79e20be4bc5b 68 typUserSw getUserSw();
takeru0x1103 17:f9610f3cfa1b 69 };
takeru0x1103 0:ecd925601fc6 70
takeru0x1103 0:ecd925601fc6 71 /////////////////////////////////////////////////////////////////////
takeru0x1103 16:05b9e44889f1 72 #endif