canbus fix and ota adjustments

This commit is contained in:
2026-03-15 20:28:53 +01:00
parent 2d2d7d16cd
commit 02c9486e98
5 changed files with 11 additions and 18 deletions

View File

@@ -269,16 +269,16 @@ impl Esp<'_> {
let ntp_addrs = stack let ntp_addrs = stack
.dns_query(NTP_SERVER, DnsQueryType::A) .dns_query(NTP_SERVER, DnsQueryType::A)
.await .await;
.expect("Failed to resolve DNS"); if ntp_addrs.is_err() {
if ntp_addrs.is_empty() {
bail!("Failed to resolve DNS"); bail!("Failed to resolve DNS");
} }
info!("NTP server: {ntp_addrs:?}"); let ntp = ntp_addrs.unwrap()[0];
info!("NTP server: {ntp:?}");
let mut counter = 0; let mut counter = 0;
loop { loop {
let addr: IpAddr = ntp_addrs[0].into(); let addr: IpAddr = ntp.into();
let timeout = get_time(SocketAddr::from((addr, 123)), &socket, context) let timeout = get_time(SocketAddr::from((addr, 123)), &socket, context)
.with_timeout(Duration::from_millis((_max_wait_ms / 10) as u64)) .with_timeout(Duration::from_millis((_max_wait_ms / 10) as u64))
.await; .await;

View File

@@ -357,7 +357,7 @@ impl<'a> BoardInteraction<'a> for V4<'a> {
} }
async fn measure_moisture_hz(&mut self) -> FatResult<Moistures> { async fn measure_moisture_hz(&mut self) -> FatResult<Moistures> {
self.can_power.set_high(); 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 config = self.twai_config.take().expect("twai config not set");
let mut twai = config.into_async().start(); let mut twai = config.into_async().start();
@@ -365,7 +365,7 @@ impl<'a> BoardInteraction<'a> for V4<'a> {
let mut moistures = Moistures::default(); let mut moistures = Moistures::default();
let _ = wait_for_can_measurements(&mut twai, &mut moistures) let _ = wait_for_can_measurements(&mut twai, &mut moistures)
.with_timeout(Duration::from_millis(5000)) .with_timeout(Duration::from_millis(1000))
.await; .await;
let config = twai.stop().into_blocking(); let config = twai.stop().into_blocking();

View File

@@ -510,11 +510,6 @@ async fn safe_main(spawner: Spawner) -> FatResult<()> {
.unwrap_or(BatteryState::Unknown); .unwrap_or(BatteryState::Unknown);
info!("Battery state is {battery_state:?}"); 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 { let mut light_state = LightState {
enabled: board.board_hal.get_config().night_lamp.enabled, enabled: board.board_hal.get_config().night_lamp.enabled,
..Default::default() ..Default::default()

View File

@@ -198,6 +198,8 @@ export class Controller {
const crc = this.crc32(data); const crc = this.crc32(data);
const size = data.length; const size = data.length;
console.log("Uploading new firmware with size " + size + " and crc " + crc + "")
const payload = new Uint8Array(size + 8); const payload = new Uint8Array(size + 8);
const view = new DataView(payload.buffer); const view = new DataView(payload.buffer);
view.setUint32(0, size, true); view.setUint32(0, size, true);

View File

@@ -35,12 +35,8 @@
<span class="otavalue" id="firmware_partition"></span> <span class="otavalue" id="firmware_partition"></span>
</div> </div>
<div class="flexcontainer"> <div class="flexcontainer">
<span class="otakey">State0:</span> <span class="otakey">State:</span>
<span class="otavalue" id="firmware_state0"></span> <span class="otavalue" id="firmware_state"></span>
</div>
<div class="flexcontainer">
<span class="otakey">State1:</span>
<span class="otavalue" id="firmware_state1"></span>
</div> </div>
<div class="flexcontainer"> <div class="flexcontainer">