Files
radar_system/device_firmware/cart_firmware/deploy
2026-10-22 12:57:33 +03:00
..
2026-10-22 12:57:33 +03:00
2026-10-22 12:57:33 +03:00
2026-10-22 12:57:33 +03:00
2026-10-22 12:57:33 +03:00
2026-10-22 12:57:33 +03:00
2026-10-22 12:57:33 +03:00

systemd-службы сетевого моста

Автозапуск tools/bridge.py как служб: cart-bridge-tx (отправитель, рядом с пультом) и cart-bridge-rx (приёмник, рядом с тележкой). На каждой машине включается ровно одна роль.

Установка

На машине-отправителе:

sudo ./install-bridge.sh tx

На машине-приёмнике:

sudo ./install-bridge.sh rx

Установщик подставляет в юнит реальные пути (python из .venv проекта, если есть, иначе системный python3; bridge.py; рабочий каталог) и пользователя (того, кто вызвал sudo). Юниты кладутся в /etc/systemd/system/, конфиги — в /etc/cart-bridge/{tx,rx}.env (создаются из примеров, существующие не перезаписываются). Без аргумента (none) — только установка, без включения.

Интерпретатор можно задать явно: sudo PYTHON=/usr/bin/python3 ./install-bridge.sh rx. В выбранном python должен быть pyserial.

Настройка

Отредактировать конфиг под свою сеть и ключ:

sudoedit /etc/cart-bridge/tx.env   # peer = адрес приёмника, общий ключ
sudoedit /etc/cart-bridge/rx.env   # bind, тот же ключ
sudo systemctl restart cart-bridge-tx   # применить

Ключ CART_BRIDGE_KEY на обеих сторонах должен совпадать (HMAC-аутентификация пакетов; обязателен для интернета).

Эксплуатация

systemctl status cart-bridge-tx
journalctl -u cart-bridge-tx -f      # логи; на отправителе видно «приёмник отвечает/НЕ отвечает»
sudo systemctl restart cart-bridge-tx
sudo systemctl disable --now cart-bridge-tx

Служба перезапускается при падении (Restart=always). Доступ к USB-порту STM даётся группами dialout/plugdev (прописаны в юните).