From 7c4b3eafddced210328b66177c987cd4c7e2cf2c Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Tue, 25 Feb 2025 09:42:00 +1100 Subject: [PATCH] support firmware load of hex files --- dronecan_gui_tool/widgets/file_server.py | 4 ++++ dronecan_gui_tool/widgets/node_properties.py | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/dronecan_gui_tool/widgets/file_server.py b/dronecan_gui_tool/widgets/file_server.py index 8353a77..73c31a0 100644 --- a/dronecan_gui_tool/widgets/file_server.py +++ b/dronecan_gui_tool/widgets/file_server.py @@ -136,6 +136,10 @@ def _load_image(self, path): print("Missing hex image in %s" % path) return None return hex2bin(base64.b64decode(j['hex'])) + if path.lower().endswith('.hex'): + # intel hex image + h = open(path,'rb').read() + return hex2bin(h) return open(path,'rb').read() def _check_path_change(self, path): diff --git a/dronecan_gui_tool/widgets/node_properties.py b/dronecan_gui_tool/widgets/node_properties.py index 58a8dfe..31cf4c9 100644 --- a/dronecan_gui_tool/widgets/node_properties.py +++ b/dronecan_gui_tool/widgets/node_properties.py @@ -246,7 +246,7 @@ def _do_firmware_update(self): # Requesting the firmware path fw_file = QFileDialog().getOpenFileName(self, 'Select firmware file', '', - 'Binary images (*.bin);;ArduPilot Firmware (*.apj);;AM32 Firmware (*.amj);;PX4 Firmware (*.px4);;All files (*.*)') + 'Binary images (*.bin);;ArduPilot Firmware (*.apj);;AM32 Firmware (*.amj);;PX4 Firmware (*.px4);;Hex (*.hex);;All files (*.*)') if not fw_file[0]: self.window().show_message('Cancelled') return