fix: pump ID расхождение устранено, протокол актуализирован

Прошивка исправлена (aa5db288): валидация 0-7 → 1-8.
Документация обновлена — убраны предупреждения, добавлены ссылки на фикс.
This commit is contained in:
progl
2026-05-05 13:15:19 +03:00
parent e69665273c
commit cd7497b014
2 changed files with 9 additions and 15 deletions
+6 -12
View File
@@ -68,17 +68,17 @@ stateDiagram-v2
- MCP23017 → setPin(pin, state)
### `set/pump/{id}/run`
- Проверить id ∈ [0, 7] ⚠️ (см. расхождение ниже), time ∈ [1, 60000]
- Проверить id ∈ [1, 8], time ∈ [1, 60000]
- Включить помпу → таймер → выключить
### `set/pump/{id}/dispense`
- Проверить id ∈ [0, 7] ⚠️, grams ∈ [0.1, 1000]
- Проверить id ∈ [1, 8], grams ∈ [0.1, 1000]
- Рассчитать время через ml/sec калибровку помпы
- Включить → таймер → выключить
- Обновить счётчик `total_dispensed`
### `cmd/pump/{id}/stop`
- Проверить id ∈ [0, 7] ⚠️
- Проверить id ∈ [1, 8]
- Немедленно выключить помпу, сбросить таймер
### `set/preferences/all`
@@ -95,16 +95,10 @@ stateDiagram-v2
---
## ⚠️ Pump ID расхождение
## Pump ID: единый стандарт 1–8
| Сторона | Диапазон | Код |
|---------|----------|-----|
| Сервер (API serializer) | 18 | `min_value=1, max_value=8` |
| Прошивка (валидация) | 0–7 | `pumpId < 0 \|\| pumpId > 7` |
| Прошивка (итерация mixer) | 1pumpCount | `for pumpId = 1...pumpCount` |
**Следствие**: сервер отправляет `set/pump/8/run` → прошивка валидирует `8 > 7` → команда игнорируется.
**Рекомендация**: привести к единому стандарту 1-based (1–8). Исправить валидацию в `mqtt_callbacks.cpp` строки 457, 482, 507 на `pumpId < 1 || pumpId > 8`.
Сервер и прошивка используют 1-based индексацию (18).
Исправлено в прошивке: commit `aa5db288` — валидация `0-7``1-8` в `mqtt_callbacks.cpp`.
---