5 Commits

Author SHA1 Message Date
c65ba80b9d move all mqtt publishing functions to mqtt module 2026-05-10 17:06:37 +02:00
98289cd7fa refctor: TankInfo structure (consistent layout)
- fix: use tagged enum serialization for TankError
- fix: rename TankInfo fields for consistent naming (volume_ml, pct, water_temp_c)
- renamed some fields for better clarity on contained value
2026-05-10 17:06:35 +02:00
b88e292a43 refactor: PlantInfo structure (consistent layout)
- fix: use tagged enum serialization for MoistureSensorError and PumpError
- fix: flatten PlantInfo sensors to SensorTelemetry with top-level moisture_pct
2026-05-10 17:06:33 +02:00
7eb98ead8a refactor: BatteryInfo structure (consistent layout)
- use tagged enum serialization for BatteryError
- flatten BatteryInfo telemetry with consistent field names and typed error
2026-05-10 17:06:32 +02:00
7954052f5d fix: serialize firmware/state as JSON instead of Debug format 2026-05-10 17:06:27 +02:00

View File

@@ -221,18 +221,12 @@ where
let mut data_store = Vec::new(); let mut data_store = Vec::new();
let mut total_read = 0; let mut total_read = 0;
loop { loop {
let left = max_read - total_read;
let mut buf = [0_u8; 64]; let mut buf = [0_u8; 64];
let s_buf = if buf.len() <= left { let read = request.read(&mut buf).await?;
&mut buf
} else {
&mut buf[0..left]
};
let read = request.read(s_buf).await?;
if read == 0 { if read == 0 {
break; break;
} }
let actual_data = &s_buf[0..read]; let actual_data = &buf[0..read];
total_read += read; total_read += read;
if total_read > max_read { if total_read > max_read {
bail!("Request too large {total_read} > {max_read}"); bail!("Request too large {total_read} > {max_read}");