MicrosoftDocs / winrt-api

WinRT reference content for developing Microsoft Universal Windows Platform (UWP) apps
Creative Commons Attribution 4.0 International
227 stars 493 forks source link

Multiple WriteValueAsync() results in stuttering data transmission #2423

Closed ChriDit closed 8 months ago

ChriDit commented 8 months ago

I use WriteValueAsync() to write data without response to an BLE device.

Therefor

gattCharacteristic.WriteValueAsync(dataWriter.DetachBuffer(), GattWriteOption.WriteWithoutResponse))

is called ~200 times in ~1 seconds to write data as fast as possible.

On receiving BLE device I can see now ~2-5 write-without-response messages arriving in a "block" with nearly no time delay between them, then I see a break without new receives with a length of ~1-2 seconds before next "message-block" is received. So data, which was written in ~1s, takes up to 90 seconds to arrive completely on BLE device (probably buffered from Windows).

Does anyone has an idea, why breaks are there and how to get rid of them?

Using a smartphone app, which does the same data transfer with write-without-response messages to same BLE device, transfers data much more quickly than Windows does.


Dokumentdetails

Bearbeiten Sie diesen Abschnitt nicht. Er wird für die Verknüpfung von learn.microsoft.com zum GitHub-Issue benötigt.

stevewhims commented 8 months ago

Hi, @ChriDit, and thanks for filing this issue. The feedback channel you're using here (Submit and view feedback for > This page) is for feedback about the documentation in this topic itself, as published. For example, if the content is incorrect or incomplete.

But this particular issue doesn't feel like it's saying that something needs changing in the docs.

For questions (or requests for help) regarding a specific scenario, like this, one option is to click Submit and view feedback for > This product, and you'll be taken to Microsoft Q&A (more info about that below).

Here are all of the developer support resources, for completeness.

I'll go ahead and close this issue now, since there's no action to take in the documentation. You can always reply to a closed issue, or even re-open it if you feel it's been closed in error.

Thanks! -Steve