diff --git a/justfile b/justfile index e8454c8..79ca0f9 100644 --- a/justfile +++ b/justfile @@ -368,22 +368,8 @@ midi-log: # Reset MCU via router RPC and reopen serial reset-mcu: - @ssh {{SSH_OPTS}} "{{BOARD_USER}}@{{BOARD_HOST}}" "\ - python3 -c ' -import socket, msgpack, time -s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) -s.settimeout(5) -s.connect(\"/var/run/arduino-router.sock\") -p = msgpack.Packer() -req = p.pack([0, 1, \"mon/reset\", []]) -s.sendall(req); s.recv(4096) -req = p.pack([0, 2, \"\$/serial/close\", [\"/dev/ttyHS1\"]]) -s.sendall(req); s.recv(4096) -req = p.pack([0, 3, \"\$/serial/open\", [\"/dev/ttyHS1\"]]) -s.sendall(req); s.recv(4096) -s.close() -print(\"MCU reset, serial reopened. Wait 20s for Bridge.begin()...\") -'" + @scp {{SSH_OPTS}} scripts/reset-mcu.py "{{BOARD_USER}}@{{BOARD_HOST}}:{{REPO_DIR}}/scripts/reset-mcu.py" + @ssh {{SSH_OPTS}} "{{BOARD_USER}}@{{BOARD_HOST}}" "python3 {{REPO_DIR}}/scripts/reset-mcu.py" # Check viz stats live viz-stats: diff --git a/scripts/reset-mcu.py b/scripts/reset-mcu.py new file mode 100644 index 0000000..966cfc4 --- /dev/null +++ b/scripts/reset-mcu.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python3 +import socket, msgpack, time, sys + +ROUTER_SOCK = sys.argv[1] if len(sys.argv) > 1 else "/var/run/arduino-router.sock" +SERIAL_DEV = sys.argv[2] if len(sys.argv) > 2 else "/dev/ttyHS1" + +s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) +s.settimeout(5) +s.connect(ROUTER_SOCK) +p = msgpack.Packer() + +req = p.pack([0, 1, "mon/reset", []]) +s.sendall(req); s.recv(4096) + +req = p.pack([0, 2, "$/serial/close", [SERIAL_DEV]]) +s.sendall(req); s.recv(4096) + +req = p.pack([0, 3, "$/serial/open", [SERIAL_DEV]]) +s.sendall(req); s.recv(4096) + +s.close() +print("MCU reset, serial reopened. Wait 20s for Bridge.begin()...")