From 5a30e91800b201aade1aca847b4953d53a2c25f9 Mon Sep 17 00:00:00 2001 From: Andy Killorin <37423245+Speedy6451@users.noreply.github.com> Date: Sun, 19 Jan 2025 01:20:13 -0500 Subject: [PATCH] cam state in telemetry --- controller/src/main.rs | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/controller/src/main.rs b/controller/src/main.rs index 86f9c3f..7ce17cc 100644 --- a/controller/src/main.rs +++ b/controller/src/main.rs @@ -30,7 +30,7 @@ use log::*; use embassy_executor::Spawner; use embassy_net::tcp::TcpSocket; use embassy_net::{Config, StackResources}; -use embassy_rp::bind_interrupts; +use embassy_rp::{bind_interrupts, watchdog}; use embassy_rp::clocks::RoscRng; use embassy_rp::gpio::{Input, Level, Output, Pull}; use embassy_rp::peripherals::{DMA_CH0, PIO0, USB}; @@ -278,7 +278,7 @@ async fn main(spawner: Spawner) { if let Ok((data, _ts)) = CHANNEL.try_receive() { let telem = TelemetryPacket { sensors: data, - voltage: 0.0, // TODO + cam_state: cam_state.borrow().to_telem(), }; if let Ok(telem) = postcard::to_slice(&telem, &mut telem_buf) { @@ -310,6 +310,17 @@ enum CamState { Idle, } +impl CamState { + fn to_telem(&self) -> common::CamState { + match self { + Self::Override(_) | Self::Fire => common::CamState::Firing, + Self::Charging(_) => common::CamState::Charging, + Self::Charged => common::CamState::Charged, + Self::Idle => common::CamState::Idle, + } + } +} + #[embassy_executor::task] async fn cam_manager(mut cam: Pwm<'static>, limit: Input<'static>, cam_state: &'static RefCell) { loop {