This commit is contained in:
2026-11-09 20:19:52 +03:30
کامیت b62f6b536a
2فایلهای تغییر یافته به همراه83 افزوده شده و 0 حذف شده
+67
مشاهده پرونده
@@ -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)