ccs: tristar: allow network data read to fail

This commit is contained in:
Alex Janka 2025-01-10 14:56:55 +11:00
parent b8c2a8c114
commit 8c8aba919d

View file

@ -108,7 +108,7 @@ impl ModbusTimeout {
}
#[derive(Debug, Clone, Copy, Serialize, Deserialize)]
pub struct TristarSettings {
network: NetworkSettings,
network: Option<NetworkSettings>,
charge: ChargeSettings,
}
@ -685,12 +685,15 @@ impl Tristar {
}
pub async fn read_settings(&mut self) -> eyre::Result<TristarSettings> {
let network_data = self
let network = if let Ok(network_data) = self
.modbus
.read_holding_registers(NETWORK_DATA_ADDR_START, NETWORK_DATA_LENGTH)
.await?;
let network = NetworkSettings::from_buf(&network_data)?;
.await
{
Some(NetworkSettings::from_buf(&network_data)?)
} else {
None
};
let charge_data_1 = self
.modbus