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)
|
||||
مرجع در شماره جدید
مسدود کردن کاربر