feat(cli): add --reset-device-name and WDT feed during uploads
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
35
cli.py
35
cli.py
@@ -16,7 +16,7 @@ from typing import Dict, Any, List, Optional
|
||||
|
||||
import tempfile
|
||||
import os
|
||||
from device import copy_file, DeviceConnection
|
||||
from device import copy_file, DeviceConnection, firmware_default_device_name
|
||||
|
||||
|
||||
def resolve_flash_binary(path: str) -> Optional[str]:
|
||||
@@ -309,6 +309,9 @@ Examples:
|
||||
|
||||
# Set name, num_leds, default pattern, and upload
|
||||
%(prog)s --name "MyStrip" -l 60 --default rainbow
|
||||
|
||||
# Reset logical device name to firmware default (STA MAC based)
|
||||
%(prog)s --reset-device-name
|
||||
"""
|
||||
)
|
||||
|
||||
@@ -323,6 +326,12 @@ Examples:
|
||||
help="Device name"
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
"--reset-device-name",
|
||||
action="store_true",
|
||||
help="Set name to firmware default (led-<STA MAC hex>, same as fresh settings.json on led-driver)",
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
"--id",
|
||||
dest="device_id",
|
||||
@@ -662,11 +671,35 @@ Examples:
|
||||
sys.exit(1)
|
||||
return # follow blocks; when interrupted we're done
|
||||
|
||||
default_name_from_device: Optional[str] = None
|
||||
if args.reset_device_name:
|
||||
if args.name is not None:
|
||||
print(
|
||||
"Error: use either --name or --reset-device-name, not both.",
|
||||
file=sys.stderr,
|
||||
)
|
||||
sys.exit(1)
|
||||
try:
|
||||
print(
|
||||
f"Reading firmware default device name (STA MAC) on {port}...",
|
||||
file=sys.stderr,
|
||||
)
|
||||
default_name_from_device = firmware_default_device_name(port)
|
||||
print(
|
||||
f"Default name will be {default_name_from_device!r}.",
|
||||
file=sys.stderr,
|
||||
)
|
||||
except Exception as e:
|
||||
print(f"Error: {e}", file=sys.stderr)
|
||||
sys.exit(1)
|
||||
|
||||
# Collect all edit parameters
|
||||
edits: Dict[str, Any] = {}
|
||||
|
||||
if args.name is not None:
|
||||
edits["name"] = args.name
|
||||
elif default_name_from_device is not None:
|
||||
edits["name"] = default_name_from_device
|
||||
|
||||
if args.pin is not None:
|
||||
edits["led_pin"] = args.pin
|
||||
|
||||
Reference in New Issue
Block a user