teamALI / Mbed 2 deprecated HB2018

Dependencies:   mbed FreeRTOS

Revision:
19:4b0fe9a5ec38
Parent:
18:5aa48aec9cae
Child:
20:0394e15412c3
--- a/globalFlags.h	Sat Dec 01 14:03:08 2018 +0000
+++ b/globalFlags.h	Wed Dec 05 00:12:38 2018 +0000
@@ -4,6 +4,9 @@
 #include "mbed.h"
 #include "typedef.h"
 
+#define G_CMD_BUF_SIZ 32
+#define STATE_QUE_SIZ 8
+
 typedef union{
     UINT16  flg;
     struct{    
@@ -42,7 +45,6 @@
     }bf;
 }typCalFlag;
 
-
 //チェックフラグ
 typedef union{
     UINT16  flg;
@@ -53,7 +55,7 @@
     }bf;
 }typChkFlag;
 
-
+//
 typedef union{
     UINT16  dt;
     struct{    
@@ -62,8 +64,30 @@
     }bf;
 }typAccel;
 
+//ステート定義
+enum enmHbState
+    {NONE       //何もなし
+    ,WAKEUP     //
+    ,CHECK_MOT  //
+    ,IDLE       //
+    ,TAKE_OFF   //
+    ,GROUND     //
+    };
+
 /////////////////////////////////////////////////
-
+class GlobalFlags{
+private:
+    enmHbState    state;//現在のステート
+    enmHbState    stateQueue[STATE_QUE_SIZ];//ステート予約用のキューバッファ
+    int           wp;       //ライトポインタ
+    int           rp;       //リードポインタ
+    bool          full;     //フルフラグ
+    bool          empty;    //エンプティフラグ
+public:
+    GlobalFlags();
+    bool        push(enmHbState iState);
+    bool        pull();
+};
 
 //モニタ用LED
 extern DigitalOut led1;
@@ -71,14 +95,20 @@
 extern DigitalOut led3;
 extern DigitalOut led4;
 
-extern typPrintFlag gf_Print;
-extern typPrintFlag gf_Mon;
+extern GlobalFlags     gf;
+
+extern char         g_CmdBuf[G_CMD_BUF_SIZ] ;// コマンド受け渡しバッファ
+extern bool         gf_CmdPrs;    //コマンドパーサー実行要求フラグ
+
+extern typPrintFlag gf_Print;     //デバッグプリントフラグ(1回表示)
+extern typPrintFlag gf_Mon;       //デバッグモニタフラグ(繰り返し表示)
 extern typCalFlag   gf_Cal;       //
 extern typChkFlag   gf_Chk;       //チェックフラグ
-extern bool         gf_CmdPrs;    //コマンドパーサー実行要求フラグ
 extern typAccel     gf_AxReq[2];  //アクセル更新
 extern typAccel     gf_MtReq[4];  //モーター更新
 extern bool         gf_AttCntEna; //姿勢制御イネーブル
 
 
+
+
 #endif
\ No newline at end of file