init
This commit is contained in:
51
README.md
Normal file
51
README.md
Normal file
@@ -0,0 +1,51 @@
|
||||
# Серійний релеювальник Heartbeat
|
||||
|
||||
Цей репозиторій містить невеликий Python‑скрипт, який слухає серійний порт,
|
||||
шукає JSON‑heartbeat повідомлення та відповідає `{"hb": 2}` на `{"hb": 1}`.
|
||||
Його можна запускати як звичайну програму або як сервіс systemd із підтримкою
|
||||
watchdog.
|
||||
|
||||
## Вимоги
|
||||
|
||||
- Python 3.10+
|
||||
- `pyserial`
|
||||
- `sdnotify` (необов’язково, але потрібен для інтеграції з systemd)
|
||||
|
||||
Встановіть залежності в оточення:
|
||||
|
||||
```bash
|
||||
python3 -m venv .venv
|
||||
. .venv/bin/activate
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
## Ручний запуск
|
||||
|
||||
```bash
|
||||
python3 serial_heartbeat.py --port /dev/ttyUSB0 --baudrate 115200 --log-level DEBUG
|
||||
```
|
||||
|
||||
Аргументи:
|
||||
|
||||
- `--port` (обов’язково): шлях до серійного пристрою (наприклад, `/dev/ttyUSB0`).
|
||||
- `--baudrate`: за замовчуванням 9600.
|
||||
- `--log-level`: будь-який рівень `logging`, типово `INFO`.
|
||||
|
||||
## Сервіс systemd
|
||||
|
||||
1. Скопіюйте `serial-heartbeat.service` в `/etc/systemd/system/serial-heartbeat.service`.
|
||||
2. Відкоригуйте шляхи, швидкість та пристрій за потреби.
|
||||
3. Перезавантажте systemd і увімкніть сервіс:
|
||||
|
||||
```bash
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl enable --now serial-heartbeat
|
||||
```
|
||||
|
||||
Сервіс використовує `Type=notify`, тож systemd очікує сигнал готовності і
|
||||
контролює watchdog з таймаутом 20 секунд.
|
||||
|
||||
## Розробка
|
||||
|
||||
- `python3 -m py_compile serial_heartbeat.py` — швидка перевірка синтаксису.
|
||||
- Увімкніть рівень журналювання DEBUG, щоб переглядати JSON‑трафік у серійному каналі.
|
||||
Reference in New Issue
Block a user