|
@@ -102,6 +102,7 @@ const char *MegaTecCMD[] = {
|
|
|
"PHV264\r",//264
|
|
|
"QFLAG\r",
|
|
|
"PEL\r",
|
|
|
+ "BT\r",
|
|
|
};
|
|
|
|
|
|
extern bool flUpdateLog;
|
|
@@ -931,6 +932,36 @@ void ups_qflag_status_get(char *data)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+void ups_kstar_status_response(char *data)
|
|
|
+{
|
|
|
+ char value[20];
|
|
|
+ uint8_t len;
|
|
|
+ if (data[0] != '#') {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ DBG printf("ups_kstar_status_response: %s\r\n", data);
|
|
|
+
|
|
|
+ UPS.Present = UPS_CONNECTED;
|
|
|
+ UPS.Flag_Present = true;
|
|
|
+ UPS.cnt_err_ups = 0;
|
|
|
+
|
|
|
+ data++;
|
|
|
+
|
|
|
+ len = get_ups_param(data, " ", value);
|
|
|
+ data += (len + 1);
|
|
|
+ if (len > 0) {
|
|
|
+ UPS.work_time = atoi(value);
|
|
|
+ }
|
|
|
+ /* len = get_ups_param(data, "\r", value);
|
|
|
+ data += (len + 1);
|
|
|
+ if (len > 0) {
|
|
|
+ UPS.warn_status = value[3] - 0x30;
|
|
|
+ }
|
|
|
+*/
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
void ups_megatec_process_pdu(cmdMegaTecEnums_t command)
|
|
|
{
|
|
|
switch (command) {
|
|
@@ -983,6 +1014,9 @@ void ups_megatec_process_pdu(cmdMegaTecEnums_t command)
|
|
|
case ups_qflag_status:
|
|
|
ups_qflag_status_get(ups_pdu.data);
|
|
|
break;
|
|
|
+ case ups_kstar_status:
|
|
|
+ ups_kstar_status_response(ups_pdu.data);
|
|
|
+ break;
|
|
|
default:
|
|
|
break;
|
|
|
}
|
|
@@ -1106,7 +1140,7 @@ void kstar_mode(void)
|
|
|
//void request_task(void)
|
|
|
void request_task(void *params)
|
|
|
{
|
|
|
- uint8_t kestar_req[3] = { ups_status_req, ups_remain_time_reg, ups_info};
|
|
|
+ uint8_t kestar_req[4] = { ups_status_req, ups_remain_time_reg, ups_info, ups_kstar_status};
|
|
|
uint8_t voltronic_req[8] = {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 *req;
|