You are here: Forum Home → ANT+ Forums → ANT+ Heart Rate Monitor → Thread
/// DATA PRESENT ON ALL PAGES (BYTES 4-5-6-7)
stPage0Data.usBeatTime = (USHORT)stMessage.aucData[ucDataOffset+4]; // Measurement time
stPage0Data.usBeatTime |= (USHORT)stMessage.aucData[ucDataOffset+5] << 8;
stPage0Data.ucBeatCount = (UCHAR)stMessage.aucData[ucDataOffset+6]; // Measurement count
stPage0Data.ucComputedHeartRate = (USHORT)stMessage.aucData[ucDataOffset+7]; // Computed heart rate
qDebug() << "Time:" << stPage0Data.usBeatTime;
qDebug() << "CountHR:" << hex << stPage0Data.ucBeatCount;
qDebug() << "InstantHR:" << stPage0Data.ucComputedHeartRate;
/// Check if the message is the same in a row for 10 messages, if so, user has removed the strap or incorrect strap placement on user.
if ( (stPage0Data.usBeatTime == previousHeartBeatTime) && stPage0Data.ucBeatCount == previousHeartBeatCount) {
dataNotChanged++;
if (dataNotChanged > 10) {
/// EMIT HR
emit HeartRateChanged(0); /// TODO: Show "---" on interface instead of 0
}
}
else {
dataNotChanged = 0;
/// EMIT HR
emit HeartRateChanged(stPage0Data.ucComputedHeartRate);
}
/// Move current data to the past
previousHeartBeatCount = stPage0Data.ucBeatCount;
previousHeartBeatTime = stPage0Data.usBeatTime;
——————————————————
Free Indoor Cycling Software - https://maximumtrainer.com
/// Check if sensor cadence stopped using
if (currentPage0.usLastCadence1024 == pastPage0.usLastCadence1024 && currentPage0.usCumCadenceRevCount == pastPage0.usCumCadenceRevCount) {
dataNotChanged++;
if (dataNotChanged > MAX_MSG_REPEAT_CADENCE) {
emit cadenceChanged(0);
}
}
else {
dataNotChanged = 0;
/// Compute new cadence
computeCadence();
}
——————————————————
Free Indoor Cycling Software - https://maximumtrainer.com