Add module identification command (relay id)
This commit is contained in:
parent
73dc2f188f
commit
cbb0d672f6
3 changed files with 10 additions and 5 deletions
|
|
@ -10,6 +10,7 @@ Sluit aan via USB en stuur commando's:
|
||||||
./relay 1 # relais aan
|
./relay 1 # relais aan
|
||||||
./relay 0 # relais uit
|
./relay 0 # relais uit
|
||||||
./relay 1 /dev/cu.usbserial-XXXX # poort opgeven als default afwijkt
|
./relay 1 /dev/cu.usbserial-XXXX # poort opgeven als default afwijkt
|
||||||
|
./relay id # toont module-ID (chip-ID, uniek per chip, onafhankelijk van USB-poort)
|
||||||
```
|
```
|
||||||
|
|
||||||
## Pinnen
|
## Pinnen
|
||||||
|
|
|
||||||
11
relay
11
relay
|
|
@ -1,15 +1,16 @@
|
||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
"""Toggle the USB relay via serial: ./relay 1|0 [serial_port]."""
|
"""Toggle the USB relay via serial: ./relay 1|0|id [serial_port]."""
|
||||||
import sys
|
import sys
|
||||||
import serial
|
import serial
|
||||||
|
|
||||||
DEFAULT_PORT = "/dev/cu.usbserial-2110"
|
DEFAULT_PORT = "/dev/cu.usbserial-2110"
|
||||||
|
|
||||||
def main() -> int:
|
def main() -> int:
|
||||||
if len(sys.argv) not in (2, 3) or sys.argv[1] not in ("0", "1"):
|
if len(sys.argv) not in (2, 3) or sys.argv[1] not in ("0", "1", "id"):
|
||||||
print(f"Usage: {sys.argv[0]} 0|1 [serial_port]", file=sys.stderr)
|
print(f"Usage: {sys.argv[0]} 0|1|id [serial_port]", file=sys.stderr)
|
||||||
return 1
|
return 1
|
||||||
command = sys.argv[1]
|
command = sys.argv[1]
|
||||||
|
serial_cmd = "?" if command == "id" else command
|
||||||
port = sys.argv[2] if len(sys.argv) == 3 else DEFAULT_PORT
|
port = sys.argv[2] if len(sys.argv) == 3 else DEFAULT_PORT
|
||||||
try:
|
try:
|
||||||
# dtr/rts expliciet uit vóór open: voorkomt (of beperkt) de CH340
|
# dtr/rts expliciet uit vóór open: voorkomt (of beperkt) de CH340
|
||||||
|
|
@ -32,12 +33,12 @@ def main() -> int:
|
||||||
# binnen 2 s (timeout, readline geeft b"") = geen reset: door.
|
# binnen 2 s (timeout, readline geeft b"") = geen reset: door.
|
||||||
s.readline()
|
s.readline()
|
||||||
s.reset_input_buffer()
|
s.reset_input_buffer()
|
||||||
s.write(command.encode())
|
s.write(serial_cmd.encode())
|
||||||
s.flush()
|
s.flush()
|
||||||
reply = s.readline().decode(errors="replace").strip()
|
reply = s.readline().decode(errors="replace").strip()
|
||||||
finally:
|
finally:
|
||||||
s.close()
|
s.close()
|
||||||
if reply in ("ON", "OFF"):
|
if reply in ("ON", "OFF") or (command == "id" and reply.startswith("ID ")):
|
||||||
print(reply)
|
print(reply)
|
||||||
return 0
|
return 0
|
||||||
print(f"ERROR: no valid reply from board (got {reply!r})", file=sys.stderr)
|
print(f"ERROR: no valid reply from board (got {reply!r})", file=sys.stderr)
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,9 @@ void loop() {
|
||||||
digitalWrite(RELAY_PIN, LOW);
|
digitalWrite(RELAY_PIN, LOW);
|
||||||
digitalWrite(LED_PIN, HIGH);
|
digitalWrite(LED_PIN, HIGH);
|
||||||
Serial.println("OFF");
|
Serial.println("OFF");
|
||||||
|
} else if (c == '?') {
|
||||||
|
Serial.print("ID usbtoggle-relay ");
|
||||||
|
Serial.println(ESP.getChipId(), HEX);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue