Blocking send when receiving from mic
This commit is contained in:
@ -248,13 +248,14 @@ impl Transceiver {
|
||||
{
|
||||
// Wait for end of tranmission
|
||||
let mut recv = Some(FSKReceiver::new(eyes_tx.clone()));
|
||||
let mut send_ack = false;
|
||||
while let Some(iq) = squelch.next(iq_sampler.sample(sample_stream.recv().await.unwrap()))
|
||||
{
|
||||
if recv.as_ref().is_some()
|
||||
{
|
||||
match recv.as_mut().unwrap().receive(iq).await
|
||||
{
|
||||
Ok(Some(Frame::Data(_))) => {println!("GOT DATA"); Self::transmit(Frame::Ack, &mut sample_sender).await; recv = None;},
|
||||
Ok(Some(Frame::Data(_))) => {println!("GOT DATA"); send_ack = true; recv = None;},
|
||||
Ok(Some(Frame::Ack)) => {current_message = None; recv = None;},
|
||||
Err(()) => {recv = None;},
|
||||
_ => {}
|
||||
@ -262,6 +263,10 @@ impl Transceiver {
|
||||
}
|
||||
}
|
||||
println!("EOT");
|
||||
if send_ack
|
||||
{
|
||||
Self::transmit(Frame::Ack, &mut sample_sender).await;
|
||||
}
|
||||
},
|
||||
message = async
|
||||
{
|
||||
@ -497,7 +502,7 @@ impl EguiApp {
|
||||
&config.into(),
|
||||
move |data: &[f32], _| {
|
||||
for x in data.iter() {
|
||||
let _ = down_sender.try_send(*x * 30.); // non-blocking send
|
||||
let _ = down_sender.blocking_send(*x * 30.); // non-blocking send
|
||||
}
|
||||
},
|
||||
move |err| eprintln!("Stream error: {}", err),
|
||||
|
||||
Reference in New Issue
Block a user