From 0d495d0f56e818f9694bd510eac66373dbaf443f Mon Sep 17 00:00:00 2001 From: ju6ge Date: Fri, 12 Sep 2025 00:05:52 +0200 Subject: [PATCH] probalby found most of the import related stuff, now the real refactor begins --- rust/src/hal/esp.rs | 2 +- rust/src/hal/mod.rs | 9 ++++----- rust/src/hal/v3_hal.rs | 10 ++++------ rust/src/hal/v4_hal.rs | 10 +++------- rust/src/hal/v4_sensor.rs | 1 + rust/src/log/mod.rs | 1 + rust/src/main.rs | 14 +++++++++----- rust/src/plant_state.rs | 1 + 8 files changed, 24 insertions(+), 24 deletions(-) diff --git a/rust/src/hal/esp.rs b/rust/src/hal/esp.rs index 363e95a..dfb77f3 100644 --- a/rust/src/hal/esp.rs +++ b/rust/src/hal/esp.rs @@ -6,7 +6,7 @@ use anyhow::{anyhow, bail, Context}; use chrono::{DateTime, Utc}; use serde::Serialize; -use alloc::{vec::Vec, string::String}; +use alloc::{vec::Vec, string::{String, ToString}}; #[link_section = ".rtc.data"] static mut LAST_WATERING_TIMESTAMP: [i64; PLANT_COUNT] = [0; PLANT_COUNT]; diff --git a/rust/src/hal/mod.rs b/rust/src/hal/mod.rs index 4555937..3dd4355 100644 --- a/rust/src/hal/mod.rs +++ b/rust/src/hal/mod.rs @@ -17,6 +17,7 @@ use crate::{ }, log::{log, LogMessage}, }; +use alloc::boxed::Box; use anyhow::{Ok, Result}; use battery::BQ34Z100G1; use bq34z100::Bq34z100g1Driver; @@ -45,18 +46,16 @@ use esp_idf_sys::{ }; use esp_ota::mark_app_valid; use measurements::{Current, Voltage}; -use once_cell::sync::Lazy; -use std::result::Result::Ok as OkStd; -use std::sync::Mutex; -use std::time::Duration; +use embassy_sync::{Mutex, LazyLock}; use esp_idf_hal::can::CAN; +use crate::alloc::string::ToString; //Only support for 8 right now! pub const PLANT_COUNT: usize = 8; const TANK_MULTI_SAMPLE: usize = 11; -pub static I2C_DRIVER: Lazy>> = Lazy::new(PlantHal::create_i2c); +pub static I2C_DRIVER: LazyLock>> = LazyLock::new(PlantHal::create_i2c); fn deep_sleep(duration_in_ms: u64) -> ! { unsafe { diff --git a/rust/src/hal/v3_hal.rs b/rust/src/hal/v3_hal.rs index 4f0de53..1508407 100644 --- a/rust/src/hal/v3_hal.rs +++ b/rust/src/hal/v3_hal.rs @@ -10,14 +10,12 @@ use crate::{ }; use anyhow::{bail, Ok, Result}; use embedded_hal::digital::OutputPin; -use esp_idf_hal::{ - gpio::{AnyInputPin, IOPin, InputOutput, PinDriver, Pull}, - pcnt::{PcntChannel, PcntChannelConfig, PcntControlMode, PcntCountMode, PcntDriver, PinIndex}, -}; -use esp_idf_sys::{gpio_hold_dis, gpio_hold_en}; use measurements::{Current, Voltage}; use plant_ctrl2::sipo::ShiftRegister40; -use std::result::Result::Ok as OkStd; +use core::result::Result::Ok as OkStd; +use alloc::string::ToString; +use alloc::boxed::Box; +use esp_hall::gpio::Pull; const PUMP8_BIT: usize = 0; const PUMP1_BIT: usize = 1; diff --git a/rust/src/hal/v4_hal.rs b/rust/src/hal/v4_hal.rs index 1d10f81..b6f81e9 100644 --- a/rust/src/hal/v4_hal.rs +++ b/rust/src/hal/v4_hal.rs @@ -12,12 +12,6 @@ use crate::log::{log, LogMessage}; use anyhow::bail; use embedded_hal::digital::OutputPin; use embedded_hal_bus::i2c::MutexDevice; -use esp_idf_hal::gpio::{AnyInputPin, IOPin, InputOutput, Output, PinDriver, Pull}; -use esp_idf_hal::i2c::I2cDriver; -use esp_idf_hal::pcnt::{ - PcntChannel, PcntChannelConfig, PcntControlMode, PcntCountMode, PcntDriver, PinIndex, -}; -use esp_idf_sys::{gpio_hold_dis, gpio_hold_en}; use ina219::address::{Address, Pin}; use ina219::calibration::UnCalibrated; use ina219::configuration::{Configuration, OperatingMode}; @@ -27,7 +21,9 @@ use pca9535::{GPIOBank, Pca9535Immediate, StandardExpanderInterface}; use std::result::Result::Ok as OkStd; use embedded_can::Frame; use embedded_can::StandardId; -use esp_idf_hal::can; +use alloc::string::ToString; +use alloc::boxed::Box; +use esp_hal::gpio::Pull; pub enum Charger<'a> { SolarMpptV1 { diff --git a/rust/src/hal/v4_sensor.rs b/rust/src/hal/v4_sensor.rs index 3fcfcf2..4b1c331 100644 --- a/rust/src/hal/v4_sensor.rs +++ b/rust/src/hal/v4_sensor.rs @@ -1,3 +1,4 @@ +use alloc::string::ToString; use embedded_hal_bus::i2c::MutexDevice; use esp_idf_hal::can::CanDriver; use esp_idf_hal::delay::Delay; diff --git a/rust/src/log/mod.rs b/rust/src/log/mod.rs index 17e5b08..3658548 100644 --- a/rust/src/log/mod.rs +++ b/rust/src/log/mod.rs @@ -1,4 +1,5 @@ use alloc::string::ToString; +use alloc::vec::Vec; use serde::Serialize; use std::{collections::HashMap, sync::Mutex}; use strum::EnumIter; diff --git a/rust/src/main.rs b/rust/src/main.rs index d26cdb2..340ff37 100644 --- a/rust/src/main.rs +++ b/rust/src/main.rs @@ -11,7 +11,9 @@ use crate::{ hal::{PlantHal, HAL, PLANT_COUNT}, //webserver::httpd, }; +use core::sync::atomic::Ordering; use alloc::borrow::ToOwned; +use alloc::sync::Arc; use alloc::fmt::format; use alloc::string::{String, ToString}; use anyhow::{bail, Context}; @@ -19,10 +21,12 @@ use chrono::{DateTime, Datelike, Timelike, Utc}; use chrono_tz::Tz::{self, UTC}; use embassy_executor::Spawner; use hal::battery::BatteryState; +use esp_hal::{timer::systimer::SystemTimer, clock::CpuClock, delay::Delay}; +use esp_println::logger; use log::{log, LogMessage}; use plant_state::PlantState; use serde::{Deserialize, Serialize}; -use embassy_sync::{Mutex, LazyLock}; +use embassy_sync::{Mutex, LazyLock, mutex::MutexGuard}; use portable_atomic::AtomicBool; use tank::*; mod config; @@ -549,7 +553,7 @@ fn safe_main() -> anyhow::Result<()> { //TODO //mark_app_valid(); - let stay_alive_mqtt = STAY_ALIVE.load(std::sync::atomic::Ordering::Relaxed); + let stay_alive_mqtt = STAY_ALIVE.load(Ordering::Relaxed); let stay_alive = stay_alive_mqtt; log::info!("Check stay alive, current state is {}", stay_alive); @@ -961,11 +965,11 @@ fn wait_infinity(wait_type: WaitType, reboot_now: Arc) -> ! { delay_handle.delay_ms(delay); if wait_type == WaitType::MqttConfig - && !STAY_ALIVE.load(std::sync::atomic::Ordering::Relaxed) + && !STAY_ALIVE.load(Ordering::Relaxed) { - reboot_now.store(true, std::sync::atomic::Ordering::Relaxed); + reboot_now.store(true, Ordering::Relaxed); } - if reboot_now.load(std::sync::atomic::Ordering::Relaxed) { + if reboot_now.load(Ordering::Relaxed) { //ensure clean http answer Delay::new_default().delay_ms(500); BOARD_ACCESS.lock().unwrap().board_hal.deep_sleep(1); diff --git a/rust/src/plant_state.rs b/rust/src/plant_state.rs index 01cdbf2..b7993aa 100644 --- a/rust/src/plant_state.rs +++ b/rust/src/plant_state.rs @@ -3,6 +3,7 @@ use crate::{ hal::{Sensor, HAL}, in_time_range, }; +use alloc::string::String; use chrono::{DateTime, TimeDelta, Utc}; use chrono_tz::Tz; use serde::{Deserialize, Serialize};