Added crate for usb-serial protocol

This commit is contained in:
Sebastian 2024-10-03 16:06:17 +02:00
parent 86a33b97a9
commit bc557ccdeb
4 changed files with 82 additions and 0 deletions

10
protocol/Cargo.toml Normal file
View file

@ -0,0 +1,10 @@
[package]
name = "radomctl-protocol"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
serde = {version = "1.0.193", default-features = false, features = ["derive"]}
heapless = {version = "0.8.0", features = ["serde"]}

37
protocol/src/lib.rs Normal file
View file

@ -0,0 +1,37 @@
#![no_std]
use heapless::Vec;
use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, Debug, PartialEq)]
pub enum RadomMessage {
Status(StatusMessage),
}
#[derive(Serialize, Deserialize, Debug, PartialEq)]
pub enum HostMessage {
RequestStatus,
TriggerDFUBootloader,
}
#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)]
pub struct StatusMessage {
position: Position,
alarms: Vec<Alarm, 64>,
}
#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)]
pub struct Position {
az: f32,
el: f32,
az_endcoder: f32,
el_encoder: f32,
az_magnetic: f32,
el_magnetic: f32,
}
#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)]
pub enum Alarm {
AZEncoderFault,
ELEncoderFault,
}