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