25 lines
534 B
Rust
25 lines
534 B
Rust
use chrono::serde::ts_nanoseconds;
|
|
use chrono::{DateTime, Utc};
|
|
use serde::{Deserialize, Serialize};
|
|
|
|
#[derive(Clone, Debug, Serialize, Deserialize)]
|
|
pub struct Telemetry {
|
|
#[serde(with = "ts_nanoseconds")]
|
|
pub timestamp: DateTime<Utc>,
|
|
pub message: TelemetryMessage,
|
|
}
|
|
|
|
#[derive(Copy, Clone, Debug, Serialize, Deserialize)]
|
|
pub enum SwitchBank {
|
|
A,
|
|
B,
|
|
}
|
|
|
|
#[derive(Clone, Debug, Serialize, Deserialize)]
|
|
pub enum TelemetryMessage {
|
|
SwitchState {
|
|
bank: SwitchBank,
|
|
switches: [bool; 16],
|
|
}
|
|
}
|