updates telemetry to no longer use grpc
This commit is contained in:
14
api/Cargo.toml
Normal file
14
api/Cargo.toml
Normal file
@@ -0,0 +1,14 @@
|
||||
|
||||
[package]
|
||||
name = "api"
|
||||
edition = "2021"
|
||||
version = "0.1.0"
|
||||
authors = ["Sergey <me@sergeysav.com>"]
|
||||
|
||||
[dependencies]
|
||||
log = "0.4.29"
|
||||
thiserror = "2.0.17"
|
||||
serde = { version = "1.0.228", features = ["derive"] }
|
||||
derive_more = { version = "2.1.0", features = ["from", "try_into"] }
|
||||
uuid = { version = "1.19.0", features = ["v4", "serde"] }
|
||||
chrono = { version = "0.4.39", features = ["serde"] }
|
||||
8
api/src/data_type.rs
Normal file
8
api/src/data_type.rs
Normal 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
8
api/src/data_value.rs
Normal 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
4
api/src/lib.rs
Normal 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
32
api/src/request.rs
Normal 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
20
api/src/response.rs
Normal 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,
|
||||
}
|
||||
Reference in New Issue
Block a user