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

54 lines
2.3 KiB
Markdown

# systemd-службы сетевого моста
Автозапуск `tools/bridge.py` как служб: `cart-bridge-tx` (отправитель, рядом с
пультом) и `cart-bridge-rx` (приёмник, рядом с тележкой). На каждой машине
включается ровно одна роль.
## Установка
На машине-отправителе:
```sh
sudo ./install-bridge.sh tx
```
На машине-приёмнике:
```sh
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`.
## Настройка
Отредактировать конфиг под свою сеть и ключ:
```sh
sudoedit /etc/cart-bridge/tx.env # peer = адрес приёмника, общий ключ
sudoedit /etc/cart-bridge/rx.env # bind, тот же ключ
sudo systemctl restart cart-bridge-tx # применить
```
Ключ `CART_BRIDGE_KEY` на обеих сторонах должен совпадать (HMAC-аутентификация
пакетов; обязателен для интернета).
## Эксплуатация
```sh
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` (прописаны в юните).