|
@@ -259,17 +259,17 @@ void ups_status_response(char *data)
|
|
//TODO
|
|
//TODO
|
|
len = get_ups_param(data, " ", value);
|
|
len = get_ups_param(data, " ", value);
|
|
data += (len + 1);
|
|
data += (len + 1);
|
|
|
|
+ if(len > 0){
|
|
|
|
+ UPS.Vakb_curr = atof(value);
|
|
|
|
+ }
|
|
if(sSettings.UPS_Setting.type_ups == ups_kestar){
|
|
if(sSettings.UPS_Setting.type_ups == ups_kestar){
|
|
- if(len > 0){
|
|
|
|
- //UPS.SOC = round(100*(((atof(value))/6) - 1.85)/0.4166666667); // 1.85 - минимальное напряжение на ячейки АКБ; 2.266666667 - максимальное напряжение на ячейки АКБ; (2.266666667 - 1.85) = 0.4166666667
|
|
|
|
- //UPS.SOC = round(100*((atof(value)) - 1.67)/0.58); // 1.667 - минимальное напряжение на ячейки АКБ; 2.267 - максимальное напряжение на ячейки АКБ; (2.267 - 1.667) = 0.6
|
|
|
|
- UPS.Vakb_curr = atof(value);
|
|
|
|
- if(UPS.Vakb_curr < 7){
|
|
|
|
- UPS.SOC = round(100*(UPS.Vakb_curr - sSettings.UPS_Setting.Ucellmin)/(sSettings.UPS_Setting.Ucellmax - sSettings.UPS_Setting.Ucellmin));
|
|
|
|
- }
|
|
|
|
- else{
|
|
|
|
- UPS.SOC = round(100*(UPS.Vakb_curr/AKB_NUM_CELL - sSettings.UPS_Setting.Ucellmin)/(sSettings.UPS_Setting.Ucellmax - sSettings.UPS_Setting.Ucellmin));
|
|
|
|
- }
|
|
|
|
|
|
+ //UPS.SOC = round(100*(((atof(value))/6) - 1.85)/0.4166666667); // 1.85 - минимальное напряжение на ячейки АКБ; 2.266666667 - максимальное напряжение на ячейки АКБ; (2.266666667 - 1.85) = 0.4166666667
|
|
|
|
+ //UPS.SOC = round(100*((atof(value)) - 1.67)/0.58); // 1.667 - минимальное напряжение на ячейки АКБ; 2.267 - максимальное напряжение на ячейки АКБ; (2.267 - 1.667) = 0.6
|
|
|
|
+ if(UPS.Vakb_curr < 7){
|
|
|
|
+ UPS.SOC = round(100*(UPS.Vakb_curr - sSettings.UPS_Setting.Ucellmin)/(sSettings.UPS_Setting.Ucellmax - sSettings.UPS_Setting.Ucellmin));
|
|
|
|
+ }
|
|
|
|
+ else{
|
|
|
|
+ UPS.SOC = round(100*(UPS.Vakb_curr/AKB_NUM_CELL - sSettings.UPS_Setting.Ucellmin)/(sSettings.UPS_Setting.Ucellmax - sSettings.UPS_Setting.Ucellmin));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
len = get_ups_param(data, " ", value);
|
|
len = get_ups_param(data, " ", value);
|
|
@@ -557,7 +557,6 @@ void ups_version_response(char *data)
|
|
|
|
|
|
len = get_ups_param(data, "\r", value);
|
|
len = get_ups_param(data, "\r", value);
|
|
strncpy(UPS.vertion, value, 8);
|
|
strncpy(UPS.vertion, value, 8);
|
|
- strncat(UPS.vertion, "/", 1);
|
|
|
|
}
|
|
}
|
|
|
|
|
|
void ups_version_part2_response(char *data)
|
|
void ups_version_part2_response(char *data)
|
|
@@ -572,9 +571,13 @@ void ups_version_part2_response(char *data)
|
|
UPS.Flag_Present = true;
|
|
UPS.Flag_Present = true;
|
|
UPS.cnt_err_ups = 0;
|
|
UPS.cnt_err_ups = 0;
|
|
|
|
|
|
|
|
+ if (strncmp(ups_pdu.data, "(NAK", 4) == 0) {
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+
|
|
data++;
|
|
data++;
|
|
|
|
|
|
- if(UPS.vertion[9] != 0){
|
|
|
|
|
|
+ if(UPS.vertion[8] != 0){
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -584,6 +587,7 @@ void ups_version_part2_response(char *data)
|
|
data += (len + 1);
|
|
data += (len + 1);
|
|
|
|
|
|
len = get_ups_param(data, "\r", value);
|
|
len = get_ups_param(data, "\r", value);
|
|
|
|
+ strncat(UPS.vertion, "/", 1);
|
|
strncpy(&UPS.vertion[9], value, 8);
|
|
strncpy(&UPS.vertion[9], value, 8);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -619,7 +623,7 @@ void ups_protocol_id_response(char *data)
|
|
UPS.cnt_err_ups = 0;
|
|
UPS.cnt_err_ups = 0;
|
|
|
|
|
|
if(data[0] != '('){
|
|
if(data[0] != '('){
|
|
- if(strncmp(data, "NAK", 3) == 0){
|
|
|
|
|
|
+ if(strncmp(data, "NAK", 3) == 0 || strncmp(data, "QPI", 3) == 0 || strncmp(data, " \r", 2) == 0){
|
|
sSettings.UPS_Setting.type_ups = ups_kestar;
|
|
sSettings.UPS_Setting.type_ups = ups_kestar;
|
|
}
|
|
}
|
|
return;
|
|
return;
|