| 
														
															@@ -73,39 +73,39 @@ static struct { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
 
														 | 
														
														 | 
														
															 
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
 
														 | 
														
														 | 
														
															 
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 const char *MegaTecCMD[] = {
 
														 | 
														
														 | 
														
															 const char *MegaTecCMD[] = {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    "Q1\r",
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    "T\r",
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    "TL\r",
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    "T",
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    "Q\r",
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    "S",
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    "R",
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    "C\r",
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    "CT\r",
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    "I\r",
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    "F\r",
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    "Q2\r",
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    "QGS\r",
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    "QBV\r",
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    "QMD\r",
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    "QVFW\r",
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    "QVFW2\r",
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    "QID\r",
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    "QPI\r",
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    "QS\r",
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    "M\r",
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    "PDA\r",
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    "QMOD\r",
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    "SON\r",
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    "QWS\r",
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    "QBYV\r",
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    "PHV264\r",//264
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    "QFLAG\r",
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    "PEL\r",
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    "BT\r",
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    "QTPR\r",
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	"QFS\r",
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    "SOFF\r",
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    "Q1\r",     // ups_status_req           [1] - OK
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    "T\r",      // ups_test_10sec
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    "TL\r",     // ups_test_low_bat
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    "T",        // ups_test_time
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    "Q\r",      // ups_beep
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    "S",        // ups_shutdown
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    "R",        // ups_shutdown_restore
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    "C\r",      // ups_cancel_shut_down
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    "CT\r",     // ups_cancel_test
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    "I\r",      // ups_info                 [3] - OK
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    "F\r",      // ups_rating_info
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    "Q2\r",     // ups_remain_time_reg      [2] - ERR
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    "QGS\r",    // ups_general_status_req
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    "QBV\r",    // ups_akb_info
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    "QMD\r",    // ups_model_req
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    "QVFW\r",   // ups_version_req
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    "QVFW2\r",  // ups_version2_req
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    "QID\r",    // ups_serial_req
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    "QPI\r",    // ups_protocol_id_req
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    "QS\r",     // ups_offline_status_req
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    "M\r",      // ups_passw_req
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    "PDA\r",    // ups_buzzer_cntrl
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    "QMOD\r",   // ups_mode_req
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    "SON\r",    // ups_remote_turn_on
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    "QWS\r",    // ups_warning_status
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    "QBYV\r",   // ups_bypass_volt_range
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    "PHV264\r", // ups_bypass_hvolt_264_set
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    "QFLAG\r",  // ups_qflag_status
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    "PEL\r",    // ups_cmd_enable_flag_l
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    "BT\r",     // ups_kstar_status         [4] - ERR
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    "QTPR\r",   // ups_temperature
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	"QFS\r",    // ups_fault_status
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    "SOFF\r",   // ups_remote_turn_off
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 };
 
														 | 
														
														 | 
														
															 };
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
 
														 | 
														
														 | 
														
															 
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 extern bool flUpdateLog;
 
														 | 
														
														 | 
														
															 extern bool flUpdateLog;
 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -239,8 +239,8 @@ bool ups_megatec_rx_pdu(void) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         return false;
 
														 | 
														
														 | 
														
															         return false;
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     }
 
														 | 
														
														 | 
														
															     }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
 
														 | 
														
														 | 
														
															 
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    DBG printf("UPS raw data: %s\r\n", ups_pdu.data);
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    DBG printf("UPS raw data len: %d\r\n", ups_pdu.len);
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    printf("UPS raw data: %s\r\n", ups_pdu.data);
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    printf("UPS raw data len: %d\r\n", ups_pdu.len);
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
 
														 | 
														
														 | 
														
															 
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     return true;
 
														 | 
														
														 | 
														
															     return true;
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 }
 
														 | 
														
														 | 
														
															 }
 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -273,7 +273,7 @@ void ups_status_response(char *data) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     char value[20];
 
														 | 
														
														 | 
														
															     char value[20];
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     float tmp;
 
														 | 
														
														 | 
														
															     float tmp;
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     uint8_t len = 0;
 
														 | 
														
														 | 
														
															     uint8_t len = 0;
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    DBG printf("ups_status_response: %s\r\n", data);
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    printf("ups_status_response: %s\r\n", data);
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     if (data[0] != '(') {
 
														 | 
														
														 | 
														
															     if (data[0] != '(') {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         return;
 
														 | 
														
														 | 
														
															         return;
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     }
 
														 | 
														
														 | 
														
															     }
 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -364,23 +364,24 @@ void ups_status_response(char *data) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         for (i = 0; i < len; i ++) {
 
														 | 
														
														 | 
														
															         for (i = 0; i < len; i ++) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             stat |= (value[i] - 0x30) << (7 - i);
 
														 | 
														
														 | 
														
															             stat |= (value[i] - 0x30) << (7 - i);
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         }
 
														 | 
														
														 | 
														
															         }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        UPS.Status = stat;
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        UPS.Status = stat;  // теперь параметр как обычное число
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     }
 
														 | 
														
														 | 
														
															     }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
 
														 | 
														
														 | 
														
															 
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     //   if (sSettings.UPS_Setting.type_ups == ups_kestar || sSettings.UPS_Setting.type_ups == ups_offline) {
 
														 | 
														
														 | 
														
															     //   if (sSettings.UPS_Setting.type_ups == ups_kestar || sSettings.UPS_Setting.type_ups == ups_offline) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        if(UPS.Status & 0x04){
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            UPS.SOC_prev = UPS.SOC;
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        }
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        if (UPS.Vcell_curr < 7) {
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            UPS.SOC = round(100 * (UPS.Vcell_curr - sSettings.UPS_Setting.Ucellmin) / (sSettings.UPS_Setting.Ucellmax -
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        sSettings.UPS_Setting.Ucellmin));
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        } else {
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            UPS.SOC = round(100 * (UPS.Vcell_curr / AKB_NUM_CELL - sSettings.UPS_Setting.Ucellmin) /
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    (sSettings.UPS_Setting.Ucellmax - sSettings.UPS_Setting.Ucellmin));
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        }
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    // Bat Capacity
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    if(UPS.Status & 0x04) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        UPS.SOC_prev = UPS.SOC;
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    if (UPS.Vcell_curr < 7) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        UPS.SOC = round(100 * (UPS.Vcell_curr - sSettings.UPS_Setting.Ucellmin) / (sSettings.UPS_Setting.Ucellmax -
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                  sSettings.UPS_Setting.Ucellmin));
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    } else {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        UPS.SOC = round(100 * (UPS.Vcell_curr / AKB_NUM_CELL - sSettings.UPS_Setting.Ucellmin) /
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                  (sSettings.UPS_Setting.Ucellmax - sSettings.UPS_Setting.Ucellmin));
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  //   }
 
														 | 
														
														 | 
														
															  //   }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
 
														 | 
														
														 | 
														
															 
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    if((UPS.Status >> 2) & 0x01 || ((UPS.Status >> 7) & 0x01)) {
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    if ((UPS.Status >> 2) & 0x01 || ((UPS.Status >> 7) & 0x01)) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         UPS.Load_test_akb = UPS.Load;
 
														 | 
														
														 | 
														
															         UPS.Load_test_akb = UPS.Load;
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         TM_RTC_t data;
 
														 | 
														
														 | 
														
															         TM_RTC_t data;
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         TM_RTC_GetDateTime(&data, TM_RTC_Format_BIN);
 
														 | 
														
														 | 
														
															         TM_RTC_GetDateTime(&data, TM_RTC_Format_BIN);
 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -837,7 +838,7 @@ void ups_serial_response(char *data) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
 
														 | 
														
														 | 
														
															 
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 void ups_protocol_id_response(char *data)
 
														 | 
														
														 | 
														
															 void ups_protocol_id_response(char *data)
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 {
 
														 | 
														
														 | 
														
															 {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n");
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     DBG printf("ups_protocol_id_response: %s\r\n", data);
 
														 | 
														
														 | 
														
															     DBG printf("ups_protocol_id_response: %s\r\n", data);
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
 
														 | 
														
														 | 
														
															 
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     UPS.Present = UPS_CONNECTED;
 
														 | 
														
														 | 
														
															     UPS.Present = UPS_CONNECTED;
 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -846,15 +847,24 @@ void ups_protocol_id_response(char *data) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
 
														 | 
														
														 | 
														
															 
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     if (data[0] != '(') {
 
														 | 
														
														 | 
														
															     if (data[0] != '(') {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         if (strncmp(data, "NAK", 3) == 0 || strncmp(data, " \r", 2) == 0) {
 
														 | 
														
														 | 
														
															         if (strncmp(data, "NAK", 3) == 0 || strncmp(data, " \r", 2) == 0) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            printf("-------------------------------------------");
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            printf("UPS protocol kestar!!!!!!!");
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            printf("-------------------------------------------");
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             sSettings.UPS_Setting.type_ups = ups_kestar;
 
														 | 
														
														 | 
														
															             sSettings.UPS_Setting.type_ups = ups_kestar;
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         }
 
														 | 
														
														 | 
														
															         }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         else if(strncmp(data, "QPI", 3) == 0) {
 
														 | 
														
														 | 
														
															         else if(strncmp(data, "QPI", 3) == 0) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            printf("-------------------------------------------");
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            printf("UPS protocol ups_offline!!!!!!!");
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            printf("-------------------------------------------");
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             sSettings.UPS_Setting.type_ups = ups_offline;
 
														 | 
														
														 | 
														
															             sSettings.UPS_Setting.type_ups = ups_offline;
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         }
 
														 | 
														
														 | 
														
															         }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         return;
 
														 | 
														
														 | 
														
															         return;
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     }
 
														 | 
														
														 | 
														
															     }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
 
														 | 
														
														 | 
														
															 
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     data++;
 
														 | 
														
														 | 
														
															     data++;
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    printf("-------------------------------------------");
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    printf("UPS protocol coltronic!!!!!!!");
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    printf("-------------------------------------------");
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     sSettings.UPS_Setting.type_ups = ups_voltronic;
 
														 | 
														
														 | 
														
															     sSettings.UPS_Setting.type_ups = ups_voltronic;
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
 
														 | 
														
														 | 
														
															 
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     DBG printf("UPS ups_protocol_id_parser_start: %s\r\n", data);
 
														 | 
														
														 | 
														
															     DBG printf("UPS ups_protocol_id_parser_start: %s\r\n", data);
 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -895,16 +905,17 @@ void ups_mode_response(char *data) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
 
														 | 
														
														 | 
														
															 
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     DBG printf("UPS ups_mode_parser_start: %s\r\n", data);
 
														 | 
														
														 | 
														
															     DBG printf("UPS ups_mode_parser_start: %s\r\n", data);
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
 
														 | 
														
														 | 
														
															 
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+#if 1
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     // -----------------------------------------------------------------------
 
														 | 
														
														 | 
														
															     // -----------------------------------------------------------------------
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     // Тестовый 
 
														 | 
														
														 | 
														
															     // Тестовый 
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     // Если значение режима изменилось или режим "Fault"
 
														 | 
														
														 | 
														
															     // Если значение режима изменилось или режим "Fault"
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     if ((UPS.Mode != data[0]) || (data[0] == 'F')) {
 
														 | 
														
														 | 
														
															     if ((UPS.Mode != data[0]) || (data[0] == 'F')) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        UPS.Mode = data[0];
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 #ifdef UPS_MODE_MONITOR
 
														 | 
														
														 | 
														
															 #ifdef UPS_MODE_MONITOR
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         memset(value, 0, sizeof(value));
 
														 | 
														
														 | 
														
															         memset(value, 0, sizeof(value));
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         GetModeStr(value, &len);
 
														 | 
														
														 | 
														
															         GetModeStr(value, &len);
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         // В режиме "Fault" запрашиваем статус
 
														 | 
														
														 | 
														
															         // В режиме "Fault" запрашиваем статус
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         if (data[0] == 'F') {
 
														 | 
														
														 | 
														
															         if (data[0] == 'F') {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             memset(ups_pdu.data, 0, UPS_PDU_MAX_LEN);
 
														 | 
														
														 | 
														
															             memset(ups_pdu.data, 0, UPS_PDU_MAX_LEN);
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             send_MegaTec_cmd(ups_fault_status);
 
														 | 
														
														 | 
														
															             send_MegaTec_cmd(ups_fault_status);
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             if (ups_megatec_rx_pdu()) {
 
														 | 
														
														 | 
														
															             if (ups_megatec_rx_pdu()) {
 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -921,23 +932,23 @@ void ups_mode_response(char *data) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 strncat(value, &ups_pdu.data[53], 4);
 
														 | 
														
														 | 
														
															                 strncat(value, &ups_pdu.data[53], 4);
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 strncat(value, &ups_pdu.data[59], 8);
 
														 | 
														
														 | 
														
															                 strncat(value, &ups_pdu.data[59], 8);
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
 
														 | 
														
														 | 
														
															 
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                if ((strncmp(value, fault_status, sizeof(value)) != 0) || (UPS.Mode != data[0])) 
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                if ((strncmp(value, fault_status, sizeof(value)) != 0)) 
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 {
 
														 | 
														
														 | 
														
															                 {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     SNMP_SendUserTrap(UPS_MODE);
 
														 | 
														
														 | 
														
															                     SNMP_SendUserTrap(UPS_MODE);
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     syslog(SYSLOG_INFORMATIONAL, "Режим ИБП: %s", value);
 
														 | 
														
														 | 
														
															                     syslog(SYSLOG_INFORMATIONAL, "Режим ИБП: %s", value);
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     log_event_data(LOG_UPS_MODE, value);
 
														 | 
														
														 | 
														
															                     log_event_data(LOG_UPS_MODE, value);
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 }
 
														 | 
														
														 | 
														
															                 }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 memcmp(fault_status, value, sizeof(value));
 
														 | 
														
														 | 
														
															                 memcmp(fault_status, value, sizeof(value));
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                return;
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             }
 
														 | 
														
														 | 
														
															             }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         }
 
														 | 
														
														 | 
														
															         }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         SNMP_SendUserTrap(UPS_MODE);
 
														 | 
														
														 | 
														
															         SNMP_SendUserTrap(UPS_MODE);
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         syslog(SYSLOG_INFORMATIONAL, "Режим ИБП: %s", value);
 
														 | 
														
														 | 
														
															         syslog(SYSLOG_INFORMATIONAL, "Режим ИБП: %s", value);
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         log_event_data(LOG_UPS_MODE, value);
 
														 | 
														
														 | 
														
															         log_event_data(LOG_UPS_MODE, value);
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 #endif        
 
														 | 
														
														 | 
														
															 #endif        
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        UPS.Mode = data[0];
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     }
 
														 | 
														
														 | 
														
															     }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     // -----------------------------------------------------------------------
 
														 | 
														
														 | 
														
															     // -----------------------------------------------------------------------
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+#endif
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
 
														 | 
														
														 | 
														
															 
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 #if 0 // Пока закроем
 
														 | 
														
														 | 
														
															 #if 0 // Пока закроем
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     if (UPS.Mode != data[0]) {
 
														 | 
														
														 | 
														
															     if (UPS.Mode != data[0]) {
 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -1231,6 +1242,7 @@ int ups_metac_service_pdu(cmdMegaTecEnums_t command) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 void kstar_mode(void)
 
														 | 
														
														 | 
														
															 void kstar_mode(void)
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 {
 
														 | 
														
														 | 
														
															 {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     uint8_t mode = UPS.Mode;
 
														 | 
														
														 | 
														
															     uint8_t mode = UPS.Mode;
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+#if 0    
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     if((UPS.Status >> 4) & 0x01) {
 
														 | 
														
														 | 
														
															     if((UPS.Status >> 4) & 0x01) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         UPS.Mode = 'F';
 
														 | 
														
														 | 
														
															         UPS.Mode = 'F';
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } else if(!((UPS.Status >> 4) & 0x01) && UPS.VAC_out == 0) {
 
														 | 
														
														 | 
														
															     } else if(!((UPS.Status >> 4) & 0x01) && UPS.VAC_out == 0) {
 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -1244,6 +1256,19 @@ void kstar_mode(void) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } else if((UPS.Status >> 2) & 0x01) {
 
														 | 
														
														 | 
														
															     } else if((UPS.Status >> 2) & 0x01) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         UPS.Mode = 'T';
 
														 | 
														
														 | 
														
															         UPS.Mode = 'T';
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     }
 
														 | 
														
														 | 
														
															     }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+#endif
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    if((UPS.Status >> 4) & 0x01) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        UPS.Mode = 'F';
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    } else if(!((UPS.Status >> 4) & 0x01) && UPS.VAC_out == 0) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        UPS.Mode = 'D';
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    } else if(((UPS.Status >> 5) & 0x01) && UPS.VAC_out > 120 && UPS.VAC_in != 0) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        UPS.Mode = 'Y';
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    } else if(((UPS.Status >> 7) & 0x01) && UPS.VAC_out > 190) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        UPS.Mode = 'B';
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    } else if((UPS.Status >> 2) & 0x01) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        UPS.Mode = 'T';
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
 
														 | 
														
														 | 
														
															 
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
 
														 | 
														
														 | 
														
															 
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     if (UPS.Mode != mode) {
 
														 | 
														
														 | 
														
															     if (UPS.Mode != mode) {
 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -1263,7 +1288,8 @@ void kstar_mode(void) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 //void request_task(void)
 
														 | 
														
														 | 
														
															 //void request_task(void)
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 void request_task(void *params)
 
														 | 
														
														 | 
														
															 void request_task(void *params)
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 {
 
														 | 
														
														 | 
														
															 {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    uint8_t kestar_req[4] = { ups_status_req, ups_remain_time_reg, ups_info, ups_kstar_status};
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    //uint8_t kestar_req[4] = { ups_status_req, ups_remain_time_reg, ups_info, ups_kstar_status};
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    uint8_t kestar_req[1] = { ups_status_req};
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     uint8_t voltronic_req[9] = {ups_temperature, ups_status_req, ups_akb_info, ups_model_req, ups_mode_req, ups_version_req, ups_version2_req, ups_serial_req, ups_warning_status};//
 
														 | 
														
														 | 
														
															     uint8_t voltronic_req[9] = {ups_temperature, ups_status_req, ups_akb_info, ups_model_req, ups_mode_req, ups_version_req, ups_version2_req, ups_serial_req, ups_warning_status};//
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     uint8_t num_req = 0;
 
														 | 
														
														 | 
														
															     uint8_t num_req = 0;
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     uint8_t *req;
 
														 | 
														
														 | 
														
															     uint8_t *req;
 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -1301,6 +1327,9 @@ void request_task(void *params) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             }
 
														 | 
														
														 | 
														
															             }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         }
 
														 | 
														
														 | 
														
															         }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
 
														 | 
														
														 | 
														
															 
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n");
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        printf("megatec_send: %u\r\n", megatec_send);
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         if (megatec_send) {
 
														 | 
														
														 | 
														
															         if (megatec_send) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             memset(ups_pdu.data, 0, UPS_PDU_MAX_LEN);
 
														 | 
														
														 | 
														
															             memset(ups_pdu.data, 0, UPS_PDU_MAX_LEN);
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             megatec_send = false;
 
														 | 
														
														 | 
														
															             megatec_send = false;
 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -1389,14 +1418,23 @@ void request_task(void *params) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 memset(ups_pdu.data, 0, UPS_PDU_MAX_LEN);
 
														 | 
														
														 | 
														
															                 memset(ups_pdu.data, 0, UPS_PDU_MAX_LEN);
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 megatec_send = false;
 
														 | 
														
														 | 
														
															                 megatec_send = false;
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 UPS.Flag_Present = false;
 
														 | 
														
														 | 
														
															                 UPS.Flag_Present = false;
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                // printf("~~~~~~~~~~ set UPS.Flag_Present false\r\n");
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 send_MegaTec_cmd(req[i]);
 
														 | 
														
														 | 
														
															                 send_MegaTec_cmd(req[i]);
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 if (ups_megatec_rx_pdu()) {
 
														 | 
														
														 | 
														
															                 if (ups_megatec_rx_pdu()) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     ups_megatec_process_pdu(req[i]);
 
														 | 
														
														 | 
														
															                     ups_megatec_process_pdu(req[i]);
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 }
 
														 | 
														
														 | 
														
															                 }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
 
														 | 
														
														 | 
														
															 
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 megatec_send = true;
 
														 | 
														
														 | 
														
															                 megatec_send = true;
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                // printf("~~~~~~~~~~~~~~~ Current UPS.Flag_Present: %u\r\n", (uint8_t)UPS.Flag_Present);
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             }
 
														 | 
														
														 | 
														
															             }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         }
 
														 | 
														
														 | 
														
															         }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        // printf("UPS.Flag_Present: %u\r\n", (uint8_t)UPS.Flag_Present);
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        // printf("UPS_Setting.type_ups: %u\r\n", sSettings.UPS_Setting.type_ups);
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        kstar_mode();
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         if(UPS.Flag_Present && (sSettings.UPS_Setting.type_ups == ups_kestar 
 
														 | 
														
														 | 
														
															         if(UPS.Flag_Present && (sSettings.UPS_Setting.type_ups == ups_kestar 
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             || sSettings.UPS_Setting.type_ups == ups_offline)) {
 
														 | 
														
														 | 
														
															             || sSettings.UPS_Setting.type_ups == ups_offline)) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 kstar_mode();
 
														 | 
														
														 | 
														
															                 kstar_mode();
 
														 |