Ver código fonte

Merge branch 'master' of https://79.135.245.84:43000/ebalbekova/bt-67xx_universal_hw

KoKiii 5 anos atrás
pai
commit
bf25fe09f8

+ 31 - 17
modules/MegaTec/megatec.c

@@ -407,7 +407,7 @@ void ups_info_response(char *data)
 
     data++;
 
-    data += 16;
+    data += 16; //пропускаем поле название компании
 
     while (data[0] == ' ') {
         data ++;
@@ -417,10 +417,10 @@ void ups_info_response(char *data)
         /*endValue = strpbrk(data," ");
         len = endValue - data;*/
         if (UPS.model[0] == 0) {
-            strncpy(UPS.model, data, 10);
+            strncpy(UPS.model, data, KSTAR_MODEL_LENGTH);
             SNMP_SetObjDescr();
         } else {
-            strncpy(UPS.model, data, 10);
+            strncpy(UPS.model, data, KSTAR_MODEL_LENGTH);
         }
 
         data += 11;
@@ -512,9 +512,8 @@ void ups_akb_info_response(char *data)
 
 void ups_model_response(char *data)
 {
-    char value[20];
-    uint8_t len = 0;
     uint8_t j = 0;
+    char value[20];
     DBG printf("ups_akb_info_response: %s\r\n", data);
     if (data[0] != '(') {
         return;
@@ -528,22 +527,32 @@ void ups_model_response(char *data)
 
     DBG printf("UPS ups_akb_info_parser_start: %s\r\n", data);
 
-    len = get_ups_param(data, " ", value);
+    memset(value, 0, 20);
     if (UPS.model[0] == 0) {
-        for (uint8_t i = 0; i < len; i ++) {
-            if (value[i] != '#') {
-                UPS.model[j] = value[i];
+        for (uint8_t i = 0; i < VOLTRONIC_MODEL_LENGTH; i ++) {
+            if (data[i] != '#') {
+                value[j] = data[i];
                 j ++;
             }
         }
+        if(strncmp(value, "WPHV", 4) == 0 || value[0] != 0) {
+            strcpy(UPS.model, "RTMP II");
+        } else {
+            strcpy(UPS.model, value);
+        }
         SNMP_SetObjDescr();
     } else {
         j = 0;
-        for (uint8_t i = 0; i < len; i ++) {
-            if (value[i] != '#') {
-                UPS.model[j] = value[i];
+        for (uint8_t i = 0; i < VOLTRONIC_MODEL_LENGTH; i ++) {
+            if (data[i] != '#') {
+                value[j] = data[i];
                 j ++;
             }
+            if(strncmp(value, "WPHV", 4) == 0 || value[0] != 0) {
+                strcpy(UPS.model, "RTMP II");
+            } else {
+                strcpy(UPS.model, value);
+            }
         }
     }
 }
@@ -573,7 +582,10 @@ void ups_version_response(char *data)
     DBG printf("UPS ups_akb_info_parser_start: %s\r\n", data);
 
     len = get_ups_param(data, "\r", value);
-    strncpy(UPS.vertion, value, 8);
+    if (len > VOLTRONIC_VERSION_LENGTH) {
+        len = VOLTRONIC_VERSION_LENGTH;
+    }
+    strncpy(UPS.vertion, value, len);
 }
 
 void ups_version_part2_response(char *data)
@@ -595,7 +607,7 @@ void ups_version_part2_response(char *data)
 
     data++;
 
-    if (UPS.vertion[8] != 0) {
+    if (UPS.vertion[VOLTRONIC_VERSION_LENGTH] != 0) {
         return;
     }
 
@@ -605,8 +617,11 @@ void ups_version_part2_response(char *data)
     data += (len + 1);
 
     len = get_ups_param(data, "\r", value);
+    if (len > VOLTRONIC_VERSION_LENGTH) {
+        len = VOLTRONIC_VERSION_LENGTH;
+    }
     strncat(UPS.vertion, "/", 1);
-    strncpy(&UPS.vertion[9], value, 8);
+    strncat(UPS.vertion, value, len);
 }
 
 void ups_serial_response(char *data)
@@ -627,8 +642,7 @@ void ups_serial_response(char *data)
     DBG printf("UPS ups_serial_parser_start: %s\r\n", data);
 
     len = get_ups_param(data, "\r", value);
-    strncpy(UPS.serial, &value[0], 14);
-    UPS.serial[14] = 0;
+    strncpy(UPS.serial, value, VOLTRONIC_SN_LENGTH);
 }
 
 void ups_protocol_id_response(char *data)

+ 6 - 1
modules/MegaTec/megatec.h

@@ -16,6 +16,11 @@
 #define AKB_VOLTAGE			12
 #define AKB_NUM_CELL		6
 
+#define VOLTRONIC_MODEL_LENGTH		15
+#define KSTAR_MODEL_LENGTH			10
+#define VOLTRONIC_VERSION_LENGTH	10
+#define VOLTRONIC_SN_LENGTH			14
+
 typedef enum{
 	ups_status_req,
 	ups_test_10sec,
@@ -55,7 +60,7 @@ typedef struct{
 	uint32_t Alarm;
 	uint8_t Status;
 	char model[16];
-	char vertion[18];
+	char vertion[22];
 	char serial[15];
 	uint8_t cnt_err_ups;
 	bool Present;

+ 3 - 5
modules/log/log.c

@@ -259,11 +259,9 @@ void log_add(char *log_data)
 
 	memset(buf_value, 0, 50);
 	len = strlen(log_data);
-	if (len > UPS_DATA_STRING_SIZE) {
-		len = UPS_DATA_STRING_SIZE;
-		if (len > 50) {
-			len = 50;
-		}
+	if (len != UPS_DATA_STRING_SIZE) {
+		//len = UPS_DATA_STRING_SIZE;
+		return;
 	}
 
 	strncpy(buf_value, log_data, len);

BIN
web_interface/dist/wui-9/settings.html