get more functions online
This commit is contained in:
117
rust/src/main.rs
117
rust/src/main.rs
@@ -15,13 +15,12 @@ use esp_backtrace as _;
|
||||
use crate::config::PlantConfig;
|
||||
use crate::hal::esp_time;
|
||||
use crate::log::LOG_ACCESS;
|
||||
use crate::tank::WATER_FROZEN_THRESH;
|
||||
use crate::tank::{determine_tank_state, TankError, WATER_FROZEN_THRESH};
|
||||
use crate::webserver::httpd;
|
||||
use crate::FatError::FatResult;
|
||||
use crate::{
|
||||
config::BoardVersion::INITIAL,
|
||||
hal::{PlantHal, HAL, PLANT_COUNT},
|
||||
//webserver::httpd,
|
||||
};
|
||||
use ::log::{error, info, warn};
|
||||
use alloc::borrow::ToOwned;
|
||||
@@ -162,30 +161,6 @@ async fn safe_main(spawner: Spawner) -> FatResult<()> {
|
||||
version.git_hash, version.build_time
|
||||
);
|
||||
|
||||
//TODO
|
||||
|
||||
// TODO
|
||||
//let ota_state_string = unsafe {
|
||||
//esp_ota_get_state_partition(running_partition, &mut ota_state);
|
||||
//if ota_state == esp_ota_img_states_t_ESP_OTA_IMG_NEW {
|
||||
//"ESP_OTA_IMG_NEW"
|
||||
//} else if ota_state == esp_ota_img_states_t_ESP_OTA_IMG_PENDING_VERIFY {
|
||||
//"ESP_OTA_IMG_PENDING_VERIFY"
|
||||
//} else if ota_state == esp_ota_img_states_t_ESP_OTA_IMG_VALID {
|
||||
//"ESP_OTA_IMG_VALID"
|
||||
//} else if ota_state == esp_ota_img_states_t_ESP_OTA_IMG_INVALID {
|
||||
//"ESP_OTA_IMG_INVALID"
|
||||
//} else if ota_state == esp_ota_img_states_t_ESP_OTA_IMG_ABORTED {
|
||||
//"ESP_OTA_IMG_ABORTED"
|
||||
//} else if ota_state == esp_ota_img_states_t_ESP_OTA_IMG_UNDEFINED {
|
||||
//"ESP_OTA_IMG_UNDEFINED"
|
||||
//} else {
|
||||
//&format!("unknown {ota_state}")
|
||||
//}
|
||||
//};
|
||||
//log(LogMessage::PartitionState, 0, 0, "", ota_state_string);
|
||||
let _ota_state_string = "unknown";
|
||||
|
||||
board.board_hal.general_fault(false).await;
|
||||
let cur = match board.board_hal.get_rtc_module().get_rtc_time().await {
|
||||
Ok(value) => value,
|
||||
@@ -348,41 +323,61 @@ async fn safe_main(spawner: Spawner) -> FatResult<()> {
|
||||
}
|
||||
|
||||
let _dry_run = false;
|
||||
//
|
||||
// let tank_state = determine_tank_state(&mut board);
|
||||
//
|
||||
// if tank_state.is_enabled() {
|
||||
// if let Some(err) = tank_state.got_error(&board.board_hal.get_config().tank) {
|
||||
// match err {
|
||||
// TankError::SensorDisabled => { /* unreachable */ }
|
||||
// TankError::SensorMissing(raw_value_mv) => log(
|
||||
// LogMessage::TankSensorMissing,
|
||||
// raw_value_mv as u32,
|
||||
// 0,
|
||||
// "",
|
||||
// "",
|
||||
// ).await,
|
||||
// TankError::SensorValueError { value, min, max } => log(
|
||||
// LogMessage::TankSensorValueRangeError,
|
||||
// min as u32,
|
||||
// max as u32,
|
||||
// &format!("{}", value),
|
||||
// "",
|
||||
// ).await,
|
||||
// TankError::BoardError(err) => {
|
||||
// log(LogMessage::TankSensorBoardError, 0, 0, "", &err.to_string()).await
|
||||
// }
|
||||
// }
|
||||
// // disabled cannot trigger this because of wrapping if is_enabled
|
||||
// board.board_hal.general_fault(true).await;
|
||||
// } else if tank_state
|
||||
// .warn_level(&board.board_hal.get_config().tank)
|
||||
// .is_ok_and(|warn| warn)
|
||||
// {
|
||||
// log(LogMessage::TankWaterLevelLow, 0, 0, "", "").await;
|
||||
// board.board_hal.general_fault(true).await;
|
||||
// }
|
||||
// }
|
||||
|
||||
let tank_state = determine_tank_state(&mut board).await;
|
||||
|
||||
if tank_state.is_enabled() {
|
||||
if let Some(err) = tank_state.got_error(&board.board_hal.get_config().tank) {
|
||||
match err {
|
||||
TankError::SensorDisabled => { /* unreachable */ }
|
||||
TankError::SensorMissing(raw_value_mv) => {
|
||||
LOG_ACCESS
|
||||
.lock()
|
||||
.await
|
||||
.log(
|
||||
LogMessage::TankSensorMissing,
|
||||
raw_value_mv as u32,
|
||||
0,
|
||||
"",
|
||||
"",
|
||||
)
|
||||
.await
|
||||
}
|
||||
TankError::SensorValueError { value, min, max } => {
|
||||
LOG_ACCESS
|
||||
.lock()
|
||||
.await
|
||||
.log(
|
||||
LogMessage::TankSensorValueRangeError,
|
||||
min as u32,
|
||||
max as u32,
|
||||
&format!("{}", value),
|
||||
"",
|
||||
)
|
||||
.await
|
||||
}
|
||||
TankError::BoardError(err) => {
|
||||
LOG_ACCESS
|
||||
.lock()
|
||||
.await
|
||||
.log(LogMessage::TankSensorBoardError, 0, 0, "", &err.to_string())
|
||||
.await
|
||||
}
|
||||
}
|
||||
// disabled cannot trigger this because of wrapping if is_enabled
|
||||
board.board_hal.general_fault(true).await;
|
||||
} else if tank_state
|
||||
.warn_level(&board.board_hal.get_config().tank)
|
||||
.is_ok_and(|warn| warn)
|
||||
{
|
||||
LOG_ACCESS
|
||||
.lock()
|
||||
.await
|
||||
.log(LogMessage::TankWaterLevelLow, 0, 0, "", "")
|
||||
.await;
|
||||
board.board_hal.general_fault(true).await;
|
||||
}
|
||||
}
|
||||
|
||||
let mut _water_frozen = false;
|
||||
let water_temp: FatResult<f32> = match board.board_hal.get_tank_sensor() {
|
||||
|
||||
Reference in New Issue
Block a user