fix: use tagged enum serialization for MoistureSensorError and PumpError

This commit is contained in:
2026-05-10 02:46:22 +02:00
parent ddbe9d6a4b
commit 44d1ae547d

View File

@@ -12,10 +12,11 @@ const MOIST_SENSOR_MAX_FREQUENCY: f32 = 7500.; // 60kHz (500Hz margin)
const MOIST_SENSOR_MIN_FREQUENCY: f32 = 150.; // this is really, really dry, think like cactus levels const MOIST_SENSOR_MIN_FREQUENCY: f32 = 150.; // this is really, really dry, think like cactus levels
#[derive(Debug, PartialEq, Serialize)] #[derive(Debug, PartialEq, Serialize)]
#[serde(tag = "kind")]
pub enum MoistureSensorError { pub enum MoistureSensorError {
ShortCircuit { hz: f32, max: f32 }, ShortCircuit { hz: f32, max: f32 },
OpenLoop { hz: f32, min: f32 }, OpenLoop { hz: f32, min: f32 },
BoardError(String), BoardError { message: String },
} }
#[derive(Debug, PartialEq, Serialize)] #[derive(Debug, PartialEq, Serialize)]
@@ -49,6 +50,7 @@ impl MoistureSensorState {
impl MoistureSensorState {} impl MoistureSensorState {}
#[derive(Debug, PartialEq, Serialize)] #[derive(Debug, PartialEq, Serialize)]
#[serde(tag = "kind")]
pub enum PumpError { pub enum PumpError {
PumpNotWorking { PumpNotWorking {
failed_attempts: usize, failed_attempts: usize,
@@ -134,9 +136,9 @@ impl PlantState {
}, },
Err(err) => MoistureSensorState::SensorError(err), Err(err) => MoistureSensorState::SensorError(err),
}, },
Err(err) => MoistureSensorState::SensorError(MoistureSensorError::BoardError( Err(err) => MoistureSensorState::SensorError(MoistureSensorError::BoardError {
err.to_string(), message: err.to_string(),
)), })
} }
} else { } else {
MoistureSensorState::Disabled MoistureSensorState::Disabled
@@ -159,9 +161,9 @@ impl PlantState {
}, },
Err(err) => MoistureSensorState::SensorError(err), Err(err) => MoistureSensorState::SensorError(err),
}, },
Err(err) => MoistureSensorState::SensorError(MoistureSensorError::BoardError( Err(err) => MoistureSensorState::SensorError(MoistureSensorError::BoardError {
err.to_string(), message: err.to_string(),
)), })
} }
} else { } else {
MoistureSensorState::Disabled MoistureSensorState::Disabled