Странное поведение wb-mcu-fw-updater

Добрый день!
wb-mcu-fw-updater сначала очень долго запускался, потом просканировал устройства, затем снова ушел у раздумье на длительное время и упал.

root@IQ401000:~# wb-mcu-fw-updater update-all


# Тут была пауза около 5ти минут


2023-12-26 09:50:21,583 Will probe all devices on enabled serial ports of /etc/wb-mqtt-serial.conf:
2023-12-26 09:50:21,587 Probing WB-M1W2 (port: /dev/ttyRS485-2, slaveid: 165, uart_params: 9600N2, response_timeout: 0.50)...
2023-12-26 09:50:21,983 Probing WB-MSW v.3 (port: /dev/ttyRS485-2, slaveid: 183, uart_params: 9600N2, response_timeout: 0.50)...
2023-12-26 09:50:29,584 Probing WB-M1W2 (port: /dev/ttyRS485-2, slaveid: 23, uart_params: 9600N2, response_timeout: 0.50)...
2023-12-26 09:50:29,975 Probing WB-M1W2 (port: /dev/ttyRS485-2, slaveid: 124, uart_params: 9600N2, response_timeout: 0.50)...
2023-12-26 09:50:30,357 Probing WB-M1W2 (port: /dev/ttyRS485-2, slaveid: 153, uart_params: 9600N2, response_timeout: 0.50)...
2023-12-26 09:50:30,742 Probing WB-M1W2 (port: /dev/ttyRS485-2, slaveid: 112, uart_params: 9600N2, response_timeout: 0.50)...
2023-12-26 09:50:31,123 Probing WB-M1W2 (port: /dev/ttyRS485-2, slaveid: 208, uart_params: 9600N2, response_timeout: 0.50)...
2023-12-26 09:50:31,503 Probing WB-M1W2 (port: /dev/ttyRS485-2, slaveid: 212, uart_params: 9600N2, response_timeout: 0.50)...
2023-12-26 09:50:31,885 Probing WB-M1W2 (port: /dev/ttyRS485-2, slaveid: 116, uart_params: 9600N2, response_timeout: 0.50)...
2023-12-26 09:50:32,265 Probing WB-M1W2 (port: /dev/ttyRS485-2, slaveid: 239, uart_params: 9600N2, response_timeout: 0.50)...
2023-12-26 09:50:32,648 Probing WB-M1W2 (port: /dev/ttyRS485-2, slaveid: 169, uart_params: 9600N2, response_timeout: 0.50)...
2023-12-26 09:50:33,034 Probing WB-M1W2 (port: /dev/ttyRS485-2, slaveid: 129, uart_params: 9600N2, response_timeout: 0.50)...
2023-12-26 09:50:33,421 Probing WB-MAO4 (port: /dev/ttyRS485-1, slaveid: 43, uart_params: 9600N2, response_timeout: 0.50)...
2023-12-26 09:50:33,775 Probing WB-MAP12E fw2 (port: /dev/ttyRS485-1, slaveid: 17, uart_params: 9600N2, response_timeout: 0.50)...
2023-12-26 09:50:34,136 Probing WB-MAP12E fw2 (port: /dev/ttyRS485-1, slaveid: 16, uart_params: 9600N2, response_timeout: 0.50)...
2023-12-26 09:50:34,490 Probing WB-MR6C (port: /dev/ttyRS485-1, slaveid: 88, uart_params: 9600N2, response_timeout: 0.50)...
2023-12-26 09:50:34,869 Probing WB-MR6C (port: /dev/ttyRS485-1, slaveid: 56, uart_params: 9600N2, response_timeout: 0.50)...
2023-12-26 09:50:35,232 Probing WB-MR3 (port: /dev/ttyRS485-1, slaveid: 33, uart_params: 9600N2, response_timeout: 0.50)...
2023-12-26 09:50:35,600 Probing WB-MR6C (port: /dev/ttyRS485-1, slaveid: 64, uart_params: 9600N2, response_timeout: 0.50)...
2023-12-26 09:50:35,965 Probing WB-MR6C (port: /dev/ttyRS485-1, slaveid: 73, uart_params: 9600N2, response_timeout: 0.50)...
2023-12-26 09:50:36,327 Probing WB-MR6C (port: /dev/ttyRS485-1, slaveid: 76, uart_params: 9600N2, response_timeout: 0.50)...



