|
@@ -103,6 +103,7 @@ const char *MegaTecCMD[] = {
|
|
|
"QFLAG\r",
|
|
|
"PEL\r",
|
|
|
"BT\r",
|
|
|
+ "QTPR\r",
|
|
|
};
|
|
|
|
|
|
extern bool flUpdateLog;
|
|
@@ -283,6 +284,14 @@ void ups_status_response(char *data)
|
|
|
#endif
|
|
|
|
|
|
if (flUpdateLog) {
|
|
|
+ if(sSettings.UPS_Setting.type_ups == ups_voltronic) {
|
|
|
+ char temperature_str[5];
|
|
|
+ sprintf(temperature_str, "%3.1f", UPS.Temp);
|
|
|
+ for(uint8_t k = 0; k < 4; k++){
|
|
|
+ data[33 + k] = temperature_str[k];
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
flUpdateLog = false;
|
|
|
log_add(data);
|
|
|
}
|
|
@@ -343,7 +352,9 @@ void ups_status_response(char *data)
|
|
|
len = get_ups_param(data, " ", value);
|
|
|
data += (len + 1);
|
|
|
if (len > 0) {
|
|
|
- UPS.Temp = atof(value);
|
|
|
+ if(sSettings.UPS_Setting.type_ups != ups_voltronic) {
|
|
|
+ UPS.Temp = atof(value);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
len = get_ups_param(data, "\r", value);
|
|
@@ -962,6 +973,28 @@ void ups_kstar_status_response(char *data)
|
|
|
|
|
|
}
|
|
|
|
|
|
+void ups_temperature_response(char *data)
|
|
|
+{
|
|
|
+ char value[20];
|
|
|
+ uint8_t len = 0;
|
|
|
+
|
|
|
+ if (data[0] != '(') {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ UPS.Present = UPS_CONNECTED;
|
|
|
+ UPS.Flag_Present = true;
|
|
|
+ UPS.cnt_err_ups = 0;
|
|
|
+
|
|
|
+ data += 13;
|
|
|
+
|
|
|
+ len = get_ups_param(data, " ", value);
|
|
|
+ data += (len + 1);
|
|
|
+ if (len > 0) {
|
|
|
+ UPS.Temp = atof(value);
|
|
|
+ }
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
void ups_megatec_process_pdu(cmdMegaTecEnums_t command)
|
|
|
{
|
|
|
switch (command) {
|
|
@@ -1017,6 +1050,9 @@ void ups_megatec_process_pdu(cmdMegaTecEnums_t command)
|
|
|
case ups_kstar_status:
|
|
|
ups_kstar_status_response(ups_pdu.data);
|
|
|
break;
|
|
|
+ case ups_temperature:
|
|
|
+ ups_temperature_response(ups_pdu.data);
|
|
|
+ break;
|
|
|
default:
|
|
|
break;
|
|
|
}
|
|
@@ -1141,7 +1177,7 @@ void kstar_mode(void)
|
|
|
void request_task(void *params)
|
|
|
{
|
|
|
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 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 *req;
|
|
|
bool flag_init_ups = false;
|