unleashed-firmware/scripts/testing/await_flipper.py
Konstantin Volkov 4ade0fc76d
[FL-3421] Unit bench: multiple attempts to find flipper (#2960)
* Unit bench: added retry count for finding flipper for reboot/reboot2dfu and power off scripts. Changed returns to sys.exit() since scripts are being used standalone
* fixed typo in await flipper and changed debug level to info for searching flipper in power.py
* reversed return operator instead of sys.exit, changed app.py exit behavior
* test run to see if exit(1) fails the run
* reversed test changes, fixed flipper name and increased await flipper timeout
* await after flash increase
* increased serial timeout
* increased serial timeout, apparently it is for entire run

Co-authored-by: doomwastaken <k.volkov@flipperdevices.com>
Co-authored-by: あく <alleteam@gmail.com>
2023-08-23 21:51:02 +09:00

62 lines
1.5 KiB
Python
Executable File

#!/usr/bin/env python3
import logging
import os
import sys
import time
def flp_serial_by_name(flp_name):
if sys.platform == "darwin": # MacOS
flp_serial = "/dev/cu.usbmodemflip_" + flp_name + "1"
logging.info(f"Darwin, looking for {flp_serial}")
elif sys.platform == "linux": # Linux
flp_serial = (
"/dev/serial/by-id/usb-Flipper_Devices_Inc._Flipper_"
+ flp_name
+ "_flip_"
+ flp_name
+ "-if00"
)
logging.info(f"linux, looking for {flp_serial}")
if os.path.exists(flp_serial):
return flp_serial
else:
logging.info(f"Couldn't find {flp_name} on this attempt.")
if os.path.exists(flp_name):
return flp_name
else:
return ""
UPDATE_TIMEOUT = 30 * 4 # 4 minutes
def main():
flipper_name = sys.argv[1]
elapsed = 0
flipper = flp_serial_by_name(flipper_name)
logging.basicConfig(
format="%(asctime)s %(levelname)-8s %(message)s",
level=logging.INFO,
datefmt="%Y-%m-%d %H:%M:%S",
)
logging.info(f"Waiting for Flipper {flipper_name} to be ready...")
while flipper == "" and elapsed < UPDATE_TIMEOUT:
elapsed += 1
time.sleep(1)
flipper = flp_serial_by_name(flipper_name)
if flipper == "":
logging.error("Flipper not found!")
exit(1)
logging.info(f"Found Flipper at {flipper}")
sys.exit(0)
if __name__ == "__main__":
main()