|
@@ -129,6 +129,7 @@ void init_UPS_value(void)
|
|
|
UPS.Status = 0;
|
|
|
UPS.Mode = 0;
|
|
|
UPS.Alarm = 0;
|
|
|
+ UPS.temp_stm32 = 0;
|
|
|
UPS.warn_status = 0;
|
|
|
UPS.Test_Status = 0;
|
|
|
UPS.fault_type = 0;
|
|
@@ -1005,6 +1006,7 @@ void ups_temperature_response(char *data)
|
|
|
{
|
|
|
char value[20];
|
|
|
uint8_t len = 0;
|
|
|
+ float temp = 0;
|
|
|
|
|
|
if (data[0] != '(') {
|
|
|
return;
|
|
@@ -1018,7 +1020,13 @@ void ups_temperature_response(char *data)
|
|
|
len = get_ups_param(data, " ", value);
|
|
|
data += (len + 1);
|
|
|
if (len > 0) {
|
|
|
- UPS.Temp = atof(value);
|
|
|
+ temp = atof(value);
|
|
|
+ if (temp == 0 && UPS.temp_stm32 < 0) {
|
|
|
+ UPS.Temp = UPS.temp_stm32;
|
|
|
+ } else {
|
|
|
+ UPS.Temp = temp;
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
|