Compare commits
2 commits
58546e8432
...
0a47c7a958
Author | SHA1 | Date | |
---|---|---|---|
|
0a47c7a958 | ||
|
047a180664 |
4 changed files with 19 additions and 7 deletions
|
@ -7,6 +7,7 @@ edition = "2021"
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
tracker-state-debug = []
|
tracker-state-debug = []
|
||||||
|
tokio-logging = []
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
async-channel = "2.2.0"
|
async-channel = "2.2.0"
|
||||||
|
|
|
@ -193,7 +193,9 @@ pub async fn start_coordinator(
|
||||||
y_adj = y;
|
y_adj = y;
|
||||||
}
|
}
|
||||||
Err(e) => {
|
Err(e) => {
|
||||||
info!("Could not calculate the tracking!: {e}");
|
if state.tracker_state.tracking_id > 0 {
|
||||||
|
info!("Could not calculate the tracking!: {e}");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@ use std::{
|
||||||
use async_recursion::async_recursion;
|
use async_recursion::async_recursion;
|
||||||
|
|
||||||
use async_channel::Sender;
|
use async_channel::Sender;
|
||||||
use futures_util::{stream::SplitStream, SinkExt, StreamExt, TryStreamExt};
|
use futures_util::{stream::{SplitSink, SplitStream}, SinkExt, StreamExt, TryStreamExt};
|
||||||
use gstreamer_app::AppSink;
|
use gstreamer_app::AppSink;
|
||||||
use tokio::{net::TcpStream, sync::Mutex, time::sleep_until};
|
use tokio::{net::TcpStream, sync::Mutex, time::sleep_until};
|
||||||
use tokio_tungstenite::{connect_async, tungstenite::Message, MaybeTlsStream, WebSocketStream};
|
use tokio_tungstenite::{connect_async, tungstenite::Message, MaybeTlsStream, WebSocketStream};
|
||||||
|
@ -75,7 +75,7 @@ pub async fn remote_video_loop(
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
let do_not_break = handle_message(&mut recvr, &to_mec, last_iter).await;
|
let do_not_break = handle_message(&mut recvr, &mut sender, &to_mec, last_iter).await;
|
||||||
|
|
||||||
if !do_not_break { break; }
|
if !do_not_break { break; }
|
||||||
|
|
||||||
|
@ -131,6 +131,7 @@ fn get_video_frame(appsink: &AppSink) -> Result<Message, String> {
|
||||||
#[async_recursion]
|
#[async_recursion]
|
||||||
async fn handle_message(
|
async fn handle_message(
|
||||||
recvr: &mut SplitStream<WebSocketStream<MaybeTlsStream<TcpStream>>>,
|
recvr: &mut SplitStream<WebSocketStream<MaybeTlsStream<TcpStream>>>,
|
||||||
|
sender: &mut SplitSink<WebSocketStream<MaybeTlsStream<TcpStream>>, Message>,
|
||||||
to_mec: &Sender<ApplicationEvent>,
|
to_mec: &Sender<ApplicationEvent>,
|
||||||
last_iter: Instant,
|
last_iter: Instant,
|
||||||
) -> bool {
|
) -> bool {
|
||||||
|
@ -144,15 +145,15 @@ async fn handle_message(
|
||||||
Message::Pong(_) | Message::Frame(_) | Message::Text(_) => {
|
Message::Pong(_) | Message::Frame(_) | Message::Text(_) => {
|
||||||
warn!("There was an unhandled message type from the camera: {}\n{}", message, message.to_string());
|
warn!("There was an unhandled message type from the camera: {}\n{}", message, message.to_string());
|
||||||
// this was not the expected response, recursion!
|
// this was not the expected response, recursion!
|
||||||
return handle_message(recvr, to_mec, last_iter).await;
|
return handle_message(recvr, sender, to_mec, last_iter).await;
|
||||||
}
|
}
|
||||||
Message::Ping(content) => {
|
Message::Ping(content) => {
|
||||||
if let Err(e) = to_mec.send(ApplicationEvent::SocketMessage(Message::Pong(content))).await {
|
if let Err(e) = sender.send(Message::Pong(content)).await {
|
||||||
error!("Video processor could not send message to MEC, exiting: {e}");
|
error!("Video processor could not send message to MEC, exiting: {e}");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// this was not the expected response, recursion!
|
// this was not the expected response, recursion!
|
||||||
return handle_message(recvr, to_mec, last_iter).await;
|
return handle_message(recvr, sender, to_mec, last_iter).await;
|
||||||
}
|
}
|
||||||
Message::Binary(bin) => {
|
Message::Binary(bin) => {
|
||||||
let message = std::str::from_utf8(&bin);
|
let message = std::str::from_utf8(&bin);
|
||||||
|
|
10
src/main.rs
10
src/main.rs
|
@ -31,11 +31,19 @@ fn main() -> glib::ExitCode {
|
||||||
.with_ansi(false)
|
.with_ansi(false)
|
||||||
.init();
|
.init();
|
||||||
}
|
}
|
||||||
#[cfg(debug_assertions)]
|
#[cfg(all(not(feature = "tokio-debug"), debug_assertions))]
|
||||||
|
{
|
||||||
|
let sub = tracing_subscriber::FmtSubscriber::new();
|
||||||
|
if let Err(e) = tracing::subscriber::set_global_default(sub) {
|
||||||
|
panic!("Could not set tracing global: {e}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#[cfg(feature = "tokio-debug")]
|
||||||
{
|
{
|
||||||
console_subscriber::init();
|
console_subscriber::init();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
let span = tracing::span!(Level::TRACE, "main");
|
let span = tracing::span!(Level::TRACE, "main");
|
||||||
let _enter = span.enter();
|
let _enter = span.enter();
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue