Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reading characteristic updates with Peripheral::notifications.next().await returns value with max len=20 #341

Open
lassehenriksen-stryde opened this issue Oct 5, 2023 · 3 comments
Labels
bug Something isn't working

Comments

@lassehenriksen-stryde
Copy link

Describe the bug
Reading characteristic updates with Peripheral::notifications.next().await returns value with max len=20.

Expected behavior
It should return the value as it is, not missing any data.

Actual behavior
It cuts off after 20.

Additional context

@lassehenriksen-stryde lassehenriksen-stryde added the bug Something isn't working label Oct 5, 2023
@qwandor
Copy link
Collaborator

qwandor commented Oct 5, 2023

Is this happening on all platforms, or just one?

@lassehenriksen-stryde
Copy link
Author

lassehenriksen-stryde commented Oct 5, 2023

@qwandor I have only tested it on Windows 11. Here is a snippet of my code:

    peripheral.subscribe(&peripherals_char).await;
    let mut notification_stream = peripheral.notifications().await?;

    loop {
        while let Some(data) = notification_stream.next().await {
            if data.uuid == char_uuid{
                println!(
                    "{}", String::from_utf8_lossy(&data.value)
                );
            }
        }

'data.value' here is a vector that is never greater than 20 in size.

I have tried to just read the characteristic manually which works fine (the values are more than 20 bytes), like this:

match peripheral.read(&peripherals_char).await {
        Ok(value) => {
           let msg_str = String::from_utf8_lossy(&value);
           println!("{}", msg_str);
         }
        Err(error) => {
            println!("ERROR: {:?}", error);
        }
};

But that is too slow for my use case since the characteristic is updating very fast.

@lassehenriksen-stryde
Copy link
Author

Seems to be happening on both Windows, Mac and Linux.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants