ethercat-linux/scripts/serial_exec.py
Tony Cao 309aaba342 EL6695 8-byte bidirectional exchange with per-byte verification
- 8B PDO config: ULINT-sized payload, no 0x1A01 diag PDO on SM3
  (device rejected SM3=8 with diag assigned: 'size not allowed, min/max 0xa')
- twin_layout_blob_sized(): single 64-bit mapping entry for 8B payloads
- Ticker: per-byte XOR 0x5A transform in 8B mode so TwinCAT can verify
  every byte individually (1KB path unchanged, const-guarded)
- TwinCAT automation scripts: deploy with RPC retry, LinkVariables-based
  whole-array relink (element links only carry 1 byte), ADS watch, diag
- Docs: 8B design, verification methodology, test report
2026-07-27 19:01:05 +08:00

32 lines
640 B
Python

#!/usr/bin/env python3
"""Execute command on J1900 via serial console."""
import serial, time, sys
PORT = "/dev/ttyUSB0"
BAUD = 115200
def main():
if len(sys.argv) < 2:
print(f"Usage: {sys.argv[0]} <command>")
sys.exit(1)
cmd = " ".join(sys.argv[1:])
ser = serial.Serial(PORT, BAUD, timeout=0.5)
ser.reset_input_buffer()
ser.write((cmd + "\r").encode())
time.sleep(3)
out = b""
while True:
chunk = ser.read(4096)
if not chunk:
break
out += chunk
ser.close()
print(out.decode("utf-8", errors="replace"))
if __name__ == "__main__":
main()