teamALI / Mbed 2 deprecated HB2018

Dependencies:   mbed FreeRTOS

Committer:
takeru0x1103
Date:
Thu Dec 06 01:50:17 2018 +0000
Revision:
21:78302ecdb661
Parent:
20:0394e15412c3
Child:
22:24c9c2dedca9
for nomurasan;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
takeru0x1103 8:1ca49cb18290 1 #ifndef __GLOBALFLAGS_H__
takeru0x1103 8:1ca49cb18290 2 #define __GLOBALFLAGS_H__
takeru0x1103 8:1ca49cb18290 3
takeru0x1103 16:05b9e44889f1 4 #include "mbed.h"
takeru0x1103 17:f9610f3cfa1b 5 #include "typedef.h"
takeru0x1103 17:f9610f3cfa1b 6
takeru0x1103 19:4b0fe9a5ec38 7 #define G_CMD_BUF_SIZ 32
takeru0x1103 19:4b0fe9a5ec38 8 #define STATE_QUE_SIZ 8
takeru0x1103 19:4b0fe9a5ec38 9
takeru0x1103 17:f9610f3cfa1b 10 typedef union{
takeru0x1103 17:f9610f3cfa1b 11 UINT16 flg;
takeru0x1103 17:f9610f3cfa1b 12 struct{
takeru0x1103 17:f9610f3cfa1b 13 bool e1 : 1;//前エンジン回転数
takeru0x1103 17:f9610f3cfa1b 14 bool e2 : 1;//後ろエンジン回転数
takeru0x1103 17:f9610f3cfa1b 15 bool m1 : 1;//サブモーター回転数
takeru0x1103 17:f9610f3cfa1b 16 bool m2 : 1;//サブモーター回転数
takeru0x1103 17:f9610f3cfa1b 17 bool m3 : 1;//サブモーター回転数
takeru0x1103 17:f9610f3cfa1b 18 bool m4 : 1;//サブモーター回転数
takeru0x1103 17:f9610f3cfa1b 19 bool gy : 1;//ジャイロ
takeru0x1103 17:f9610f3cfa1b 20 bool yaw : 1;//ヨー角
takeru0x1103 18:5aa48aec9cae 21 bool fb : 1;//PID制御feedback結果
takeru0x1103 18:5aa48aec9cae 22 bool pp : 1;//P制御ゲイン(アウターループ)
takeru0x1103 18:5aa48aec9cae 23 bool p : 1;//P制御ゲイン
takeru0x1103 18:5aa48aec9cae 24 bool i : 1;//I制御ゲイン
takeru0x1103 18:5aa48aec9cae 25 bool d : 1;//D制御ゲイン
takeru0x1103 17:f9610f3cfa1b 26 }bf;
takeru0x1103 17:f9610f3cfa1b 27 }typPrintFlag;
takeru0x1103 17:f9610f3cfa1b 28
takeru0x1103 17:f9610f3cfa1b 29 typedef union{
takeru0x1103 17:f9610f3cfa1b 30 UINT16 flg;
takeru0x1103 17:f9610f3cfa1b 31 struct{
takeru0x1103 17:f9610f3cfa1b 32 bool e1 : 1;//
takeru0x1103 17:f9610f3cfa1b 33 bool e2 : 1;//
takeru0x1103 17:f9610f3cfa1b 34 bool m1 : 1;//
takeru0x1103 17:f9610f3cfa1b 35 bool m2 : 1;//
takeru0x1103 17:f9610f3cfa1b 36 bool m3 : 1;//
takeru0x1103 17:f9610f3cfa1b 37 bool m4 : 1;//
takeru0x1103 17:f9610f3cfa1b 38 bool gy : 1;//
takeru0x1103 17:f9610f3cfa1b 39 bool yaw : 1;//
takeru0x1103 18:5aa48aec9cae 40 bool fb : 1;//PID制御feedback結果
takeru0x1103 18:5aa48aec9cae 41 bool pp : 1;//P制御ゲイン(アウターループ)
takeru0x1103 18:5aa48aec9cae 42 bool p : 1;//P制御ゲイン
takeru0x1103 18:5aa48aec9cae 43 bool i : 1;//I制御ゲイン
takeru0x1103 18:5aa48aec9cae 44 bool d : 1;//D制御ゲイン
takeru0x1103 17:f9610f3cfa1b 45 }bf;
takeru0x1103 17:f9610f3cfa1b 46 }typCalFlag;
takeru0x1103 17:f9610f3cfa1b 47
takeru0x1103 19:4b0fe9a5ec38 48 //
takeru0x1103 17:f9610f3cfa1b 49 typedef union{
takeru0x1103 17:f9610f3cfa1b 50 UINT16 dt;
takeru0x1103 17:f9610f3cfa1b 51 struct{
takeru0x1103 18:5aa48aec9cae 52 UINT16 val : 12;//アクセル設定値
takeru0x1103 17:f9610f3cfa1b 53 bool req : 1;//アクセル更新要求
takeru0x1103 17:f9610f3cfa1b 54 }bf;
takeru0x1103 17:f9610f3cfa1b 55 }typAccel;
takeru0x1103 17:f9610f3cfa1b 56
takeru0x1103 19:4b0fe9a5ec38 57 //ステート定義
takeru0x1103 19:4b0fe9a5ec38 58 enum enmHbState
takeru0x1103 19:4b0fe9a5ec38 59 {NONE //何もなし
takeru0x1103 21:78302ecdb661 60 ,SLEEP //スリープモード(最初ここ)
takeru0x1103 20:0394e15412c3 61 ,WAKEUP //起動処理
takeru0x1103 20:0394e15412c3 62 ,STANDBY //スタンバイ(エンジンかかるの待ち)
takeru0x1103 21:78302ecdb661 63 ,IDLE //アイドル(エンジンがかかったけどなにもしない)
takeru0x1103 20:0394e15412c3 64 ,TAKE_OFF //離陸
takeru0x1103 20:0394e15412c3 65 ,HOVER //ホバリング
takeru0x1103 21:78302ecdb661 66 ,DRIVE //運転
takeru0x1103 21:78302ecdb661 67 ,GROUND //着陸(エンジン同時下げ)
takeru0x1103 21:78302ecdb661 68 ,EMGGND //緊急着陸(後ろエンジンを先に下げる)
takeru0x1103 20:0394e15412c3 69 ,CHK_ENT //チェックエンター
takeru0x1103 20:0394e15412c3 70 ,CHK_MOT //モーターチェック
takeru0x1103 20:0394e15412c3 71 ,CHK_AXL //アクセルサーボチェック
takeru0x1103 20:0394e15412c3 72 ,CHK_ATT //姿勢制御チェック
takeru0x1103 20:0394e15412c3 73 ,CHK_EXIT //チェックステート脱出
takeru0x1103 19:4b0fe9a5ec38 74 };
takeru0x1103 19:4b0fe9a5ec38 75
takeru0x1103 17:f9610f3cfa1b 76 /////////////////////////////////////////////////
takeru0x1103 21:78302ecdb661 77
takeru0x1103 21:78302ecdb661 78 /*
takeru0x1103 19:4b0fe9a5ec38 79 class GlobalFlags{
takeru0x1103 19:4b0fe9a5ec38 80 private:
takeru0x1103 19:4b0fe9a5ec38 81 enmHbState stateQueue[STATE_QUE_SIZ];//ステート予約用のキューバッファ
takeru0x1103 19:4b0fe9a5ec38 82 int wp; //ライトポインタ
takeru0x1103 19:4b0fe9a5ec38 83 int rp; //リードポインタ
takeru0x1103 19:4b0fe9a5ec38 84 bool full; //フルフラグ
takeru0x1103 19:4b0fe9a5ec38 85 bool empty; //エンプティフラグ
takeru0x1103 19:4b0fe9a5ec38 86 public:
takeru0x1103 21:78302ecdb661 87 //プロパティ
takeru0x1103 20:0394e15412c3 88 enmHbState state;//現在のステート
takeru0x1103 21:78302ecdb661 89 //メソッド
takeru0x1103 20:0394e15412c3 90 GlobalFlags();//コンストラクタ
takeru0x1103 19:4b0fe9a5ec38 91 bool push(enmHbState iState);
takeru0x1103 19:4b0fe9a5ec38 92 bool pull();
takeru0x1103 19:4b0fe9a5ec38 93 };
takeru0x1103 16:05b9e44889f1 94
takeru0x1103 21:78302ecdb661 95 */
takeru0x1103 21:78302ecdb661 96
takeru0x1103 21:78302ecdb661 97
takeru0x1103 17:f9610f3cfa1b 98 //モニタ用LED
takeru0x1103 16:05b9e44889f1 99 extern DigitalOut led1;
takeru0x1103 16:05b9e44889f1 100 extern DigitalOut led2;
takeru0x1103 16:05b9e44889f1 101 extern DigitalOut led3;
takeru0x1103 16:05b9e44889f1 102 extern DigitalOut led4;
takeru0x1103 8:1ca49cb18290 103
takeru0x1103 21:78302ecdb661 104 //extern GlobalFlags gf;
takeru0x1103 19:4b0fe9a5ec38 105
takeru0x1103 19:4b0fe9a5ec38 106 extern char g_CmdBuf[G_CMD_BUF_SIZ] ;// コマンド受け渡しバッファ
takeru0x1103 19:4b0fe9a5ec38 107 extern bool gf_CmdPrs; //コマンドパーサー実行要求フラグ
takeru0x1103 19:4b0fe9a5ec38 108
takeru0x1103 21:78302ecdb661 109 extern bool gf_Armed; //アーミングフラグ
takeru0x1103 19:4b0fe9a5ec38 110 extern typPrintFlag gf_Print; //デバッグプリントフラグ(1回表示)
takeru0x1103 19:4b0fe9a5ec38 111 extern typPrintFlag gf_Mon; //デバッグモニタフラグ(繰り返し表示)
takeru0x1103 18:5aa48aec9cae 112 extern typCalFlag gf_Cal; //
takeru0x1103 17:f9610f3cfa1b 113 extern typAccel gf_AxReq[2]; //アクセル更新
takeru0x1103 17:f9610f3cfa1b 114 extern typAccel gf_MtReq[4]; //モーター更新
takeru0x1103 19:4b0fe9a5ec38 115
takeru0x1103 19:4b0fe9a5ec38 116
takeru0x1103 18:5aa48aec9cae 117 #endif