processData method
Future<List<StsResult> >
processData({
- required List<
SensorEvent> accData, - required List<
SensorEvent> gyroData, - required List<
SensorEvent> magData, - required double accActualRate,
- required double gyroActualRate,
- required double magActualRate,
override
Processes raw sensor data and returns a list of StsResults.
accData
- List of accelerometer sensor events.
gyroData
- List of gyroscope sensor events.
magData
- List of magnetometer sensor events.
accActualRate
- Actual sampling rate of accelerometer.
gyroActualRate
- Actual sampling rate of gyroscope.
magActualRate
- Actual sampling rate of magnetometer.
Returns a list of processed StsResults.
Implementation
@override
Future<List<StsResult>> processData({
required List<SensorEvent> accData,
required List<SensorEvent> gyroData,
required List<SensorEvent> magData,
required double accActualRate,
required double gyroActualRate,
required double magActualRate,
}) async {
if (config.useAccelerometer && config.accelerometerAxes.contains(SensorAxis.y) && config.sensorLocation == SensorLocation.chest) {
cycles = countStsCyclesChest(accData: accData, gyroData: gyroData, accActualRate: accActualRate, gyroActualRate: gyroActualRate);
for(Cycle cycle in cycles) {
for (SensorEvent event in cycle.events) {
detectedCycles.add(event);
}
}
if (kDebugMode) {
print('[StsProcessor] SensorLocation.chest algorithm');
}
} else if (config.useGyroscope && config.gyroscopeAxes.contains(SensorAxis.x) && config.sensorLocation == SensorLocation.thigh) {
cycles = countStsCyclesThigh(accData: accData, gyroData: gyroData, accActualRate: accActualRate, gyroActualRate: gyroActualRate);
if (kDebugMode) {
print('[StsProcessor] SensorLocation.thigh algorithm');
}
}
final cycleTimes = <double>[];
int numCycles = cycles.length;
for (Cycle cycle in cycles) {
final cycleTime = cycle.events.last.timestamp.difference(cycle.events.first.timestamp).inMilliseconds / 1000.0;
cycleTimes.add(cycleTime);
if (kDebugMode) {
print('cycleTime[${cycles.indexOf(cycle)}]:$cycleTime');
}
}
cycles = [];
return [
StsResult.fromResults(
cycleCount: numCycles,
cycleTimes: cycleTimes,
)
];
}