Skip to content

Commit 65cdbdb

Browse files
committed
[Device Manager] Moved updating bootloader to Danger Zone
1 parent d9f6b8b commit 65cdbdb

File tree

1 file changed

+17
-13
lines changed

1 file changed

+17
-13
lines changed

utilities/device_manager.py

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -185,17 +185,22 @@ def wait(self) -> dai.DeviceInfo:
185185
return deviceSelected
186186

187187
def flashBootloader(bl: dai.DeviceBootloader, device: dai.DeviceInfo, type: dai.DeviceBootloader.Type):
188+
userBlWarningMessage = """Updating bootloader can soft-brick a device.
189+
Proceed with caution"""
188190
factoryBlWarningMessage = """Factory Bootloader type or version doesn't support User Bootloader flashing.
189191
Factory bootloader will be updated instead.
190192
Proceed with caution
191193
"""
192194

193195
try:
194196
if bl.isUserBootloaderSupported():
195-
pr = Progress('Flashing...')
196-
progress = lambda p : pr.update(p)
197-
bl.flashUserBootloader(progress)
198-
pr.finish("Flashed newest User Bootloader version.")
197+
if AreYouSure(text=userBlWarningMessage).wait():
198+
pr = Progress('Flashing...')
199+
progress = lambda p : pr.update(p)
200+
bl.flashUserBootloader(progress)
201+
pr.finish("Flashed newest User Bootloader version.")
202+
else:
203+
return False
199204
elif AreYouSure(text=factoryBlWarningMessage).wait():
200205
bl.close()
201206
pr = Progress('Connecting...')
@@ -400,12 +405,6 @@ def deviceStateTxt(state: dai.XLinkDeviceState) -> str:
400405
sg.Text("-version-", key="version", size=(30, 1)),
401406
sg.VSeparator(),
402407
sg.Text("-version-", key="commit", size=(31, 1))
403-
],
404-
[sg.HSeparator()],
405-
[
406-
sg.Text("", size=(7, 2)),
407-
sg.Button("Update Bootloader", size=(20, 2), font=('Arial', 10, 'bold'), disabled=True,
408-
button_color='#FFA500'),
409408
]
410409
]
411410

@@ -510,12 +509,17 @@ def deviceStateTxt(state: dai.XLinkDeviceState) -> str:
510509
],
511510
[sg.HSeparator()],
512511
[
512+
sg.Button("Update Bootloader", size=(20, 2), font=('Arial', 10, 'bold'), disabled=True,
513+
button_color='#FFA500'),
513514
sg.Button("Flash Factory Bootloader", size=(20, 2), font=('Arial', 10, 'bold'), disabled=True,
514515
button_color='#FFA500', key='flashFactoryBootloader'),
516+
],
517+
[sg.HSeparator()],
518+
[
515519
sg.Button("Factory reset", size=(17, 2), font=('Arial', 10, 'bold'), disabled=True, button_color='#FFA500'),
516520
sg.Button("Boot into USB\nRecovery mode", size=(20, 2), font=('Arial', 10, 'bold'), disabled=True,
517521
key='recoveryMode', button_color='#FFA500')
518-
],
522+
]
519523
]
520524

521525

@@ -611,6 +615,8 @@ def run(self) -> None:
611615
if self.bl is None: continue
612616
self.getConfigs()
613617
self.unlockConfig()
618+
619+
# Danger
614620
elif event == "Update Bootloader":
615621
# Use current type
616622
if flashBootloader(self.bl, self.device, self.bl.getType()):
@@ -620,8 +626,6 @@ def run(self) -> None:
620626
self.getDevices()
621627
else:
622628
print("Flashing bootloader canceled.")
623-
624-
# Danger
625629
elif event == "flashFactoryBootloader":
626630
sel = SelectBootloader(['AUTO', 'USB', 'NETWORK'], "Select bootloader type to flash.")
627631
ok, type = sel.wait()

0 commit comments

Comments
 (0)