|
@@ -393,7 +393,8 @@ void ups_general_status_response(char *data)
|
|
|
|
|
|
void ups_info_response(char *data)
|
|
|
{
|
|
|
- uint8_t i = 0;
|
|
|
+ uint8_t i = 0, j = 0;
|
|
|
+ char value[20];
|
|
|
DBG printf("ups_info_response: %s\r\n", data);
|
|
|
if (data[0] != '#') {
|
|
|
return;
|
|
@@ -409,21 +410,21 @@ void ups_info_response(char *data)
|
|
|
|
|
|
data += 16; //пропускаем поле название компании
|
|
|
|
|
|
- while (data[0] == ' ') {
|
|
|
- data ++;
|
|
|
- i ++;
|
|
|
+ memset(value, 0, sizeof(value));
|
|
|
+ for (uint8_t i = 0; i < KSTAR_MODEL_LENGTH; i ++) {
|
|
|
+ if (data[i] != ' ') {
|
|
|
+ value[j] = data[i];
|
|
|
+ j ++;
|
|
|
+ }
|
|
|
}
|
|
|
- if (i < 15) {
|
|
|
- /*endValue = strpbrk(data," ");
|
|
|
- len = endValue - data;*/
|
|
|
+
|
|
|
+ if (j != 0) {
|
|
|
if (UPS.model[0] == 0) {
|
|
|
- strncpy(UPS.model, data, KSTAR_MODEL_LENGTH);
|
|
|
+ strncpy(UPS.model, value, strlen(value));
|
|
|
SNMP_SetObjDescr();
|
|
|
} else {
|
|
|
- strncpy(UPS.model, data, KSTAR_MODEL_LENGTH);
|
|
|
+ strncpy(UPS.model, data, strlen(value));
|
|
|
}
|
|
|
-
|
|
|
- data += 11;
|
|
|
} else {
|
|
|
if (UPS.model[0] == 0) {
|
|
|
strcpy(UPS.model, "RTMP II");
|
|
@@ -431,9 +432,8 @@ void ups_info_response(char *data)
|
|
|
} else {
|
|
|
strcpy(UPS.model, "RTMP II");
|
|
|
}
|
|
|
- data += 11;
|
|
|
}
|
|
|
-
|
|
|
+ data += (KSTAR_MODEL_LENGTH + 1);
|
|
|
strncpy(UPS.serial, data, 8);
|
|
|
data += 8;
|
|
|
|