|
@@ -407,7 +407,7 @@ void ups_info_response(char *data)
|
|
|
|
|
|
data++;
|
|
data++;
|
|
|
|
|
|
- data += 16;
|
|
|
|
|
|
+ data += 16; //пропускаем поле название компании
|
|
|
|
|
|
while (data[0] == ' ') {
|
|
while (data[0] == ' ') {
|
|
data ++;
|
|
data ++;
|
|
@@ -417,10 +417,10 @@ void ups_info_response(char *data)
|
|
/*endValue = strpbrk(data," ");
|
|
/*endValue = strpbrk(data," ");
|
|
len = endValue - data;*/
|
|
len = endValue - data;*/
|
|
if (UPS.model[0] == 0) {
|
|
if (UPS.model[0] == 0) {
|
|
- strncpy(UPS.model, data, 10);
|
|
|
|
|
|
+ strncpy(UPS.model, data, KSTAR_MODEL_LENGTH);
|
|
SNMP_SetObjDescr();
|
|
SNMP_SetObjDescr();
|
|
} else {
|
|
} else {
|
|
- strncpy(UPS.model, data, 10);
|
|
|
|
|
|
+ strncpy(UPS.model, data, KSTAR_MODEL_LENGTH);
|
|
}
|
|
}
|
|
|
|
|
|
data += 11;
|
|
data += 11;
|
|
@@ -512,9 +512,8 @@ void ups_akb_info_response(char *data)
|
|
|
|
|
|
void ups_model_response(char *data)
|
|
void ups_model_response(char *data)
|
|
{
|
|
{
|
|
- char value[20];
|
|
|
|
- uint8_t len = 0;
|
|
|
|
uint8_t j = 0;
|
|
uint8_t j = 0;
|
|
|
|
+ char value[20];
|
|
DBG printf("ups_akb_info_response: %s\r\n", data);
|
|
DBG printf("ups_akb_info_response: %s\r\n", data);
|
|
if (data[0] != '(') {
|
|
if (data[0] != '(') {
|
|
return;
|
|
return;
|
|
@@ -528,22 +527,32 @@ void ups_model_response(char *data)
|
|
|
|
|
|
DBG printf("UPS ups_akb_info_parser_start: %s\r\n", data);
|
|
DBG printf("UPS ups_akb_info_parser_start: %s\r\n", data);
|
|
|
|
|
|
- len = get_ups_param(data, " ", value);
|
|
|
|
|
|
+ memset(value, 0, 20);
|
|
if (UPS.model[0] == 0) {
|
|
if (UPS.model[0] == 0) {
|
|
- for (uint8_t i = 0; i < len; i ++) {
|
|
|
|
- if (value[i] != '#') {
|
|
|
|
- UPS.model[j] = value[i];
|
|
|
|
|
|
+ for (uint8_t i = 0; i < VOLTRONIC_MODEL_LENGTH; i ++) {
|
|
|
|
+ if (data[i] != '#') {
|
|
|
|
+ value[j] = data[i];
|
|
j ++;
|
|
j ++;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ if(strncmp(value, "WPHV", 4) == 0 || value[0] != 0) {
|
|
|
|
+ strcpy(UPS.model, "RTMP II");
|
|
|
|
+ } else {
|
|
|
|
+ strcpy(UPS.model, value);
|
|
|
|
+ }
|
|
SNMP_SetObjDescr();
|
|
SNMP_SetObjDescr();
|
|
} else {
|
|
} else {
|
|
j = 0;
|
|
j = 0;
|
|
- for (uint8_t i = 0; i < len; i ++) {
|
|
|
|
- if (value[i] != '#') {
|
|
|
|
- UPS.model[j] = value[i];
|
|
|
|
|
|
+ for (uint8_t i = 0; i < VOLTRONIC_MODEL_LENGTH; i ++) {
|
|
|
|
+ if (data[i] != '#') {
|
|
|
|
+ value[j] = data[i];
|
|
j ++;
|
|
j ++;
|
|
}
|
|
}
|
|
|
|
+ if(strncmp(value, "WPHV", 4) == 0 || value[0] != 0) {
|
|
|
|
+ strcpy(UPS.model, "RTMP II");
|
|
|
|
+ } else {
|
|
|
|
+ strcpy(UPS.model, value);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -573,7 +582,10 @@ void ups_version_response(char *data)
|
|
DBG printf("UPS ups_akb_info_parser_start: %s\r\n", data);
|
|
DBG printf("UPS ups_akb_info_parser_start: %s\r\n", data);
|
|
|
|
|
|
len = get_ups_param(data, "\r", value);
|
|
len = get_ups_param(data, "\r", value);
|
|
- strncpy(UPS.vertion, value, 8);
|
|
|
|
|
|
+ if (len > VOLTRONIC_VERSION_LENGTH) {
|
|
|
|
+ len = VOLTRONIC_VERSION_LENGTH;
|
|
|
|
+ }
|
|
|
|
+ strncpy(UPS.vertion, value, len);
|
|
}
|
|
}
|
|
|
|
|
|
void ups_version_part2_response(char *data)
|
|
void ups_version_part2_response(char *data)
|
|
@@ -595,7 +607,7 @@ void ups_version_part2_response(char *data)
|
|
|
|
|
|
data++;
|
|
data++;
|
|
|
|
|
|
- if (UPS.vertion[8] != 0) {
|
|
|
|
|
|
+ if (UPS.vertion[VOLTRONIC_VERSION_LENGTH] != 0) {
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -605,8 +617,11 @@ 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);
|
|
|
|
+ if (len > VOLTRONIC_VERSION_LENGTH) {
|
|
|
|
+ len = VOLTRONIC_VERSION_LENGTH;
|
|
|
|
+ }
|
|
strncat(UPS.vertion, "/", 1);
|
|
strncat(UPS.vertion, "/", 1);
|
|
- strncpy(&UPS.vertion[9], value, 8);
|
|
|
|
|
|
+ strncat(UPS.vertion, value, len);
|
|
}
|
|
}
|
|
|
|
|
|
void ups_serial_response(char *data)
|
|
void ups_serial_response(char *data)
|
|
@@ -627,8 +642,7 @@ void ups_serial_response(char *data)
|
|
DBG printf("UPS ups_serial_parser_start: %s\r\n", data);
|
|
DBG printf("UPS ups_serial_parser_start: %s\r\n", data);
|
|
|
|
|
|
len = get_ups_param(data, "\r", value);
|
|
len = get_ups_param(data, "\r", value);
|
|
- strncpy(UPS.serial, &value[0], 14);
|
|
|
|
- UPS.serial[14] = 0;
|
|
|
|
|
|
+ strncpy(UPS.serial, value, VOLTRONIC_SN_LENGTH);
|
|
}
|
|
}
|
|
|
|
|
|
void ups_protocol_id_response(char *data)
|
|
void ups_protocol_id_response(char *data)
|