blipper_shared/
protocol.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Serialize, Deserialize, Debug, Eq, PartialEq)]
4pub enum Command {
5    Idle,
6    Info,
7    CaptureProtocol(u32),
8    Capture,
9    RemoteControlSend(RemoteControlCmd),
10}
11
12#[derive(Serialize, Deserialize, Debug)]
13pub enum Reply {
14    Ok,
15    CaptureReply { data: CaptureData },
16    CaptureProtocolReply { data: GenericRemote },
17    Info { info: Info },
18}
19
20#[derive(Serialize, Deserialize, Debug, Eq, PartialEq)]
21pub struct CaptureData {
22    pub samplerate: u32,
23    pub len: u32,
24    pub bufs: [[u16; 32]; 4],
25}
26
27#[derive(Serialize, Deserialize, Debug, Eq, PartialEq)]
28pub struct GenericRemote {
29    pub addr: u16,
30    pub cmd: u16,
31}
32
33#[derive(Serialize, Deserialize, Debug, Eq, PartialEq)]
34pub struct RemoteControlCmd {
35    pub pid: u8,
36    pub addr: u16,
37    pub cmd: u8,
38}
39
40#[derive(Serialize, Deserialize, Debug, Eq, PartialEq)]
41pub struct Info {
42    pub version: u32,
43    /// Bitfield of transmitters
44    pub transmitters: u32,
45}