init
This commit is contained in:
@@ -0,0 +1,67 @@
|
|||||||
|
import serial
|
||||||
|
import sys
|
||||||
|
import time
|
||||||
|
|
||||||
|
PORT = "/dev/ttyUSB0"
|
||||||
|
BAUDRATE = 115200
|
||||||
|
TIMEOUT = 2
|
||||||
|
MAX_WAIT = 10
|
||||||
|
|
||||||
|
COMMAND = "bdinfo"
|
||||||
|
|
||||||
|
try:
|
||||||
|
with serial.Serial(
|
||||||
|
port=PORT,
|
||||||
|
baudrate=BAUDRATE,
|
||||||
|
timeout=0.2,
|
||||||
|
write_timeout=TIMEOUT
|
||||||
|
) as ser:
|
||||||
|
|
||||||
|
print(f"Connected to {PORT}", flush=True)
|
||||||
|
|
||||||
|
# Clear old serial data
|
||||||
|
ser.reset_input_buffer()
|
||||||
|
|
||||||
|
# Send command to U-Boot
|
||||||
|
ser.write((COMMAND + "\r").encode())
|
||||||
|
ser.flush()
|
||||||
|
|
||||||
|
print(f"Command sent: {COMMAND}", flush=True)
|
||||||
|
print("------ U-Boot Response ------", flush=True)
|
||||||
|
|
||||||
|
response = bytearray()
|
||||||
|
start_time = time.monotonic()
|
||||||
|
last_data_time = start_time
|
||||||
|
|
||||||
|
while time.monotonic() - start_time < MAX_WAIT:
|
||||||
|
|
||||||
|
if ser.in_waiting:
|
||||||
|
data = ser.read(ser.in_waiting)
|
||||||
|
response.extend(data)
|
||||||
|
|
||||||
|
# Print response in real time
|
||||||
|
print(
|
||||||
|
data.decode("utf-8", errors="replace"),
|
||||||
|
end="",
|
||||||
|
flush=True
|
||||||
|
)
|
||||||
|
|
||||||
|
last_data_time = time.monotonic()
|
||||||
|
|
||||||
|
# Stop when no new data arrives for 2 seconds
|
||||||
|
if response and time.monotonic() - last_data_time > TIMEOUT:
|
||||||
|
break
|
||||||
|
|
||||||
|
time.sleep(0.05)
|
||||||
|
|
||||||
|
print("\n-----------------------------")
|
||||||
|
|
||||||
|
if not response:
|
||||||
|
print("ERROR: No response from U-Boot")
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
print("Command completed successfully")
|
||||||
|
|
||||||
|
except serial.SerialException as e:
|
||||||
|
print(f"Serial error: {e}")
|
||||||
|
sys.exit(1)
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
name: U-Boot Serial Command
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
uboot-command:
|
||||||
|
runs-on: serial-runner
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout Repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Execute U-Boot bdinfo
|
||||||
|
run: |
|
||||||
|
~/serial-venv/bin/python scripts/serial_command.py
|
||||||
مرجع در شماره جدید
مسدود کردن کاربر