* Improvement of the startup behaviour
These changes improve the startup behaviour: ORM will now always start with a detected drive-phase, which will trigger recording etc. This changes several initialisations of variables to make sure they enable the triggering of a "Drive" at the beginning of a stroke. Also workoutHandler.handleStrokeEnd has been renamed to workoutHandler.handleDriveEnd, as this is the clear end of that stroke-phase.
* Renamed handleStrokeEnd to handleDriveEnd
Renamed handleStrokeEnd to handleDriveEnd, as this is the clear end of that stroke-phase, as the current model alternates between Drive+Recovery and Recovery+Drive strokes to keep feeding the metrics, there isn't a very clear "End of the Stroke".
* Redefinition of a stroke
Traditionally, a stroke is defined as a Drive phase, followed by a Recovery Phase. This is also expected by Garmin and EXR as Concept2 implements it this way as well. This implementation makes it more consistent with that interpretation, while leaving room for intermediate updates. This should make Bluetooth behaviour and metrics recording more consistent.
* Bugfix for dragfilter poisoning prevention
Implementation of a more refined version of the dragfactor calculation to prevent the dragfactor being stuck at certain values after pauses, etc.
* Addition of new settings
Implementation of a more refined version of the dragfactor calculation to prevent the dragfactor being stuck at certain values after pauses, etc.
Two changes:
* Made the smoothing function of the dragfactor configurable from the config-file (dampingConstantSmoothing) instead of hardcoded. as it should have been from day one
* Implementation of a new filter to prevent dragfactor poisoning by noisy data, based on another setting (dampingConstantMaxChange). The new filter will not get stuck but will follow the direction of the change but is limited to the setting..
* A more refined rowing session state (PM5)
Introduces a more refined session state needed for the PM5 rower session simulation, as well as a cleaner setup for the metrics to stop when the rower is stopped.
* Added the WorkoutState and rowingState
Added the WorkoutState and rowingState to the PM5 interface, to prevent EXR to start too early.
* Added a link to the brilliant work of Nomath
Added a link to Nomath's work, as it is a brilliant piece of work that independently verifies our calculations and provides a basis for support of the Concept2 rower.
* Bugfix in Instantanous Torque calculation
The Instantanous Torque calculation wasn't cleaned up sufficiently, causing issues in the powercurve.
* unifies reset of heartrate value at different places
* unifies naming with other variables status -> state
* just some minor link adjustments in documentation
Co-authored-by: Lars Berning <151194+laberning@users.noreply.github.com>