deploy examples
This commit is contained in:
@@ -179,6 +179,18 @@ Payload `CONTROL` (LE): `seq:u32`, `t_ms:u32`, `flags:u8`, `ch[16]:u16` = 41 б
|
||||
неаутентичные и принимает только с ожидаемого адреса (`--peer`). Рекомендуемый
|
||||
способ наружу — WireGuard-туннель, внутри которого идёт простой UDP. «Голый»
|
||||
неаутентифицированный UDP допустим только в доверенной локальной сети.
|
||||
- **Обратный heartbeat.** RX шлёт на адрес источника последнего CONTROL
|
||||
маленький служебный пакет (~5 раз/с): magic `CB 01`, флаг собственного
|
||||
failsafe, последний принятый seq; при включённом ключе — тоже под HMAC. TX
|
||||
принимает их на тот же сокет (сквозь NAT проходит, т.к. он сам инициировал
|
||||
поток) и показывает в логе, **отвечает ли приёмник** и не ушёл ли тот в
|
||||
failsafe. Это чисто служебный PC-трафик, STM в нём не участвует, поэтому он не
|
||||
в зеркале протокола, а в самом `bridge.py`. На выдачу SBUS и на основной поток
|
||||
управления heartbeat не влияет.
|
||||
- **Индикация для оператора.** Если запустить tx в терминале, он показывает одну
|
||||
живую строку, обновляемую на месте: зелёное `● СВЯЗЬ ЕСТЬ`, жёлтое
|
||||
`● СВЯЗЬ ЕСТЬ (приёмник в failsafe)` или красное `● СВЯЗИ НЕТ`. Под systemd
|
||||
(вывод не в терминал) вместо строки идут события в журнал по смене состояния.
|
||||
|
||||
## FAILSAFE
|
||||
|
||||
@@ -206,3 +218,24 @@ Payload `CONTROL` (LE): `seq:u32`, `t_ms:u32`, `flags:u8`, `ch[16]:u16` = 41 б
|
||||
|
||||
Локальная проверка без сети: оба экземпляра на одной машине с `--peer 127.0.0.1`
|
||||
и двумя STM по USB; SBUS с RX снять `tools/decode.py` и сверить с осями стика TX.
|
||||
|
||||
Параметры можно задавать через env (`CART_BRIDGE_ROLE/PEER/BIND/DEVICE/KEY/
|
||||
LOG_LEVEL`), CLI их переопределяет.
|
||||
|
||||
## Автозапуск: systemd-службы
|
||||
|
||||
Для постоянной работы мост ставится службами: `cart-bridge-tx` (отправитель) и
|
||||
`cart-bridge-rx` (приёмник), по одной роли на машину. Юниты, примеры конфигов и
|
||||
установщик — в каталоге `deploy/`:
|
||||
|
||||
```sh
|
||||
cd deploy
|
||||
sudo ./install-bridge.sh tx # на машине у пульта
|
||||
sudo ./install-bridge.sh rx # на машине у тележки
|
||||
```
|
||||
|
||||
Установщик подставляет реальные пути (python из `.venv`, `bridge.py`, рабочий
|
||||
каталог) и пользователя, кладёт конфиги в `/etc/cart-bridge/{tx,rx}.env`. Там
|
||||
задаются `CART_BRIDGE_PEER`/`BIND` и общий `CART_BRIDGE_KEY` (должен совпадать на
|
||||
обеих сторонах). Логи и индикация «отвечает ли приёмник» — `journalctl -u
|
||||
cart-bridge-tx -f`. Подробности — `deploy/README.md`.
|
||||
|
||||
Reference in New Issue
Block a user