diff --git a/spinnyboy_rust/src/bin/main.rs b/spinnyboy_rust/src/bin/main.rs index db46560..a1ffa8b 100644 --- a/spinnyboy_rust/src/bin/main.rs +++ b/spinnyboy_rust/src/bin/main.rs @@ -240,6 +240,7 @@ fn main() -> ! { let set_point = target_rpm; coat_timer.start(); let mut current_rpm = 0; + //first round! while !coat_timer.is_interrupt_set() { dshot_esc.process(); //let control_val = dc_driver:: @@ -274,19 +275,25 @@ fn main() -> ! { rprintln!("control:{},rpm:{}", control, current_rpm); //first we send the RPM! if display.write_ready() { - let running_rpm = format!("rpm.val={}", current_rpm); + let running_rpm = format!("rpm1.val={}", current_rpm); display.send_command(running_rpm.to_string().as_bytes()); - } - if display.write_ready() { let counter = format!("counter.val={}", 1234); display.send_command(counter.to_string().as_bytes()); } + if display.read_ready(){ + match display.read_command() { + Ok(Command::DoDryRun) =>{ + break; + }, + _ => {//we don't care about the rest} + } + } } rprintln!("COATING done!"); rprintln!("RPM_READ_FAILS {}", rpm_fail_ctr); started = false; - display.send_command(b"page page0"); + display.send_command(b"page page3"); } } } diff --git a/spinnyboy_rust/src/bin/peripherals/mod.rs b/spinnyboy_rust/src/bin/peripherals/mod.rs index 4f881e2..b410fd4 100644 --- a/spinnyboy_rust/src/bin/peripherals/mod.rs +++ b/spinnyboy_rust/src/bin/peripherals/mod.rs @@ -9,6 +9,7 @@ pub enum Command { CommandSuccess, SetRpm2(u32), SetTimer2(u32), + DoDryRun, } #[derive(Debug)] pub enum ErrCommand { diff --git a/spinnyboy_rust/src/bin/peripherals/nextion.rs b/spinnyboy_rust/src/bin/peripherals/nextion.rs index d96a6a7..73158b9 100644 --- a/spinnyboy_rust/src/bin/peripherals/nextion.rs +++ b/spinnyboy_rust/src/bin/peripherals/nextion.rs @@ -124,6 +124,7 @@ impl<'a> Nextion<'a> { let time = u32::from_le_bytes(buf[1..5].try_into().expect("failed to parse rpm!")); Ok(Command::SetTimer2(time)) } + 08 => Ok(Command::DoDryRun), 00 => Ok(Command::CommandSuccess), _ => Err(ErrCommand::NoValidCmd), }