import serial
import keyboard
import json
import os
# =====================
# ЗАГРУЗКА COM-ПОРТА
# =====================
config_path = os.path.abspath(
os.path.join(
os.path.dirname(__file__),
"..",
"config.json"
)
)
with open(config_path, "r", encoding="utf-8") as f:
config = json.load(f)
COM_PORT = config["ppt_sensors"]
# =====================
# СОЕДИНЕНИЕ
# =====================
ser = serial.Serial(COM_PORT, 9600)
print(f"PPT sensor controller started on {COM_PORT}")
print("Expected signals: signal_2 ... signal_9")
# =====================
# ОСНОВНОЙ ЦИКЛ
# =====================
while True:
try:
line = ser.readline().decode(
errors="ignore"
).strip().lower()
if not line:
continue
print(line)
# =====================
# МАГНИТНЫЕ ДАТЧИКИ
# =====================
if line.startswith("signal_"):
number = line[len("signal_"):]
# signal_2 -> 1
# signal_3 -> 2
# ...
# signal_9 -> 8
if number.isdigit():
sensor_number = int(number)
if 2 <= sensor_number <= 9:
key_number = sensor_number - 1
print(
f"Signal {sensor_number} -> "
f"Press key {key_number}"
)
keyboard.press_and_release(
str(key_number)
)
except Exception as e:
print("Error:", e)