Skip to content

Commit b8ca76c

Browse files
committed
Implemented initial sansio code
1 parent 6df3d4c commit b8ca76c

File tree

6 files changed

+252
-24
lines changed

6 files changed

+252
-24
lines changed

Cargo.lock

Lines changed: 61 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

firmware/Cargo.lock

Lines changed: 28 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

firmware/src/networking/protocol/mod.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ pub use self::packets::Packets;
55

66
use defmt::debug;
77
use embassy_executor::task;
8+
use embassy_futures::select::select;
89
use firmware_protocol::{
910
BoardType, CbPacket, ImuType, McuType, SbPacket, SensorDataType, SensorStatus,
1011
};
@@ -30,6 +31,13 @@ pub async fn control_task(
3031
}
3132

3233
async fn do_work(packets: &Packets, quat: &Unreliable<Quat>) {
34+
let event = select(packets.clientbound.recv(), quat.wait()).await;
35+
use embassy_futures::select::Either;
36+
match event {
37+
Either::First(cb_packet) => todo!(),
38+
Either::Second(quat) => todo!(),
39+
}
40+
3341
match packets.clientbound.recv().await {
3442
// Identify ourself when discovery packet is received
3543
CbPacket::Discovery => {

networking/firmware_protocol/Cargo.toml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,15 @@ edition = "2021"
66

77
[dependencies]
88
deku = { version = "0.15", default-features = false, features = ["alloc"] }
9+
heapless = { version = "0.7", default-features = false }
10+
replace_with = { version = "0.1", default-features = false }
11+
derive_more = "0.99"
12+
913
# We support multiple versions of nalgebra since it changes so much.
1014
nalgebra031 = { package = "nalgebra", version = "0.31", default-features = false, optional = true }
1115
nalgebra030 = { package = "nalgebra", version = "0.30", default-features = false, optional = true }
1216

17+
1318
[dev-dependencies]
1419
nalgebra031 = { package = "nalgebra", version = "0.31" }
1520
nalgebra030 = { package = "nalgebra", version = "0.30" }

networking/firmware_protocol/src/lib.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ use deku::prelude::*;
2121
#[derive(Debug, PartialEq, DekuRead, DekuWrite)]
2222
#[deku(endian = "e", ctx = "e: deku::ctx::Endian")]
2323
pub struct SlimeQuaternion {
24-
pub i: f32,
25-
pub j: f32,
26-
pub k: f32,
24+
pub x: f32,
25+
pub y: f32,
26+
pub z: f32,
2727
pub w: f32,
2828
}
2929

0 commit comments

Comments
 (0)