polarofficial / polar-ble-sdk

Repository includes SDK and code examples. More info https://polar.com/en/developers
Other
447 stars 147 forks source link

Multiple EcgData at one timestamp. #387

Open latownjo opened 11 months ago

latownjo commented 11 months ago

Platform on which you observed the bug:

Device on which you observed the bug:

Describe the bug I have dumped all EcgData and combined them into one table. If you sort this data by the timestamp of the EcgSample, the frame rate will be sometimes incredible high. Further I analysed the timestamps of the EcgData package and those timestamps jump back and forward. So it seems, that you have two packages at once.

How to Reproduce Dump all EcgData and analyse the timestamps.

Expected behavior Continuous ecg data record with roughly same sample rate.

Screenshots and logs First 5h of a 24h test recording. Rest of the data has no issues. EcgSample timestamps This are the EcgSample timestamp differences (ns, log scale). They fluctuate between 0 and 7685000 ns (130.1Hz). Sometimes the frame rate is constant, but increases periodically. Also there are some gaps with data loss(positive spikes). EcgData timestamps This are the timestamps (in ms) of the EcgData (all zero values were removed for better visualisation), sorted by the absolute timestamps of the EcgSample. So, if everything is right the EcgData is dumped each 500ms, but sometimes we have 2 EcgData for the same EcgSample timestamp.

latownjo commented 11 months ago

It seems that the SDK were connected to multiple devices. Here a sequence of the ecg channel with overlapping ecgs.

ecg0
aburashima commented 8 months ago

Hi latownjo,

Could you please tell me how I can launch ECG data stream on Polar H10 device? I tried to use API call startEcgStreaming(...) on having received bleSdkFeatureReady for .ecg feature, but got error "controlPointRequestFailed(errorCode: 5, description: \"Invalid parameter\"". What "settings" values do you use for calling startEcgStreaming(...)?

Thank you in advance!

latownjo commented 8 months ago

Hi @aburashima,

I used the normal API: requestStreamSettings and called maxSettings on that class.

Hope the info helps.

aburashima commented 8 months ago

Hi @aburashima,

I used the normal API: requestStreamSettings and called maxSettings on that class.

Hope the info helps.

Yes, it helped! Thank you so much!