2023-12-26 09:52:51,306 Unhandled exception!
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/serial/serialposix.py", line 490, in read
    'device reports readiness to read but returned no data '
serial.serialutil.SerialException: device reports readiness to read but returned no data (device disconnected or multiple access on port?)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/bin/wb-mcu-fw-updater", line 305, in <module>
    args.func(args)
  File "/usr/bin/wb-mcu-fw-updater", line 134, in update_all
    update_monitor._update_all(force=args.force, minimal_response_timeout=args.minimal_response_timeout, allow_downgrade=args.allow_downgrade)
  File "/usr/lib/python3/dist-packages/wb_mcu_fw_updater/update_monitor.py", line 465, in _update_all
    local_device_version = device_info.modbus_connection.get_fw_version()
  File "/usr/lib/python3/dist-packages/wb_modbus/bindings.py", line 560, in get_fw_version
    return self.read_string(self.COMMON_REGS_MAP['fw_version'], self.FIRMWARE_VERSION_LENGTH)
  File "/usr/lib/python3/dist-packages/wb_modbus/bindings.py", line 27, in wrapper
    return f(self, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/wb_modbus/bindings.py", line 45, in wrapper
    return f(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/wb_modbus/bindings.py", line 450, in read_string
    ret = minimalmodbus._hexlify(self.device.read_string(addr, regs_lenght, 3))
  File "/usr/lib/python3/dist-packages/wb_modbus/minimalmodbus.py", line 755, in read_string
    payloadformat=_PAYLOADFORMAT_STRING,
  File "/usr/lib/python3/dist-packages/wb_modbus/minimalmodbus.py", line 1170, in _generic_command
    payload_from_slave = self._perform_command(functioncode, payload_to_slave)
  File "/usr/lib/python3/dist-packages/wb_modbus/minimalmodbus.py", line 1240, in _perform_command
    response = self._communicate(request, number_of_bytes_to_read)
  File "/usr/lib/python3/dist-packages/wb_modbus/instruments.py", line 180, in _communicate
    answer = self._read_from_bus(number_of_bytes_to_read, minimum_silent_period)
  File "/usr/lib/python3/dist-packages/wb_modbus/instruments.py", line 36, in _read_from_bus
    answer = self.serial.read(number_of_bytes_to_read)
  File "/usr/lib/python3/dist-packages/serial/serialposix.py", line 497, in read
    raise SerialException('read failed: {}'.format(e))
serial.serialutil.SerialException: read failed: device reports readiness to read but returned no data (device disconnected or multiple access on port?)
root@IQ401000:~#

Повторный запуск все таки запустил процесс обновления, но происходит это очень долго. Прошло 20 минут, обновилось меньше половины.

root@IQ401000:~# wb-mcu-fw-updater update-all
2023-12-26 09:57:03,164 Will probe all devices on enabled serial ports of /etc/wb-mqtt-serial.conf:
2023-12-26 09:57:03,167 Probing WB-M1W2 (port: /dev/ttyRS485-2, slaveid: 169, uart_params: 9600N2, response_timeout: 0.50)...
2023-12-26 09:57:03,541 Probing WB-M1W2 (port: /dev/ttyRS485-2, slaveid: 112, uart_params: 9600N2, response_timeout: 0.50)...
2023-12-26 09:57:03,916 Probing WB-M1W2 (port: /dev/ttyRS485-2, slaveid: 208, uart_params: 9600N2, response_timeout: 0.50)...
2023-12-26 09:57:04,286 Probing WB-M1W2 (port: /dev/ttyRS485-2, slaveid: 129, uart_params: 9600N2, response_timeout: 0.50)...
2023-12-26 09:57:04,660 Probing WB-M1W2 (port: /dev/ttyRS485-2, slaveid: 124, uart_params: 9600N2, response_timeout: 0.50)...
2023-12-26 09:57:05,029 Probing WB-M1W2 (port: /dev/ttyRS485-2, slaveid: 239, uart_params: 9600N2, response_timeout: 0.50)...
2023-12-26 09:57:05,406 Probing WB-MSW v.3 (port: /dev/ttyRS485-2, slaveid: 183, uart_params: 9600N2, response_timeout: 0.50)...
2023-12-26 09:57:12,980 Probing WB-M1W2 (port: /dev/ttyRS485-2, slaveid: 153, uart_params: 9600N2, response_timeout: 0.50)...
2023-12-26 09:57:13,351 Probing WB-M1W2 (port: /dev/ttyRS485-2, slaveid: 23, uart_params: 9600N2, response_timeout: 0.50)...
2023-12-26 09:57:13,725 Probing WB-M1W2 (port: /dev/ttyRS485-2, slaveid: 165, uart_params: 9600N2, response_timeout: 0.50)...
2023-12-26 09:57:14,095 Probing WB-M1W2 (port: /dev/ttyRS485-2, slaveid: 116, uart_params: 9600N2, response_timeout: 0.50)...
2023-12-26 09:57:14,466 Probing WB-M1W2 (port: /dev/ttyRS485-2, slaveid: 212, uart_params: 9600N2, response_timeout: 0.50)...
2023-12-26 09:57:14,848 Probing WB-MAP12E fw2 (port: /dev/ttyRS485-1, slaveid: 16, uart_params: 9600N2, response_timeout: 0.50)...
2023-12-26 09:57:15,184 Probing WB-MR6C (port: /dev/ttyRS485-1, slaveid: 76, uart_params: 9600N2, response_timeout: 0.50)...
2023-12-26 09:57:15,536 Probing WB-MR6C (port: /dev/ttyRS485-1, slaveid: 73, uart_params: 9600N2, response_timeout: 0.50)...
2023-12-26 09:57:15,897 Probing WB-MAO4 (port: /dev/ttyRS485-1, slaveid: 43, uart_params: 9600N2, response_timeout: 0.50)...
2023-12-26 09:57:16,227 Probing WB-MR6C (port: /dev/ttyRS485-1, slaveid: 88, uart_params: 9600N2, response_timeout: 0.50)...
2023-12-26 09:57:16,579 Probing WB-MR6C (port: /dev/ttyRS485-1, slaveid: 56, uart_params: 9600N2, response_timeout: 0.50)...
2023-12-26 09:57:16,931 Probing WB-MR6C (port: /dev/ttyRS485-1, slaveid: 64, uart_params: 9600N2, response_timeout: 0.50)...
2023-12-26 09:57:17,282 Probing WB-MR3 (port: /dev/ttyRS485-1, slaveid: 33, uart_params: 9600N2, response_timeout: 0.50)...
2023-12-26 09:57:17,636 Probing WB-MAP12E fw2 (port: /dev/ttyRS485-1, slaveid: 17, uart_params: 9600N2, response_timeout: 0.50)...






2023-12-26 10:01:43,484 Update: 4.22.0 -> 4.32.1 (WB-M1W2 (169, /dev/ttyRS485-2))
2023-12-26 10:01:45,585 Update: 4.22.0 -> 4.32.1 (WB-M1W2 (112, /dev/ttyRS485-2))
2023-12-26 10:04:01,787 Update: 4.22.0 -> 4.32.1 (WB-M1W2 (208, /dev/ttyRS485-2))
2023-12-26 10:04:03,796 Update: 4.22.0 -> 4.32.1 (WB-M1W2 (129, /dev/ttyRS485-2))
2023-12-26 10:04:05,874 Update: 4.22.0 -> 4.32.1 (WB-M1W2 (124, /dev/ttyRS485-2))
2023-12-26 10:06:19,970 Update: 4.22.0 -> 4.32.1 (WB-M1W2 (239, /dev/ttyRS485-2))
2023-12-26 10:06:22,005 Update: 4.22.0 -> 4.32.1 (WB-M1W2 (153, /dev/ttyRS485-2))
2023-12-26 10:08:38,160 Update: 4.22.0 -> 4.32.1 (WB-M1W2 (23, /dev/ttyRS485-2))
2023-12-26 10:08:40,235 Update: 4.22.0 -> 4.32.1 (WB-M1W2 (165, /dev/ttyRS485-2))
2023-12-26 10:08:42,239 Update: 4.22.0 -> 4.32.1 (WB-M1W2 (116, /dev/ttyRS485-2))
2023-12-26 10:08:44,260 Update: 4.22.0 -> 4.32.1 (WB-M1W2 (212, /dev/ttyRS485-2))
2023-12-26 10:10:56,565 Update: 2.3.8 -> 2.7.5 (WB-MAP12E fw2 (16, /dev/ttyRS485-1))
2023-12-26 10:10:58,543 Update: 1.19.2 -> 1.20.4 (WB-MR6C (76, /dev/ttyRS485-1))
2023-12-26 10:11:00,510 Update: 1.19.2 -> 1.20.4 (WB-MR6C (73, /dev/ttyRS485-1))
2023-12-26 10:11:02,467 Update: 2.1.2 -> 2.4.4 (WB-MAO4 (43, /dev/ttyRS485-1))
2023-12-26 10:11:04,444 Update: 1.19.2 -> 1.20.4 (WB-MR6C (88, /dev/ttyRS485-1))
2023-12-26 10:11:06,453 Update: 1.19.2 -> 1.20.4 (WB-MR6C (56, /dev/ttyRS485-1))
2023-12-26 10:11:08,382 Update: 1.19.2 -> 1.20.4 (WB-MR6C (64, /dev/ttyRS485-1))
2023-12-26 10:11:10,296 Update: 1.19.2 -> 1.20.4 (WB-MR3 (33, /dev/ttyRS485-1))
2023-12-26 10:11:12,234 Update: 2.3.8 -> 2.7.5 (WB-MAP12E fw2 (17, /dev/ttyRS485-1))
2023-12-26 10:11:12,237 Flashing firmware to WB-M1W2 (169, /dev/ttyRS485-2)
2023-12-26 10:11:17,632 Flashing /var/lib/wb-mcu-fw-updater/m1w2G21__4.32.1_main_5f38974.wbfw
100%|############################################################################################################################################################|206/206
2023-12-26 10:12:04,634 Flashing firmware to WB-M1W2 (112, /dev/ttyRS485-2)
2023-12-26 10:12:23,590 Flashing /var/lib/wb-mcu-fw-updater/m1w2G21__4.32.1_main_5f38974.wbfw
100%|############################################################################################################################################################|206/206
2023-12-26 10:13:10,627 Flashing firmware to WB-M1W2 (208, /dev/ttyRS485-2)
2023-12-26 10:13:29,426 Flashing /var/lib/wb-mcu-fw-updater/m1w2G21__4.32.1_main_5f38974.wbfw
100%|############################################################################################################################################################|206/206
2023-12-26 10:14:16,463 Flashing firmware to WB-M1W2 (129, /dev/ttyRS485-2)
2023-12-26 10:14:35,322 Flashing /var/lib/wb-mcu-fw-updater/m1w2G21__4.32.1_main_5f38974.wbfw
100%|############################################################################################################################################################|206/206
2023-12-26 10:15:22,323 Flashing firmware to WB-M1W2 (124, /dev/ttyRS485-2)
2023-12-26 10:15:41,241 Flashing /var/lib/wb-mcu-fw-updater/m1w2G21__4.32.1_main_5f38974.wbfw
100%|############################################################################################################################################################|206/206
2023-12-26 10:16:28,289 Flashing firmware to WB-M1W2 (239, /dev/ttyRS485-2)
2023-12-26 10:16:47,161 Flashing /var/lib/wb-mcu-fw-updater/m1w2G21__4.32.1_main_5f38974.wbfw
100%|############################################################################################################################################################|206/206
2023-12-26 10:17:34,205 Flashing firmware to WB-M1W2 (153, /dev/ttyRS485-2)

С третьего раза софт отработал более-менее быстро, но медленее чем обычно.

Описал в задаче более подробный вывод прогресса, благодарю.

1 Like