fix: pump ID расхождение устранено, протокол актуализирован
Прошивка исправлена (aa5db288): валидация 0-7 → 1-8. Документация обновлена — убраны предупреждения, добавлены ссылки на фикс.
This commit is contained in:
+6
-12
@@ -68,17 +68,17 @@ stateDiagram-v2
|
|||||||
- MCP23017 → setPin(pin, state)
|
- MCP23017 → setPin(pin, state)
|
||||||
|
|
||||||
### `set/pump/{id}/run`
|
### `set/pump/{id}/run`
|
||||||
- Проверить id ∈ [0, 7] ⚠️ (см. расхождение ниже), time ∈ [1, 60000]
|
- Проверить id ∈ [1, 8], time ∈ [1, 60000]
|
||||||
- Включить помпу → таймер → выключить
|
- Включить помпу → таймер → выключить
|
||||||
|
|
||||||
### `set/pump/{id}/dispense`
|
### `set/pump/{id}/dispense`
|
||||||
- Проверить id ∈ [0, 7] ⚠️, grams ∈ [0.1, 1000]
|
- Проверить id ∈ [1, 8], grams ∈ [0.1, 1000]
|
||||||
- Рассчитать время через ml/sec калибровку помпы
|
- Рассчитать время через ml/sec калибровку помпы
|
||||||
- Включить → таймер → выключить
|
- Включить → таймер → выключить
|
||||||
- Обновить счётчик `total_dispensed`
|
- Обновить счётчик `total_dispensed`
|
||||||
|
|
||||||
### `cmd/pump/{id}/stop`
|
### `cmd/pump/{id}/stop`
|
||||||
- Проверить id ∈ [0, 7] ⚠️
|
- Проверить id ∈ [1, 8]
|
||||||
- Немедленно выключить помпу, сбросить таймер
|
- Немедленно выключить помпу, сбросить таймер
|
||||||
|
|
||||||
### `set/preferences/all`
|
### `set/preferences/all`
|
||||||
@@ -95,16 +95,10 @@ stateDiagram-v2
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## ⚠️ Pump ID расхождение
|
## Pump ID: единый стандарт 1–8
|
||||||
|
|
||||||
| Сторона | Диапазон | Код |
|
Сервер и прошивка используют 1-based индексацию (1–8).
|
||||||
|---------|----------|-----|
|
Исправлено в прошивке: commit `aa5db288` — валидация `0-7` → `1-8` в `mqtt_callbacks.cpp`.
|
||||||
| Сервер (API serializer) | 1–8 | `min_value=1, max_value=8` |
|
|
||||||
| Прошивка (валидация) | 0–7 | `pumpId < 0 \|\| pumpId > 7` |
|
|
||||||
| Прошивка (итерация mixer) | 1–pumpCount | `for pumpId = 1...pumpCount` |
|
|
||||||
|
|
||||||
**Следствие**: сервер отправляет `set/pump/8/run` → прошивка валидирует `8 > 7` → команда игнорируется.
|
|
||||||
**Рекомендация**: привести к единому стандарту 1-based (1–8). Исправить валидацию в `mqtt_callbacks.cpp` строки 457, 482, 507 на `pumpId < 1 || pumpId > 8`.
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -172,10 +172,10 @@ Payload: строка `"connected"` — устройство подключил
|
|||||||
|
|
||||||
| Топик | Payload | Ограничения |
|
| Топик | Payload | Ограничения |
|
||||||
|-------|---------|------------|
|
|-------|---------|------------|
|
||||||
| `{UID}/set/pump/{id}/run` | `"5000"` (мс) | id: 1–7 ⚠️, время: 1–60000 мс |
|
| `{UID}/set/pump/{id}/run` | `"5000"` (мс) | id: 1–8, время: 1–60000 мс |
|
||||||
| `{UID}/set/pump/{id}/dispense` | `"50.5"` (граммы) | id: 1–7 ⚠️, граммы: 0.1–1000 |
|
| `{UID}/set/pump/{id}/dispense` | `"50.5"` (граммы) | id: 1–8, граммы: 0.1–1000 |
|
||||||
|
|
||||||
> ⚠️ **Pump ID расхождение**: сервер (API) принимает id 1–8, прошивка валидирует `pumpId < 0 || pumpId > 7` — id=8 будет отклонён прошивкой. Нужно либо выровнять API на 1–7, либо исправить прошивку на 0–8. Текущее рабочее значение: **1–7**.
|
> ✅ Pump ID: единый стандарт 1–8 (1-based). Исправлено в прошивке commit aa5db288.
|
||||||
|
|
||||||
### Настройки (`set/preferences/all`)
|
### Настройки (`set/preferences/all`)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user