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.
globalFlags.h@21:78302ecdb661, 2018-12-06 (annotated)
- 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?
User | Revision | Line number | New 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 |