* 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>
* Moved .doc to .md
Moved the Word document to a more open format
* Update of the file based on the new settings
Update of the settings documentation due to the introduction of the new RowingEngine
* Moved .doc to .md
Moved the information to the .md file, updated with the design decissions made in the new RowingEngine.
* Splitting the hardware set-ups for specific rowers
Split off the WRX700 hardware set-up from the generic setup, to allow for other rower-specific set-ups to be created (easier to read and better for search engines).
* Removal of generic text
* SPlit the generic from the WRX700
* Fixed a very rare bug
A very rare condition can cause the noise correction filter to get stuck and dismiss all subsequent values. Now the number of corrections is maximised preventing that situation.
* Code refactoring
Refactoring of the code (added calculateLinearVelocity(), calculateCyclePower(), calculateTorque() functions) to reduce code duplication across phases.
* Fixed a very rare bug
A very rare condition can cause the noise correction filter to get stuck and dismiss all subsequent values. Now the number of corrections is maximised preventing that situation.
* Code refactoring
Refactoring of the code (added calculateLinearVelocity(), calculateCyclePower(), calculateTorque() functions) to reduce code duplication across phases.
* fixes some typos, fixes some links, renames some files
Co-authored-by: Lars Berning <151194+laberning@users.noreply.github.com>
* adds verification information
* gets description directly from github
* reduces some margins
* removes header and footer in print view
* some test adjustments
* adds some metadata
* fixes a warning
* updates backlog