Client → Server
{ "type": "system.ping", "id": 123 }Server → Client
{ "type": "system.pong", "id": 123 }Client → Server — задать состояние
{ "type": "pump.set", "on": true, "cutoff": 3800 }on(bool, optional, default=true) — включить/выключить насос.cutoff(int, optional) — порог отключения (raw).
Client → Server — запрос статуса
{ "type": "pump.status" }Server → Client — статус
{ "type": "pump.status", "on": false, "cutoff": 3800, "pressure": 3752 }on(bool) — текущее состояние насоса.cutoff(int) — активный порог (raw).pressure(int) — текущее давление (raw).
Client → Server — задать задержку и длительность импульса
{ "type": "inj.set", "delay": 10, "pulse": 10 }delay(uint16 ms, optional) — задержка.pulse(uint16 ms, optional) — длительность импульса.
Client → Server — открыть паттерн
{ "type": "inj.open", "pattern": [1, 2, 3, 4], "repeat": 0 }pattern(array) — последовательность инжекторов (макс. 32).repeat(long, optional, default=0) — число повторов.
Client → Server — остановить паттерн
{ "type": "inj.stop" }Client → Server — запросить статус
{ "type": "inj.status" }Server → Client — статус
{ "type": "inj.status", "running": true, "delay": 10, "pulse": 10 }running(bool) — идёт ли выполнение паттерна.delay(ms) — активная задержка.pulse(ms) — активная длительность.
Client → Server — запустить
{ "type": "timer.start", "time": 10000 }time(uint32 ms) — длительность таймера.
Client → Server — остановить
{ "type": "timer.stop" }Client → Server — запросить статус
{ "type": "timer.status" }Server → Client — статус
{ "type": "timer.status", "running": true, "remaining": 7250 }running(bool) — идёт ли отсчёт.remaining(uint32 ms) — оставшееся время.