1
Fork 0

cam state in telemetry

This commit is contained in:
Andy Killorin 2025-01-19 01:20:13 -05:00
parent f532dd6d70
commit 5a30e91800
Signed by: ank
GPG key ID: 23F9463ECB67FE8C

View file

@ -30,7 +30,7 @@ use log::*;
use embassy_executor::Spawner; use embassy_executor::Spawner;
use embassy_net::tcp::TcpSocket; use embassy_net::tcp::TcpSocket;
use embassy_net::{Config, StackResources}; use embassy_net::{Config, StackResources};
use embassy_rp::bind_interrupts; use embassy_rp::{bind_interrupts, watchdog};
use embassy_rp::clocks::RoscRng; use embassy_rp::clocks::RoscRng;
use embassy_rp::gpio::{Input, Level, Output, Pull}; use embassy_rp::gpio::{Input, Level, Output, Pull};
use embassy_rp::peripherals::{DMA_CH0, PIO0, USB}; 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() { if let Ok((data, _ts)) = CHANNEL.try_receive() {
let telem = TelemetryPacket { let telem = TelemetryPacket {
sensors: data, sensors: data,
voltage: 0.0, // TODO cam_state: cam_state.borrow().to_telem(),
}; };
if let Ok(telem) = postcard::to_slice(&telem, &mut telem_buf) { if let Ok(telem) = postcard::to_slice(&telem, &mut telem_buf) {
@ -310,6 +310,17 @@ enum CamState {
Idle, 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] #[embassy_executor::task]
async fn cam_manager(mut cam: Pwm<'static>, limit: Input<'static>, cam_state: &'static RefCell<CamState>) { async fn cam_manager(mut cam: Pwm<'static>, limit: Input<'static>, cam_state: &'static RefCell<CamState>) {
loop { loop {