2022-10-28 13:59:09 +00:00
|
|
|
#!/usr/bin/env python3
|
Splitting units and updater benches (#2165)
* test run, moved updated to separate physical runner/flipper/card
* simplified units, removed re-flashing, moved format to beginning of run
* added reboot requence and mini optimizations
* forgot gitadd, added script modifications, workflow changes
* fixed linter issues
* moved updater to unit bench for speed up
* changes to units, flash (not full) on second update, new fbt GDB thread check
* changed serial of second device
* testing pipelines, added failing unit test
* fixed gdb step
* fixed gdb step v2 electric boogaloo
* fixed gdb step v3, fixed target
* reverted while1 in units, tests complete
* testing colored output
* trying different term setting
* debug outputs for terminal
* fixed typo in SConstruct and another terminal test
* reverted changes, no colored output, for production
* fixed log output to readable format
* fixed linter
Co-authored-by: Konstantin Volkov <k.volkov@flipperdevices.com>
Co-authored-by: あく <alleteam@gmail.com>
2022-12-28 14:16:06 +00:00
|
|
|
import logging
|
|
|
|
import os
|
|
|
|
import sys
|
|
|
|
import time
|
2022-10-28 13:59:09 +00:00
|
|
|
|
|
|
|
|
|
|
|
def flp_serial_by_name(flp_name):
|
|
|
|
if sys.platform == "darwin": # MacOS
|
|
|
|
flp_serial = "/dev/cu.usbmodemflip_" + flp_name + "1"
|
2023-06-27 20:47:13 +00:00
|
|
|
logging.info(f"Darwin, looking for {flp_serial}")
|
2022-10-28 13:59:09 +00:00
|
|
|
elif sys.platform == "linux": # Linux
|
|
|
|
flp_serial = (
|
|
|
|
"/dev/serial/by-id/usb-Flipper_Devices_Inc._Flipper_"
|
|
|
|
+ flp_name
|
|
|
|
+ "_flip_"
|
|
|
|
+ flp_name
|
|
|
|
+ "-if00"
|
|
|
|
)
|
2023-06-27 20:47:13 +00:00
|
|
|
logging.info(f"linux, looking for {flp_serial}")
|
2022-10-28 13:59:09 +00:00
|
|
|
|
|
|
|
if os.path.exists(flp_serial):
|
|
|
|
return flp_serial
|
|
|
|
else:
|
2023-06-27 20:47:13 +00:00
|
|
|
logging.info(f"Couldn't find {logging.info} on this attempt.")
|
2022-10-28 13:59:09 +00:00
|
|
|
if os.path.exists(flp_name):
|
|
|
|
return flp_name
|
|
|
|
else:
|
|
|
|
return ""
|
|
|
|
|
|
|
|
|
2022-12-24 14:13:21 +00:00
|
|
|
UPDATE_TIMEOUT = 60 * 4 # 4 minutes
|
2022-10-28 13:59:09 +00:00
|
|
|
|
|
|
|
|
|
|
|
def main():
|
|
|
|
flipper_name = sys.argv[1]
|
|
|
|
elapsed = 0
|
|
|
|
flipper = flp_serial_by_name(flipper_name)
|
Splitting units and updater benches (#2165)
* test run, moved updated to separate physical runner/flipper/card
* simplified units, removed re-flashing, moved format to beginning of run
* added reboot requence and mini optimizations
* forgot gitadd, added script modifications, workflow changes
* fixed linter issues
* moved updater to unit bench for speed up
* changes to units, flash (not full) on second update, new fbt GDB thread check
* changed serial of second device
* testing pipelines, added failing unit test
* fixed gdb step
* fixed gdb step v2 electric boogaloo
* fixed gdb step v3, fixed target
* reverted while1 in units, tests complete
* testing colored output
* trying different term setting
* debug outputs for terminal
* fixed typo in SConstruct and another terminal test
* reverted changes, no colored output, for production
* fixed log output to readable format
* fixed linter
Co-authored-by: Konstantin Volkov <k.volkov@flipperdevices.com>
Co-authored-by: あく <alleteam@gmail.com>
2022-12-28 14:16:06 +00:00
|
|
|
logging.basicConfig(
|
|
|
|
format="%(asctime)s %(levelname)-8s %(message)s",
|
|
|
|
level=logging.INFO,
|
|
|
|
datefmt="%Y-%m-%d %H:%M:%S",
|
|
|
|
)
|
2023-06-27 20:47:13 +00:00
|
|
|
logging.info(f"Waiting for Flipper {flipper_name} to be ready...")
|
2022-10-28 13:59:09 +00:00
|
|
|
|
|
|
|
while flipper == "" and elapsed < UPDATE_TIMEOUT:
|
|
|
|
elapsed += 1
|
|
|
|
time.sleep(1)
|
|
|
|
flipper = flp_serial_by_name(flipper_name)
|
|
|
|
|
|
|
|
if flipper == "":
|
Splitting units and updater benches (#2165)
* test run, moved updated to separate physical runner/flipper/card
* simplified units, removed re-flashing, moved format to beginning of run
* added reboot requence and mini optimizations
* forgot gitadd, added script modifications, workflow changes
* fixed linter issues
* moved updater to unit bench for speed up
* changes to units, flash (not full) on second update, new fbt GDB thread check
* changed serial of second device
* testing pipelines, added failing unit test
* fixed gdb step
* fixed gdb step v2 electric boogaloo
* fixed gdb step v3, fixed target
* reverted while1 in units, tests complete
* testing colored output
* trying different term setting
* debug outputs for terminal
* fixed typo in SConstruct and another terminal test
* reverted changes, no colored output, for production
* fixed log output to readable format
* fixed linter
Co-authored-by: Konstantin Volkov <k.volkov@flipperdevices.com>
Co-authored-by: あく <alleteam@gmail.com>
2022-12-28 14:16:06 +00:00
|
|
|
logging.error("Flipper not found!")
|
2022-10-28 13:59:09 +00:00
|
|
|
sys.exit(1)
|
|
|
|
|
Splitting units and updater benches (#2165)
* test run, moved updated to separate physical runner/flipper/card
* simplified units, removed re-flashing, moved format to beginning of run
* added reboot requence and mini optimizations
* forgot gitadd, added script modifications, workflow changes
* fixed linter issues
* moved updater to unit bench for speed up
* changes to units, flash (not full) on second update, new fbt GDB thread check
* changed serial of second device
* testing pipelines, added failing unit test
* fixed gdb step
* fixed gdb step v2 electric boogaloo
* fixed gdb step v3, fixed target
* reverted while1 in units, tests complete
* testing colored output
* trying different term setting
* debug outputs for terminal
* fixed typo in SConstruct and another terminal test
* reverted changes, no colored output, for production
* fixed log output to readable format
* fixed linter
Co-authored-by: Konstantin Volkov <k.volkov@flipperdevices.com>
Co-authored-by: あく <alleteam@gmail.com>
2022-12-28 14:16:06 +00:00
|
|
|
logging.info(f"Found Flipper at {flipper}")
|
|
|
|
|
2022-10-28 13:59:09 +00:00
|
|
|
sys.exit(0)
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
main()
|