teamALI / Mbed 2 deprecated HB2018

Dependencies:   mbed FreeRTOS

Revision:
41:45c982b1c5b6
Parent:
40:debe99e228d3
Child:
42:cc8501b824ba
--- a/globalFlags.cpp	Mon Jan 21 06:32:24 2019 +0000
+++ b/globalFlags.cpp	Mon Jan 21 11:57:35 2019 +0000
@@ -8,9 +8,9 @@
 DigitalOut led4(LED4);
 
 //状態表示用
-DigitalOut DO_01(p22);
-DigitalOut DO_02(p23);
-DigitalOut DO_03(p24);
+DigitalOut DO_01(p21);//R
+DigitalOut DO_02(p22);//G
+DigitalOut DO_03(p23);//B
 
 //モーターアクセル用アナログ入力
 AnalogIn AinAxl(p20);
@@ -27,12 +27,10 @@
 bool            gf_StopMot          ;//モーターの強制停止 サーボ全閉
 bool            gf_FromActiveStat   ;//モーターの強制停止 サーボ全閉が動作時に発生したかどうか
 
-typPrintFlag    gf_Print            ;//
-typPrintFlag    gf_Mon              ;//
-typPrintFlg     gf_Prt1             ;
-typPrintFlg     gf_Mon1             ;
+typPrintFlg    gf_Print            ;//
+typPrintFlg    gf_Mon              ;//
 typCalFlag      gf_Cal              ;//
-typDbgPrintFlg  gf_DbgPrint         ;//デバッグ用
+//typDbgPrintFlg  gf_DbgPrint         ;//デバッグ用
 typAccel        gf_AxReq[2]           ;//アクセル更新フラグ
 typAxlRpm        gf_MtReq[4]              ;//モーター姿勢制御更新フラグ
 typAxlRpm        gf_MtReqOfs[4]           ;//モーターオフセット更新フラグ
@@ -55,14 +53,14 @@
     gf_Dbg = false;
     gf_StopMot = false;
 
-    gf_Print.flg = 0;
-    gf_Mon.flg = 0;
-    gf_Prt1.d1.flg = 0;
-    gf_Prt1.d2.flg = 0;
+//    gf_Print.flg = 0;
+//    gf_Mon.flg = 0;
+    gf_Print.d1.flg = 0;
+    gf_Print.d2.flg = 0;
 
     gf_Cal.flg = 0;
 
-    gf_DbgPrint.flg = 0;
+    //gf_DbgPrint.flg = 0;
 
     gf_AxReq[0].dt = 0;
     gf_AxReq[1].dt = 0;
@@ -93,6 +91,89 @@
     // }
 }
 
+void setDOCol(eLedCol col)
+{
+    switch(col){
+        case WHITE:
+            DO_01 = !DO_01;
+            DO_02 = !DO_02;
+            DO_03 = !DO_03;
+        break;
+        case RED:
+            DO_01 = !DO_01;
+            DO_02 = 0;
+            DO_03 = 0;
+        break;
+        case GREEN:
+            DO_01 = 0;
+            DO_02 = !DO_02;
+            DO_03 = 0;
+        break;
+        case BLUE:
+            DO_01 = 0;
+            DO_02 = 0;
+            DO_03 = !DO_03;
+        break;
+        case YELLOW:
+            DO_01 = !DO_01;
+            DO_02 = !DO_02;
+            DO_03 = 0;
+        break;
+        case PURPLE:
+            DO_01 = !DO_01;
+            DO_02 = 0;
+            DO_03 = !DO_03;
+        break;
+        case LIGHT_BLUE:
+            DO_01 = 0;
+            DO_02 = !DO_02;
+            DO_03 = !DO_03;
+        break;
+        case OFF:
+        default:
+            DO_01 = 0;//R
+            DO_02 = 0;//G
+            DO_03 = 0;//B
+        break;
+    }
+}
+
+void setDO4LED(enmHbState stat)
+{
+    if(stat == NONE)
+    {// 消灯
+        setDOCol(OFF);
+    }
+    else if(stat == SLEEP)
+    {//YELLOW
+        setDOCol(YELLOW);
+    }
+    else if(stat == WAKEUP || stat == STANDBY)
+    {//BLUE
+        setDOCol(BLUE);
+    }
+    else if(stat == IDLE)
+    {//GREEN
+        setDOCol(GREEN);
+    }
+    else if(stat == TAKE_OFF || stat == HOVER || stat == DRIVE || stat == GROUND || stat == EMGGND)
+    {//PURPLE
+        setDOCol(PURPLE);
+    }
+    else if(stat == CHK_EG_ENT || stat == CHK_EG_F || stat == CHK_EG_MID || stat == CHK_EG_R || stat == CHK_EG_EXIT)
+    {//LIGHT BLUE
+        setDOCol(LIGHT_BLUE);
+    }
+    else if(stat == CHK_ENT || stat == CHK_MOT || stat == CHK_AXL || stat == CHK_ATT || stat == CHK_EXIT)
+    {//WHITE
+        setDOCol(WHITE);
+    }
+    else/* if(stat == MOT_STOP)*/
+    {
+        setDOCol(RED);
+    }
+}
+
 void setState(enmHbState stat){
     // ありえない遷移を排除
     if(gf_State == SLEEP){if(stat != WAKEUP) return;}