updates telemetry to no longer use grpc

This commit is contained in:
2025-12-29 19:08:13 -05:00
parent f658b55586
commit 8d737e8f33
29 changed files with 911 additions and 514 deletions

8
api/src/data_type.rs Normal file
View File

@@ -0,0 +1,8 @@
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum DataType {
Float32,
Float64,
Boolean,
}

8
api/src/data_value.rs Normal file
View File

@@ -0,0 +1,8 @@
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, Serialize, Deserialize)]
pub enum DataValue {
Float32(f32),
Float64(f64),
Boolean(bool),
}

4
api/src/lib.rs Normal file
View File

@@ -0,0 +1,4 @@
pub mod data_type;
pub mod data_value;
pub mod request;
pub mod response;

32
api/src/request.rs Normal file
View File

@@ -0,0 +1,32 @@
use crate::data_type::DataType;
use crate::data_value::DataValue;
use chrono::{DateTime, Utc};
use derive_more::From;
use serde::{Deserialize, Serialize};
use uuid::Uuid;
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct TelemetryDefinitionRequest {
pub name: String,
pub data_type: DataType,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct TelemetryEntry {
pub uuid: Uuid,
pub value: DataValue,
pub timestamp: DateTime<Utc>,
}
#[derive(Debug, Clone, Serialize, Deserialize, From)]
pub enum RequestMessagePayload {
TelemetryDefinitionRequest(TelemetryDefinitionRequest),
TelemetryEntry(TelemetryEntry),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct RequestMessage {
pub uuid: Uuid,
#[serde(flatten)]
pub payload: RequestMessagePayload,
}

20
api/src/response.rs Normal file
View File

@@ -0,0 +1,20 @@
use derive_more::{From, TryInto};
use serde::{Deserialize, Serialize};
use uuid::Uuid;
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct TelemetryDefinitionResponse {
pub uuid: Uuid,
}
#[derive(Debug, Clone, Serialize, Deserialize, From, TryInto)]
pub enum ResponseMessagePayload {
TelemetryDefinitionResponse(TelemetryDefinitionResponse),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ResponseMessage {
pub uuid: Uuid,
#[serde(flatten)]
pub payload: ResponseMessagePayload,
}