calculateDecelerations method
second criteria
Implementation
/*
*/
/*for (int i = 0; i < size; i++) {
int difference = baselineEpochBpm[i]! - millisecondsEpochBpm[i]!;
if (difference > 1) {
counter2++;
if (maxExcursion < difference) maxExcursion = difference;
*//*
*/
/*if (counter2 > 8 && counter2 < 15 && !isDeceleration) {// 60 seconds = 16 samples
isDeceleration = true;
//n++;
}*//*
*/
/*
} else {
if (maxExcursion >= 10)
//Log.i("maxExcursion dec 2", counter2 + " - " + maxExcursion + " - " + ((i * 4) / 60));
if (counter2 >= 2 && counter2 < 4 && maxExcursion >= 20) { // change from counter2 >= 8 && counter2 < 15 to counter2 >= 2 && counter2 < 4
MarkerIndices deceleration = new MarkerIndices();
deceleration.setFrom(((i - counter2) * FACTOR));
deceleration.setTo(((i) * FACTOR));
decelerations.add(deceleration);
n++;
}
counter2 = 0;
//isDeceleration = false;
maxExcursion = 0;
}
}*//*
decelerationsList = decelerations;
print("Interpretations2 :: decelerationsList - ${decelerationsList?.length}");
print("Interpretations2 :: counter1 - $counter1");
print("Interpretations2 :: n - $n");
print("Interpretations2 :: isDeceleration - $isDeceleration");
print("Interpretations2 :: maxExcursion - $maxExcursion");
return n;
}
*/
int calculateDecelerations() {
List<MarkerIndices> decelerations = [];
int size = millisecondsEpoch.length;
int counter1 = 0, counter2 = 0, n = 0;
int maxExcursion = 0;
for (int i = 0; i < size; i++) {
MarkerIndices deceleration = MarkerIndices();
if (millisecondsEpochBpm[i] == 0) continue;
int difference = baselineEpochBpm[i]! - millisecondsEpochBpm[i]!;
if (difference > 0) {
counter1++;
if (maxExcursion < difference) maxExcursion = difference;
if (counter1 >= 4 && !isDeceleration) {
isDeceleration = true;
}
} else {
if (maxExcursion >= 10) {
// print("maxExcursion dec 1: $counter1 - $maxExcursion - ${(i * 4) / 60}");
if (counter1 >= 14 && maxExcursion >= 10) {
deceleration = MarkerIndices()
..from = ((i - counter1) * FACTOR).toInt()
..to = (i * FACTOR).toInt();
decelerations.add(deceleration);
n++;
} else if (counter1 > 3 && counter1 < 15 && maxExcursion >= 15) {
deceleration = MarkerIndices()
..from = ((i - counter1) * FACTOR).toInt()
..to = (i * FACTOR).toInt();
decelerations.add(deceleration);
n++;
}
}
counter1 = 0;
isDeceleration = false;
maxExcursion = 0;
}
}
maxExcursion = 0;
decelerationsList = decelerations;
return n;
}