Part 1 of V3 extraction in preperation of v4 and v3 software merge
This commit is contained in:
@@ -8,7 +8,6 @@ use anyhow::bail;
|
||||
use chrono::DateTime;
|
||||
use core::result::Result::Ok;
|
||||
use embedded_svc::http::Method;
|
||||
use esp_idf_hal::delay::Delay;
|
||||
use esp_idf_svc::http::server::{Configuration, EspHttpConnection, EspHttpServer, Request};
|
||||
use esp_idf_sys::{settimeofday, timeval, vTaskDelay};
|
||||
use esp_ota::OtaUpdate;
|
||||
@@ -21,6 +20,7 @@ use std::{
|
||||
use url::Url;
|
||||
|
||||
use crate::config::PlantControllerConfig;
|
||||
use crate::plant_hal::BoardInteraction;
|
||||
use crate::plant_state::MoistureSensorState;
|
||||
|
||||
#[derive(Serialize, Debug)]
|
||||
@@ -351,45 +351,6 @@ fn ota(
|
||||
anyhow::Ok(None)
|
||||
}
|
||||
|
||||
fn flash_bq(filename: &str, dryrun: bool) -> anyhow::Result<()> {
|
||||
let mut board = BOARD_ACCESS.lock().unwrap();
|
||||
|
||||
let mut toggle = true;
|
||||
let delay = Delay::new(1);
|
||||
|
||||
let file_handle = board.get_file_handle(filename, false)?;
|
||||
|
||||
let mut reader = std::io::BufRead::lines(std::io::BufReader::with_capacity(512, file_handle));
|
||||
let mut line = 0;
|
||||
loop {
|
||||
board.general_fault(toggle);
|
||||
toggle = !toggle;
|
||||
|
||||
delay.delay_us(2);
|
||||
line += 1;
|
||||
match reader.next() {
|
||||
Some(next) => {
|
||||
let input = next?;
|
||||
println!("flashing bq34z100 dryrun:{dryrun} line {line} payload: {input}");
|
||||
match board.flash_bq34_z100(&input, dryrun) {
|
||||
Ok(_) => {
|
||||
println!("ok")
|
||||
}
|
||||
Err(err) => {
|
||||
bail!(
|
||||
"Error flashing bq34z100 in dryrun: {dryrun} line: {line} error: {err}"
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
None => break,
|
||||
}
|
||||
}
|
||||
println!("Finished flashing file {line} lines processed");
|
||||
board.general_fault(false);
|
||||
anyhow::Ok(())
|
||||
}
|
||||
|
||||
fn query_param(uri: &str, param_name: &str) -> Option<std::string::String> {
|
||||
println!("{uri} get {param_name}");
|
||||
let parsed = Url::parse(&format!("http://127.0.0.1/{uri}")).unwrap();
|
||||
@@ -630,35 +591,6 @@ pub fn httpd(reboot_now: Arc<AtomicBool>) -> Box<EspHttpServer<'static>> {
|
||||
cors_response(request, 200, "")
|
||||
})
|
||||
.unwrap();
|
||||
|
||||
server
|
||||
.fn_handler("/flashbattery", Method::Post, move |request| {
|
||||
let filename = query_param(request.uri(),"filename").unwrap();
|
||||
let dryrun = true;
|
||||
match flash_bq(&filename, false) {
|
||||
Ok(_) => {
|
||||
if !dryrun {
|
||||
match flash_bq(&filename, true) {
|
||||
Ok(_) => {
|
||||
cors_response(request, 200, "Sucessfully flashed bq34z100")?;
|
||||
},
|
||||
Err(err) => {
|
||||
let info = format!("Could not flash bq34z100, could be bricked now! {filename} {err:?}");
|
||||
cors_response(request, 500, &info)?;
|
||||
},
|
||||
}
|
||||
} else {
|
||||
cors_response(request, 200, "Sucessfully processed bq34z100")?;
|
||||
}
|
||||
},
|
||||
Err(err) => {
|
||||
let info = format!("Could not process firmware file for, bq34z100, refusing to flash! {filename} {err:?}");
|
||||
cors_response(request, 500, &info)?;
|
||||
},
|
||||
};
|
||||
anyhow::Ok(())
|
||||
})
|
||||
.unwrap();
|
||||
unsafe { vTaskDelay(1) };
|
||||
server
|
||||
.fn_handler("/", Method::Get, move |request| {
|
||||
|
Reference in New Issue
Block a user