INNER CODE UNIT · Rust

main_loop

qaul/qaul.net · rust/ble_module/src/lib.rs:40

async fn main_loop(mut sys_rpc_callback: Box<dyn FnMut(Vec<u8>) + Send>, ble_rpc_receiver: BleRpc) {
    let ble_service = IdleBleService::new().await.unwrap_or_else(|err| {
        error!("{:#?}", err);
        std::process::exit(1);
    });

    let (tx, mut rx) = tokio::sync::mpsc::unbounded_channel::<Vec<u8>>();

    tokio::task::spawn_local(async move {
        while let Some(result) = rx.recv().await {
            sys_rpc_callback(result)
        }
    });

    listen_for_sys_msgs(ble_rpc_receiver, ble_service, BleResultSender::new(tx))
        .await
        .unwrap_or_else(|err| {
            error!("{:#?}", err);

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…