Files
sound-analyze/client/src/reveier.py

44 lines
1.3 KiB
Python

#!/usr/bin/env python3
import sys
import time
import serial
# Настройки порта
SERIAL_PORT = "/dev/ttyACM0"
BAUD_RATE = 115200
def read_serial_data():
try:
# Открытие порта. Timeout позволяет прерывать блокирующее чтение.
ser = serial.Serial(SERIAL_PORT, BAUD_RATE, timeout=1)
print(f"Connected to {SERIAL_PORT}")
while True:
if ser.in_waiting > 0:
# Чтение строки, декодирование и удаление пробелов
line = ser.readline().decode("utf-8", errors="replace").strip()
if line:
print(f"[RX]: {line}")
else:
# Небольшая пауза, чтобы не грузить CPU ПК
time.sleep(0.01)
except serial.SerialException as e:
print(f"Error opening serial port: {e}")
print(
"Hint: Check if /dev/ttyACM0 exists and you have permissions (group uucp)."
)
except KeyboardInterrupt:
print("\nExiting...")
except:
print("\nAn error occure!")
finally:
if "ser" in locals() and ser.is_open:
ser.close()
if __name__ == "__main__":
read_serial_data()