瀏覽代碼

[BT-6709/11/11-v1]improve algoritm of check_load

balbekova 2 年之前
父節點
當前提交
9256ec3531
共有 2 個文件被更改,包括 13 次插入29 次删除
  1. 12 28
      modules/MegaTec/megatec.c
  2. 1 1
      modules/MegaTec/megatec.h

+ 12 - 28
modules/MegaTec/megatec.c

@@ -354,6 +354,13 @@ void ups_status_response(char *data)
         UPS.Status = stat;
     }
 
+     if((UPS.Status >> 2) & 0x01) {
+        UPS.Load_test_akb = UPS.Load;
+        TM_RTC_t data;
+        TM_RTC_GetDateTime(&data, TM_RTC_Format_BIN);
+        UPS.data_check_load = data.unix;
+    }
+
 }
 
 void ups_general_status_response(char *data)
@@ -863,13 +870,6 @@ void ups_mode_response(char *data)
         syslog(SYSLOG_INFORMATIONAL, "Режим ИБП: %s", value);
         log_event_data(LOG_UPS_MODE, value);
 #endif
-        if(UPS.Mode == 'B' || UPS.Mode == 'T') {
-            UPS.Load_test_akb = UPS.Load;
-            TM_RTC_t data;
-            TM_RTC_GetDateTime(&data, TM_RTC_Format_BIN);
-            UPS.data_check_load = data.unix;
-            xTimerReset(AutoTestTimer, 0);
-        }
     }
    
 }
@@ -1092,13 +1092,6 @@ void kstar_mode(void)
         syslog(SYSLOG_INFORMATIONAL, "Режим ИБП: %s", value);
         log_event_data(LOG_UPS_MODE, value);
 #endif
-        if(UPS.Mode == 'B' || UPS.Mode == 'T') {
-            UPS.Load_test_akb = UPS.Load;
-            TM_RTC_t data;
-            TM_RTC_GetDateTime(&data, TM_RTC_Format_BIN);
-            UPS.data_check_load = data.unix;
-            xTimerReset(AutoTestTimer, 0);
-        }
     }
 }
 
@@ -1184,8 +1177,6 @@ void request_task(void *params)
         }
         if(!flag_init_ups) {
             flag_init_ups = true;
-            xTimerStart(AutoTestTimer, 0);
-            AutoTestCallback();
             if(sSettings.UPS_Setting.type_ups == ups_voltronic) {
                 if (megatec_send) {
                     memset(ups_pdu.data, 0, UPS_PDU_MAX_LEN);
@@ -1220,6 +1211,8 @@ void request_task(void *params)
                     }
                 }
             }
+            xTimerStart(AutoTestTimer, 0);
+            AutoTestCallback();
         }
         
         vTaskDelay(1000);
@@ -1315,19 +1308,10 @@ void UPSReadTestStatus(void)
 
 void AutoTestCallback(void)
 {
-    uint8_t res;
-
-    TimeParam = 1;
-    if((UPS.Status >> 2) & 0x01) {
-        UPS.Load_test_akb = UPS.Load;
-        TM_RTC_t data;
-        TM_RTC_GetDateTime(&data, TM_RTC_Format_BIN);
-        UPS.data_check_load = data.unix;
-    } else {
-        res = ups_metac_service_pdu(ups_test_time);
+    if(!((UPS.Status >> 2) & 0x01)) {
+        int res = ups_metac_service_pdu(ups_test_10sec);
         set_act_source(AUTO_ACT);
-    }
-    
+    } 
 }
 
 void ups_megatec_init(void)

+ 1 - 1
modules/MegaTec/megatec.h

@@ -13,7 +13,7 @@
 #include <stdlib.h>
 
 
-#define PERIOD_AUTO_TEST	12*3600
+#define PERIOD_AUTO_TEST	23.5*3600
 
 #define K_EFFICIENCY		0.9
 #define AKB_VOLTAGE			12