From 02c9486e983fa32a7c45b5607e8423ac41ee0cba Mon Sep 17 00:00:00 2001 From: Empire Date: Sun, 15 Mar 2026 20:28:53 +0100 Subject: [PATCH] canbus fix and ota adjustments --- Software/MainBoard/rust/src/hal/esp.rs | 10 +++++----- Software/MainBoard/rust/src/hal/v4_hal.rs | 4 ++-- Software/MainBoard/rust/src/main.rs | 5 ----- Software/MainBoard/rust/src_webpack/src/main.ts | 2 ++ Software/MainBoard/rust/src_webpack/src/ota.html | 8 ++------ 5 files changed, 11 insertions(+), 18 deletions(-) diff --git a/Software/MainBoard/rust/src/hal/esp.rs b/Software/MainBoard/rust/src/hal/esp.rs index 6f576dd..755f294 100644 --- a/Software/MainBoard/rust/src/hal/esp.rs +++ b/Software/MainBoard/rust/src/hal/esp.rs @@ -269,16 +269,16 @@ impl Esp<'_> { let ntp_addrs = stack .dns_query(NTP_SERVER, DnsQueryType::A) - .await - .expect("Failed to resolve DNS"); - if ntp_addrs.is_empty() { + .await; + if ntp_addrs.is_err() { bail!("Failed to resolve DNS"); } - info!("NTP server: {ntp_addrs:?}"); + let ntp = ntp_addrs.unwrap()[0]; + info!("NTP server: {ntp:?}"); let mut counter = 0; loop { - let addr: IpAddr = ntp_addrs[0].into(); + let addr: IpAddr = ntp.into(); let timeout = get_time(SocketAddr::from((addr, 123)), &socket, context) .with_timeout(Duration::from_millis((_max_wait_ms / 10) as u64)) .await; diff --git a/Software/MainBoard/rust/src/hal/v4_hal.rs b/Software/MainBoard/rust/src/hal/v4_hal.rs index 0d20d4f..a871273 100644 --- a/Software/MainBoard/rust/src/hal/v4_hal.rs +++ b/Software/MainBoard/rust/src/hal/v4_hal.rs @@ -357,7 +357,7 @@ impl<'a> BoardInteraction<'a> for V4<'a> { } async fn measure_moisture_hz(&mut self) -> FatResult { self.can_power.set_high(); - Timer::after_millis(1000).await; + Timer::after_millis(500).await; let config = self.twai_config.take().expect("twai config not set"); let mut twai = config.into_async().start(); @@ -365,7 +365,7 @@ impl<'a> BoardInteraction<'a> for V4<'a> { let mut moistures = Moistures::default(); let _ = wait_for_can_measurements(&mut twai, &mut moistures) - .with_timeout(Duration::from_millis(5000)) + .with_timeout(Duration::from_millis(1000)) .await; let config = twai.stop().into_blocking(); diff --git a/Software/MainBoard/rust/src/main.rs b/Software/MainBoard/rust/src/main.rs index 96ff5e3..a9d26dd 100644 --- a/Software/MainBoard/rust/src/main.rs +++ b/Software/MainBoard/rust/src/main.rs @@ -510,11 +510,6 @@ async fn safe_main(spawner: Spawner) -> FatResult<()> { .unwrap_or(BatteryState::Unknown); info!("Battery state is {battery_state:?}"); - let state_of_charge = match &battery_state { - BatteryState::Unknown => 0, - BatteryState::Info(data) => data.state_of_charge, - }; - let mut light_state = LightState { enabled: board.board_hal.get_config().night_lamp.enabled, ..Default::default() diff --git a/Software/MainBoard/rust/src_webpack/src/main.ts b/Software/MainBoard/rust/src_webpack/src/main.ts index a9dc729..5e4ed1f 100644 --- a/Software/MainBoard/rust/src_webpack/src/main.ts +++ b/Software/MainBoard/rust/src_webpack/src/main.ts @@ -198,6 +198,8 @@ export class Controller { const crc = this.crc32(data); const size = data.length; + console.log("Uploading new firmware with size " + size + " and crc " + crc + "") + const payload = new Uint8Array(size + 8); const view = new DataView(payload.buffer); view.setUint32(0, size, true); diff --git a/Software/MainBoard/rust/src_webpack/src/ota.html b/Software/MainBoard/rust/src_webpack/src/ota.html index 0d18370..318e1cf 100644 --- a/Software/MainBoard/rust/src_webpack/src/ota.html +++ b/Software/MainBoard/rust/src_webpack/src/ota.html @@ -35,12 +35,8 @@
- State0: - -
-
- State1: - + State: +