1#![no_std]
2
3use heapless::Vec;
4use serde::{Deserialize, Serialize};
5
6pub type Error = ();
8
9#[cfg_attr(feature = "use-defmt", derive(defmt::Format))]
10#[derive(Debug, Serialize, Deserialize)]
11pub enum ToMcu {
12 I2c(ToMcuI2c),
13 Spi(ToMcuSpi),
14 Uart(ToMcuUart),
15 Ping,
16}
17
18#[cfg_attr(feature = "use-defmt", derive(defmt::Format))]
19#[derive(Debug, Serialize, Deserialize)]
20pub enum ToMcuI2c {
21 Write {
22 addr: u8,
23 output: Vec<u8, 64>,
24 },
25 Read {
26 addr: u8,
27 to_read: u32,
28 },
29 WriteThenRead {
30 addr: u8,
31 output: Vec<u8, 64>,
32 to_read: u32,
33 },
34}
35
36#[cfg_attr(feature = "use-defmt", derive(defmt::Format))]
37#[derive(Debug, Serialize, Deserialize)]
38pub enum ToMcuSpi {
39 Write { output: Vec<u8, 64> },
40 Transfer { output: Vec<u8, 64> },
41}
42
43#[cfg_attr(feature = "use-defmt", derive(defmt::Format))]
44#[derive(Debug, Serialize, Deserialize)]
45pub enum ToMcuUart {
46 Write { output: Vec<u8, 64> },
47 Flush,
48 Read,
49}
50
51#[cfg_attr(feature = "use-defmt", derive(defmt::Format))]
52#[derive(Debug, Serialize, Deserialize)]
53pub enum ToPc {
54 I2c(ToPcI2c),
55 Spi(ToPcSpi),
56 Uart(ToPcUart),
57 Pong,
58}
59
60#[cfg_attr(feature = "use-defmt", derive(defmt::Format))]
61#[derive(Debug, Serialize, Deserialize)]
62pub enum ToPcI2c {
63 WriteComplete { addr: u8 },
64 Read { addr: u8, data_read: Vec<u8, 64> },
65 WriteThenRead { addr: u8, data_read: Vec<u8, 64> },
66}
67
68#[cfg_attr(feature = "use-defmt", derive(defmt::Format))]
69#[derive(Debug, Serialize, Deserialize)]
70pub enum ToPcSpi {
71 WriteComplete,
72 Transfer { data_read: Vec<u8, 64> },
73}
74
75#[cfg_attr(feature = "use-defmt", derive(defmt::Format))]
76#[derive(Debug, Serialize, Deserialize)]
77pub enum ToPcUart {
78 WriteComplete,
79 Read { data_read: Vec<u8, 64> },
80}