Przeglądaj źródła

Add start condition check, show current charger sttaus.

Vladimir N. Shilov 2 lat temu
rodzic
commit
cffa5e57c2
1 zmienionych plików z 20 dodań i 0 usunięć
  1. 20 0
      src/main.c

+ 20 - 0
src/main.c

@@ -401,6 +401,12 @@ int main(void) {
     if (events & CHRGR_ST_CHANGE) {
       switch (charger_State) {
       case Charge1:
+        if (Profile[charger_Profile].VoltageDechMin_mv > Voltage) {
+          gwinPrintf(GW1, "No Battery detected / Low voltage...\n");
+          charger_State = Stop;
+          gdispFillStringBox(1, 213, 318, 29, "Stop", font2, Red, Silver, gJustifyCenter);
+          break;
+        }
         oldState = Charge1;
         Capacity_I = 0;
         Capacity_P = 0;
@@ -410,6 +416,7 @@ int main(void) {
         gwinPrintf(GW1, "Begin process: Charge_1\n");
         // power relay on
         palClearLine(LINE_RELAY1);
+        gdispFillStringBox(1, 213, 318, 29, "Charge 1", font2, Red, Silver, gJustifyCenter);
         break;
 
       case Pause1:
@@ -423,6 +430,7 @@ int main(void) {
         Timer.mm = tmp0 % 60;
 
         gwinPrintf(GW1, "Pause after Charge_1\n");
+        gdispFillStringBox(1, 213, 318, 29, "Pause 1", font2, Red, Silver, gJustifyCenter);
         chVTSet(&mode_vt, CHRGR_PAUSE1_S, mode_vt_cb, (void *)Decharge);
         break;
 
@@ -436,6 +444,7 @@ int main(void) {
         gwinPrintf(GW1, "Begin process: Decharge\n");
         // load relay on
         palClearLine(LINE_RELAY2);
+        gdispFillStringBox(1, 213, 318, 29, "Decharge", font2, Red, Silver, gJustifyCenter);
         break;
 
       case Pause2:
@@ -459,6 +468,7 @@ int main(void) {
         Timer.mm = tmp0 % 60;
 
         gwinPrintf(GW1, "Pause after Decharge\n");
+        gdispFillStringBox(1, 213, 318, 29, "Pause 2", font2, Red, Silver, gJustifyCenter);
         chVTSet(&mode_vt, CHRGR_PAUSE2_S, mode_vt_cb, (void *)Charge2);
         break;
 
@@ -472,8 +482,17 @@ int main(void) {
         gwinPrintf(GW1, "Begin process: Charge_2\n");
         // power relay on
         palClearLine(LINE_RELAY1);
+        gdispFillStringBox(1, 213, 318, 29, "Charge 2", font2, Red, Silver, gJustifyCenter);
         break;
       
+      case Error:
+        oldState = Error;
+        // power and load relay off
+        palSetLine(LINE_RELAY1);
+        palSetLine(LINE_RELAY2);
+        gdispFillStringBox(1, 213, 318, 29, "Error", font2, Silver, Red, gJustifyCenter);
+        break;
+
       default:
         if (oldState == Charge2) {
           ch_Capacity_I = Capacity_I;
@@ -484,6 +503,7 @@ int main(void) {
         // power and load relay off
         palSetLine(LINE_RELAY1);
         palSetLine(LINE_RELAY2);
+        gdispFillStringBox(1, 213, 318, 29, "Stop", font2, Red, Silver, gJustifyCenter);
         break;
       }
     }