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

View File

@@ -15,6 +15,7 @@ use tokio::sync::mpsc::Sender;
use tokio::time::{sleep_until, Instant};
use tokio_util::sync::CancellationToken;
use tonic::codegen::tokio_stream::StreamExt;
use uuid::Uuid;
pub mod request;
pub mod response;
@@ -23,11 +24,11 @@ fn handle_register_tlm_listener(
data: &Arc<TelemetryManagementService>,
request: RegisterTlmListenerRequest,
tx: &Sender<WebsocketResponse>,
tlm_listeners: &mut HashMap<String, CancellationToken>,
tlm_listeners: &mut HashMap<Uuid, CancellationToken>,
) {
if let Some(tlm_data) = data.get_by_uuid(&request.uuid) {
let token = CancellationToken::new();
if let Some(token) = tlm_listeners.insert(tlm_data.definition.uuid.clone(), token.clone()) {
if let Some(token) = tlm_listeners.insert(tlm_data.definition.uuid, token.clone()) {
token.cancel();
}
let minimum_separation = Duration::from_millis(request.minimum_separation_ms as u64);
@@ -46,7 +47,7 @@ fn handle_register_tlm_listener(
ref_val.clone()
};
let _ = tx.send(TlmValueResponse {
uuid: request.uuid.clone(),
uuid: request.uuid,
value,
}.into()).await;
now
@@ -65,7 +66,7 @@ fn handle_register_tlm_listener(
fn handle_unregister_tlm_listener(
request: UnregisterTlmListenerRequest,
tlm_listeners: &mut HashMap<String, CancellationToken>,
tlm_listeners: &mut HashMap<Uuid, CancellationToken>,
) {
if let Some(token) = tlm_listeners.remove(&request.uuid) {
token.cancel();
@@ -76,7 +77,7 @@ async fn handle_websocket_message(
data: &Arc<TelemetryManagementService>,
request: WebsocketRequest,
tx: &Sender<WebsocketResponse>,
tlm_listeners: &mut HashMap<String, CancellationToken>,
tlm_listeners: &mut HashMap<Uuid, CancellationToken>,
) {
match request {
WebsocketRequest::RegisterTlmListener(request) => {
@@ -110,7 +111,7 @@ async fn handle_websocket_incoming(
data: &Arc<TelemetryManagementService>,
session: &mut Session,
tx: &Sender<WebsocketResponse>,
tlm_listeners: &mut HashMap<String, CancellationToken>,
tlm_listeners: &mut HashMap<Uuid, CancellationToken>,
) -> anyhow::Result<bool> {
match msg {
Ok(AggregatedMessage::Close(_)) => Ok(false),
@@ -130,7 +131,7 @@ async fn handle_websocket_incoming(
}
}
pub async fn websocket_connect(
async fn websocket_connect(
req: HttpRequest,
stream: web::Payload,
data: web::Data<Arc<TelemetryManagementService>>,