teamALI / Mbed 2 deprecated HB2018

Dependencies:   mbed FreeRTOS

Revision:
53:b09c062cc31c
Parent:
42:cc8501b824ba
Child:
54:283bb711e0fa
--- a/HbUserOpe.cpp	Tue Feb 26 09:50:10 2019 +0000
+++ b/HbUserOpe.cpp	Mon Mar 04 04:03:23 2019 +0000
@@ -6,6 +6,9 @@
 HbUserOpe::HbUserOpe(){
     oldOpe.w = curOpe.w = 0;
     AinAxlVal = AinTrtlVal = 0;
+    for(int i = 0; i < MAX_SW_TYPE; ++i){
+        counter[i].w = 0;
+    }
 }
 
 //=========================================
@@ -135,15 +138,69 @@
 
 bool HbUserOpe::ChkCtrlSwRiseEdge(SW_TYPE styp)
 {
-            if(styp == BRK_L)       {return curOpe.bf.brk_l     && !oldOpe.bf.brk_l;}
-    else    if(styp == BRK_R)       {return curOpe.bf.brk_r     && !oldOpe.bf.brk_r;}
-    else    if(styp == FLT_ON)      {return curOpe.bf.flt_on    && !oldOpe.bf.flt_on;}
-    else    if(styp == FLT_OFF)     {return curOpe.bf.flt_off    && !oldOpe.bf.flt_off;}
-    else    if(styp == F_ENG_UP)    {return curOpe.bf.f_eng_up  && !oldOpe.bf.f_eng_up;}
-    else    if(styp == F_ENG_DOWN)  {return curOpe.bf.f_eng_down  && !oldOpe.bf.f_eng_down;}
-    else    if(styp == R_ENG_UP)    {return curOpe.bf.r_eng_up  && !oldOpe.bf.r_eng_up;}
-    else    if(styp == R_ENG_DOWN)  {return curOpe.bf.r_eng_down  && !oldOpe.bf.r_eng_down;}
-    else    if(styp == R_1)         {return curOpe.bf.rsv_1     && !oldOpe.bf.rsv_1;}
-    else    if(styp == ALL_STOP)    {return curOpe.bf.all_stop  && !oldOpe.bf.all_stop;}
-    else{return false;}
+    if(counter[styp].bf.flg){
+        ++counter[styp].bf.cnt;
+        if(counter[styp].bf.cnt > CNT_NUM_RE){
+            counter[styp].bf.cnt = 0;
+            counter[styp].bf.flg = false;
+        }
+        return false;
+    } else{
+        if(styp == BRK_L) return counter[BRK_L].bf.flg = curOpe.bf.brk_l && !oldOpe.bf.brk_l;
+        if(styp == BRK_R) return counter[BRK_R].bf.flg = curOpe.bf.brk_r && !oldOpe.bf.brk_r;
+        if(styp == FLT_ON) return counter[FLT_ON].bf.flg = curOpe.bf.flt_on && !oldOpe.bf.flt_on;
+        if(styp == FLT_OFF) return counter[FLT_OFF].bf.flg = curOpe.bf.flt_off && !oldOpe.bf.flt_off;
+        if(styp == F_ENG_UP) return counter[F_ENG_UP].bf.flg = curOpe.bf.f_eng_up && !oldOpe.bf.f_eng_up;
+        if(styp == F_ENG_DOWN) return counter[F_ENG_DOWN].bf.flg = curOpe.bf.f_eng_down && !oldOpe.bf.f_eng_down;
+        if(styp == R_ENG_UP) return counter[R_ENG_UP].bf.flg = curOpe.bf.r_eng_up && !oldOpe.bf.r_eng_up;
+        if(styp == R_ENG_DOWN) return counter[R_ENG_DOWN].bf.flg = curOpe.bf.r_eng_down && !oldOpe.bf.r_eng_down;
+        if(styp == R_1) return counter[R_1].bf.flg = curOpe.bf.rsv_1 && !oldOpe.bf.rsv_1;
+        if(styp == ALL_STOP) return counter[ALL_STOP].bf.flg = curOpe.bf.all_stop && !oldOpe.bf.all_stop;
+        return false;
+    }
+
+    // if(styp == BRK_L)
+    // {
+    //     return curOpe.bf.brk_l     && !oldOpe.bf.brk_l;
+    // }
+    // else if(styp == BRK_R)
+    // {
+    //     return curOpe.bf.brk_r     && !oldOpe.bf.brk_r;
+    // }
+    // else if(styp == FLT_ON)
+    // {
+    //     return curOpe.bf.flt_on    && !oldOpe.bf.flt_on;
+    // }
+    // else if(styp == FLT_OFF)
+    // {
+    //     return curOpe.bf.flt_off    && !oldOpe.bf.flt_off;
+    // }
+    // else if(styp == F_ENG_UP)
+    // {
+    //     return curOpe.bf.f_eng_up  && !oldOpe.bf.f_eng_up;
+    // }
+    // else if(styp == F_ENG_DOWN)
+    // {
+    //     return curOpe.bf.f_eng_down  && !oldOpe.bf.f_eng_down;
+    // }
+    // else if(styp == R_ENG_UP)
+    // {
+    //     return curOpe.bf.r_eng_up  && !oldOpe.bf.r_eng_up;
+    // }
+    // else if(styp == R_ENG_DOWN)
+    // {
+    //     return curOpe.bf.r_eng_down  && !oldOpe.bf.r_eng_down;
+    // }
+    // else if(styp == R_1)
+    // {
+    //     return curOpe.bf.rsv_1     && !oldOpe.bf.rsv_1;
+    // }
+    // else if(styp == ALL_STOP)
+    // {
+    //     return curOpe.bf.all_stop  && !oldOpe.bf.all_stop;
+    // }
+    // else
+    // {
+    //     return false;
+    // }
 }