pyrinas_server/
telemetry.rs1use chrono::{DateTime, Utc};
2use influxdb::{InfluxDbWriteable, WriteQuery};
3use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Serialize, Deserialize, Clone)]
9pub struct TelemetryData {
10 version: Option<String>,
11 rsrp: Option<u32>, rssi_hub: Option<i32>, rssi_client: Option<i32>, }
15
16#[derive(Debug, InfluxDbWriteable, Clone)]
17pub struct InfluxTelemetryData {
18 version: Option<String>, rsrp: Option<u32>, rssi_hub: Option<i32>, rssi_client: Option<i32>, #[influxdb(tag)]
23 id: String, time: DateTime<Utc>, }
26
27impl TelemetryData {
28 pub fn to_influx_data(&self, uid: String) -> InfluxTelemetryData {
29 InfluxTelemetryData {
31 version: self.version.clone(),
32 rsrp: self.rsrp,
33 rssi_hub: self.rssi_hub,
34 rssi_client: self.rssi_client,
35 id: uid,
36 time: Utc::now(),
37 }
38 }
39}
40
41impl InfluxTelemetryData {
42 pub fn to_influx_query(&self, category: String) -> WriteQuery {
43 let data = self.clone();
45 data.into_query(category)
46 }
47}