Commit Graph

143 Commits

Author SHA1 Message Date
Lars Berning 582c5fd41c
updates and fixes some dependencies 2022-01-10 20:05:19 +01:00
Lars Berning bbd009453e
Merge branch 'main' into frontend_redesign 2022-01-09 22:22:13 +01:00
Lars Berning 2eed3fa6dd
adds a first test for a working global frontend state 2022-01-09 22:00:58 +01:00
Jaap van Ekris e85491acb9
More refined session state (#33)
* 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>
2022-01-09 12:09:02 +01:00
Lars Berning ab02153c2d
fixes a dependency problem that causes ble to not work, pins all dependencies 2022-01-02 14:20:09 +01:00
Lars Berning fae38b58fb
adds support for raspberry os 11, fixes armv6 issue 2021-12-13 22:26:42 +01:00
Lars Berning a083af9e49
updates some references and some dependencies 2021-12-13 21:05:07 +01:00
Lars Berning 4737669216 improves conditional rendering 2021-12-13 20:37:21 +01:00
Jaap van Ekris 19ec4f28bb
Code Cleanup and Documentation Update (#30)
* 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>
2021-12-13 20:01:28 +01:00
Lars Berning 80360e70f8
fixes some edge cases, removes some unneeded dependencies 2021-11-29 15:24:51 +01:00
Lars Berning 2b7baf8f28
update script has option to change to another feature branch 2021-11-29 13:36:58 +01:00
Lars Berning 76a5e004f2
adds bundling with rollup 2021-11-29 10:30:45 +01:00
Lars Berning 6bccb9bccd
uses babel preset-env 2021-11-28 11:15:41 +01:00
Lars Berning 70a86d0914
initial attempt to refactor frontend with lit 2021-11-27 17:17:58 +01:00
Lars Berning 66ec2070bc
makes pipeline run on all branches 2021-11-21 22:35:17 +01:00
Lars Berning 9e03c01a53
adds lightweight tooling for adding web components with lit 2021-11-21 22:28:44 +01:00
Lars Berning 6b384d7f31
updates some dependencies 2021-11-21 21:50:01 +01:00
Lars Berning a3730f9a9c
improves GitHub page (#29)
* 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
2021-11-15 10:37:16 +01:00
Lars Berning e9edce56ec adds nodejs17 to the test configuration 2021-11-11 21:17:58 +01:00
Lars Berning 68f4313518
Adds support for GitHub pages (#27)
* moves readme to docs folder

* Set theme jekyll-theme-cayman

* adjusts some colors

* adjusts image margin

* adds some styling and a navigation menu
2021-11-11 21:11:07 +01:00
Lars Berning 4196009237
adds documentation on the physics model (#25)
* adds documentation on the physics model
2021-11-08 11:32:08 +01:00
Lars Berning 67e7dbb36c
unifies interface of averagers 2021-11-08 09:00:45 +01:00
Lars Berning 36fe899e81
adds more tests to averagers 2021-11-08 08:47:56 +01:00
Lars Berning f6c46c0f9f
updates some documentation 2021-11-07 22:02:15 +01:00
Lars Berning 02359e819d
updates documentation, fixes typos 2021-11-07 21:51:11 +01:00
Lars Berning 8f064a0aab
fixes typos, updates documentation to new names 2021-11-07 15:14:51 +01:00
Lars Berning dd36e2b141
updates some dependencies, fixes linter config, bumps version 2021-11-07 15:03:44 +01:00
Jaap van Ekris 7ee25292fc
Improved Rowing Engine (#24)
* Update to accomodate the new RowingEngine

Update of the MovingFlankDetector to provide the values needed to determine the speeds at the beginning of the flank.

* Created the MovingAverager for RowingEngine 2.0

Added the MovingAverager to accomodate the RowingEngine 2.0

* Update to RowingEngine 2.0

Update based on the great theoretical work of Anu Dudhia and the practical experiences of Dave Venrooy.

* Added to explain RowingEngine 2.0 design

A rationale for explaining the RowingEngine 2.0 design, based on the great theoretical work of Anu Dudhia, and the practical work of Dave Venrooy and Marinus van Holst, as well as the great feedback from Lars Berning.

* Update to accomodate the new RowingEngine

Update to the rower settings to accommodate the new RowingEngine. Please note that the modifications need to be verified by the respective users.

* Modifications to the RX800 tests

Modifications to the RX800 to bring it in line with the Concept2 Power and distance measurements.

* BUGFIX: Prevent ghost-strokes at end of session

This change to isAccelerating prevents stroke-detection to detect a stroke when the currentDt "flatlines". This typically happens when the error correction kicks in when you quit rowing (and thus the rowerSettings.maximumTimeBetweenImpulses is exceeded). It is bad (flatlining isn't acceleration), and this ghost-stroke causes havoc in the GUI: all measurements are reset again to random values instead of the nice indicators normally used.

* BUGFIX: Prevent ghost-strokes at end of session

This change to isAccelerating prevents stroke-detection to detect a stroke when the currentDt "flatlines". This typically happens when the error correction kicks in when you quit rowing (and thus the rowerSettings.maximumTimeBetweenImpulses is exceeded). It is bad (flatlining isn't acceleration), and this ghost-stroke causes havoc in the GUI: all measurements are reset again to random values instead of the nice indicators normally used.

* Added defensive programming

In some rare cases not rounding led to a buffer overflow, so added defensive programming to prevent this.

* Update MovingFlankDetector.js

* Improved stroke detection algorithm accuracy

Improvement of the Stroke detection algorithm: when naturalDeceleration is specified in the settings, it will only consider something a Revocery when this level of deceleration is encountered for the FlankLength.

* Made the RowingEngine more stateful

Removed some bugs, added a lot of defensive programming and made the RowingEngine report the key statistics every impuls to create a more fluid experience on the monitor. To do this, the rowingEngine maintins and reports absolute values to rowingStatistics, instead of relative.

* Improved stroke detection algorithm accuracy

Improvement of the Stroke detection algorithm: when naturalDeceleration is specified in the settings, it will only consider something a Revocery when this level of deceleration is encountered for the FlankLength.

* Modification to fit new RowingEngine

* Addition of new parameters for stroke detection

Added new parameters for stroke detection and monitor fluidity

* Fixed missing bracket

* Updated to more fluid RowingStatistics

Moved the timer from a static timer to the raw measurements of the flywheel, and the distance more frequently updated, to keep all data consistent. Also made the GUI-updates more fluid, responsive and dependent on settings: this more fluid GUI update mechanism is dependent on the screenUpdateInterval setting and moving averager dependent on a setting (numOfPhasesForAveragingScreenData)

* Made all monitor updates consistent

* Accommodate more frequent update of the monitors

Update to accommodate the more frequent updates, and to accommodate the reset for the RowingEngine

* improves some testcases, fixes some minor code styling and duplicate definitions

* Fixed a comment about dragfactor

* Added parameters for the new RowingStatistics.js

Added screenUpdateInterval, numOfPhasesForAveragingScreenData and maxCycleTimeBeforePause as config parameters to remove statically determined parameters in RowingStatistics.js

* Added RX800 as second testbed

* fixes some problems that caused the engine to crash

* uses non sanitized durations for now

* updates some settings, fixes some typos

* wires the correct timer configuration, fixes a problem where SPM would not reset to 0

* fixes a crash problem in workout recorder, fixes fallback value for strokeTime

* relaxes constraint on stroke time

* updates some explanatory text, updates some rower parameters

Co-authored-by: Lars Berning <151194+laberning@users.noreply.github.com>
2021-11-07 14:53:11 +01:00
Lars Berning ce62f2af84
updates installer to now deploy node 16 2021-10-17 13:26:22 +02:00
Lars Berning 95e45ff20c
updates node 14 version, preparations for node 16 2021-10-17 12:46:50 +02:00
Lars Berning e9c3abb7b3
migrate package-lock to v2 2021-10-17 11:59:55 +02:00
Lars Berning ede8d2cfe0
revert to eslint 7 for now since not all extensions are ready for 8 yet 2021-10-17 11:59:20 +02:00
Lars Berning 16fafc8add
updates websocket library to version 8 2021-10-17 11:40:03 +02:00
Lars Berning 6529d2bbe1
updates some dependencies 2021-10-17 11:24:12 +02:00
Lars Berning 7fd0ff83f9
updates some dependencies 2021-05-31 10:39:48 +02:00
Lars Berning 3b6b42ec1a
extracts merge function into a helper module 2021-05-27 09:36:03 +02:00
Lars Berning 2aafc5f12a
adds gpio configuration to installer 2021-05-26 09:06:28 +02:00
Lars Berning 28ea452e4a
adds network share creation and hostname adjustment to installer 2021-05-25 11:57:52 +02:00
Lars Berning 4664ece207
updates backlog 2021-05-22 20:57:34 +02:00
Lars Berning e903037d68
enables installer to also set up a browser in kiosk mode 2021-05-22 20:31:16 +02:00
Lars Berning a618419702
simplifies git hooks 2021-05-21 14:38:21 +02:00
Lars Berning db7559e640
removes a non required dependency 2021-05-21 13:24:08 +02:00
Lars Berning 53ddec27da
fixes an issue with data types in tcx files 2021-05-21 10:06:39 +02:00
Lars Berning 602766c4a0
implements tcx and raw export 2021-05-20 13:40:42 +02:00
Lars Berning c87e78b000
fixes auto adjustment for rowed distance 2021-05-13 10:11:00 +02:00
Lars Berning 103b77190e
some minor layout adjustments 2021-05-08 13:55:22 +02:00
Lars Berning d50b1b8c7c
speeds up updating by reusing existing dependencies 2021-05-05 12:32:57 +02:00
Lars Berning b019fb3bd4
adds more settings, adds auto adjust for damping 2021-05-05 12:16:04 +02:00
Jaap van Ekris 1b895972af
refactores FlankDetector, extracts some flank settings
* Improvement of the MovingflankDetector

Simplified the call of the moving flank detector, making it dependent on the settings

* Update MovingFlankDetector.js

Cleaned up the call to the MovingFlankDetector

* Added heartrate data to TCX

* Added parameters for the flankdetector

Added parameters for the flankdetector (flankLength and numberOfErrorsAllowed)

* Gave the RX800 some room as the settings haven't stabilised yet (and I think the recording is with a different damper setting than the source tree)
2021-05-05 05:41:11 +02:00
Lars Berning b16fc34ea0
adds installation instructions for raspi0w 2021-05-04 21:27:44 +02:00