Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
202 commits
Select commit Hold shift + click to select a range
4932059
Improved description
JaapvanEkris Jul 7, 2025
72a8deb
Preperation to make calories a continuous metric
JaapvanEkris Jul 7, 2025
8dbb2b0
Fixes lint error
JaapvanEkris Jul 7, 2025
6cabe4c
Added bugfix
JaapvanEkris Jul 23, 2025
1e0c239
Bugfix for startup behaviour
JaapvanEkris Jul 23, 2025
a4edd69
More thorough testing of the core functionality
JaapvanEkris Jul 23, 2025
bb8429e
Thorougher testing of the integration of the regression algorithms
JaapvanEkris Jul 23, 2025
812b45f
Adaptation to changed startup behaviour
JaapvanEkris Jul 23, 2025
aa829c0
Adaptation to improved startup behaviour
JaapvanEkris Jul 23, 2025
6f0fcb6
Adaptation to improved startup behaviour
JaapvanEkris Jul 23, 2025
e7fe64b
Fixed precission errors
JaapvanEkris Jul 23, 2025
4cf5442
Fix for NordicTrack config change
JaapvanEkris Jul 23, 2025
8b89d53
Fix for NordicTrack config change
JaapvanEkris Jul 23, 2025
30ec4fd
Fix for NordicTrack config change
JaapvanEkris Jul 23, 2025
ce19430
Fix for NordicTrack config change
JaapvanEkris Jul 23, 2025
bf9b83c
Fix for NordicTrack config change
JaapvanEkris Jul 23, 2025
6fe39d3
Fix for NordicTrack config change
JaapvanEkris Jul 23, 2025
458c1ac
Fix for NordicTrack config change
JaapvanEkris Jul 23, 2025
dfb9c75
Fix for NordicTrack config change
JaapvanEkris Jul 23, 2025
bc5427f
Fix for NordicTrack config change
JaapvanEkris Jul 23, 2025
ad4d909
Fix for NordicTrack config change
JaapvanEkris Jul 23, 2025
3bcb42a
Added current release
JaapvanEkris Jul 26, 2025
6ed8f04
Clarification of wording
JaapvanEkris Jul 26, 2025
3c94b30
Update Flywheel.test.js
JaapvanEkris Aug 2, 2025
9d99467
Update Flywheel.test.js
JaapvanEkris Aug 2, 2025
29d7df9
Update Flywheel.test.js
JaapvanEkris Aug 2, 2025
7455d41
Update Flywheel.test.js
JaapvanEkris Aug 2, 2025
fd4e43b
Update Flywheel.test.js
JaapvanEkris Aug 2, 2025
6eee53b
Update Flywheel.test.js
JaapvanEkris Aug 2, 2025
e434a34
Update Flywheel.test.js
JaapvanEkris Aug 2, 2025
b5a6487
Update Flywheel.test.js
JaapvanEkris Aug 2, 2025
29e252a
Update Flywheel.test.js
JaapvanEkris Aug 2, 2025
fb087f6
Update Flywheel.test.js
JaapvanEkris Aug 2, 2025
591a17a
Update Flywheel.test.js
JaapvanEkris Aug 2, 2025
50a0e83
Update Flywheel.test.js
JaapvanEkris Aug 2, 2025
7d92c79
Update Flywheel.test.js
JaapvanEkris Aug 2, 2025
6cacd59
Update Flywheel.test.js
JaapvanEkris Aug 2, 2025
69b22f9
Update Flywheel.test.js
JaapvanEkris Aug 2, 2025
c258b2c
Update Flywheel.test.js
JaapvanEkris Aug 2, 2025
0a49822
Update Flywheel.test.js
JaapvanEkris Aug 2, 2025
c3e21e3
Update Flywheel.test.js
JaapvanEkris Aug 2, 2025
ff2f967
Update Flywheel.test.js
JaapvanEkris Aug 2, 2025
0975f94
Update Flywheel.test.js
JaapvanEkris Aug 2, 2025
30025d2
Update Flywheel.test.js
JaapvanEkris Aug 2, 2025
38c3822
Update Flywheel.test.js
JaapvanEkris Aug 2, 2025
e3a1dd7
Update Flywheel.test.js
JaapvanEkris Aug 2, 2025
33cdc31
Update Flywheel.test.js
JaapvanEkris Aug 2, 2025
5f68364
Update Flywheel.test.js
JaapvanEkris Aug 2, 2025
627d893
Update Flywheel.test.js
JaapvanEkris Aug 2, 2025
0c5c0ed
Update Flywheel.test.js
JaapvanEkris Aug 2, 2025
4adb8a3
Update Flywheel.test.js
JaapvanEkris Aug 2, 2025
c5395fa
Update Flywheel.test.js
JaapvanEkris Aug 2, 2025
b4227c6
Update Flywheel.test.js
JaapvanEkris Aug 2, 2025
181f873
Update Flywheel.test.js
JaapvanEkris Aug 2, 2025
ee03aac
Update Flywheel.test.js
JaapvanEkris Aug 2, 2025
24874ef
Update Flywheel.test.js
JaapvanEkris Aug 2, 2025
ce1d99c
Added test of quadratic approximation of cubic function
JaapvanEkris Aug 2, 2025
ce1773e
Addition of test results
JaapvanEkris Aug 2, 2025
bf5febc
Textual improvements
JaapvanEkris Aug 2, 2025
83ee762
Fixed typo
JaapvanEkris Aug 2, 2025
10a5a15
Text clarification
JaapvanEkris Aug 2, 2025
5b98ef0
Update Flywheel.test.js
JaapvanEkris Aug 3, 2025
4622bb2
Update Flywheel.test.js
JaapvanEkris Aug 3, 2025
6d27484
Update Flywheel.test.js
JaapvanEkris Aug 3, 2025
eb1b2c5
Update Flywheel.test.js
JaapvanEkris Aug 3, 2025
b701405
Update Flywheel.test.js
JaapvanEkris Aug 3, 2025
0b76e38
Update Flywheel.test.js
JaapvanEkris Aug 3, 2025
bab8c1e
Update Flywheel.test.js
JaapvanEkris Aug 3, 2025
291f9af
Update Flywheel.test.js
JaapvanEkris Aug 3, 2025
d8582d2
Update Flywheel.test.js
JaapvanEkris Aug 3, 2025
d78adea
Update Flywheel.test.js
JaapvanEkris Aug 3, 2025
b67ba0b
Update Flywheel.test.js
JaapvanEkris Aug 3, 2025
69b8e77
Update Flywheel.test.js
JaapvanEkris Aug 3, 2025
9dbb75e
Update Flywheel.test.js
JaapvanEkris Aug 3, 2025
8a532a2
Update Flywheel.test.js
JaapvanEkris Aug 3, 2025
1263e1c
Update Flywheel.test.js
JaapvanEkris Aug 3, 2025
9e0f854
Update Flywheel.test.js
JaapvanEkris Aug 3, 2025
f95bf0a
Update Flywheel.test.js
JaapvanEkris Aug 3, 2025
85fae6f
Update Flywheel.test.js
JaapvanEkris Aug 3, 2025
589ef79
Update Flywheel.test.js
JaapvanEkris Aug 3, 2025
fbdc797
Update Flywheel.test.js
JaapvanEkris Aug 3, 2025
4114bde
Update Flywheel.test.js
JaapvanEkris Aug 3, 2025
efe0504
Update Flywheel.test.js
JaapvanEkris Aug 3, 2025
6cf1647
Update Flywheel.test.js
JaapvanEkris Aug 3, 2025
5e3ee23
Update Flywheel.test.js
JaapvanEkris Aug 3, 2025
fd0648b
Update Flywheel.test.js
JaapvanEkris Aug 3, 2025
57a18b1
Update Flywheel.test.js
JaapvanEkris Aug 3, 2025
5170a82
Update Flywheel.test.js
JaapvanEkris Aug 3, 2025
ffd1ff7
Update Flywheel.test.js
JaapvanEkris Aug 3, 2025
43feef4
Update Flywheel.test.js
JaapvanEkris Aug 3, 2025
f8d9bec
Improve precission of testsing data
JaapvanEkris Aug 3, 2025
e3a3d24
Updated test results
JaapvanEkris Aug 3, 2025
a5704af
Addition of the Local Goodness of Fit (#133)
JaapvanEkris Aug 12, 2025
4126cd8
Addition of Tukey's Mean function
JaapvanEkris Aug 14, 2025
65d201b
Fixes copy-paste error
JaapvanEkris Aug 14, 2025
e0f9c22
Fixes ESlint errors
JaapvanEkris Aug 14, 2025
0507295
Added Theil-Sen design choices
JaapvanEkris Aug 14, 2025
6039c69
Added remark about flanklength
JaapvanEkris Aug 25, 2025
9780099
Create Gausian Weight Function
JaapvanEkris Aug 27, 2025
0556dc8
Added Guassian Weight Filter
JaapvanEkris Aug 27, 2025
0766e32
Fixed Lint error
JaapvanEkris Aug 27, 2025
8688344
Added Gausian distance Weighing
JaapvanEkris Aug 27, 2025
56ae8b1
Code refactoring
JaapvanEkris Aug 28, 2025
e80b8af
Code refactoring
JaapvanEkris Aug 28, 2025
fa483ce
Generalisation of the algorithm
JaapvanEkris Aug 29, 2025
1b84a7c
Improved object naming
JaapvanEkris Aug 29, 2025
16363f0
Improvement of code consistency
JaapvanEkris Aug 29, 2025
a703e32
Update MovingWindowRegressor.js
JaapvanEkris Aug 29, 2025
9918818
Fixed Lint errors
JaapvanEkris Aug 30, 2025
da6db26
Further generalisation
JaapvanEkris Aug 30, 2025
ab9f749
Adaptation to new MovingRegressor
JaapvanEkris Aug 30, 2025
0e2c38e
Adaptation to the Gausian Filter
JaapvanEkris Sep 4, 2025
1328940
Adaptation to Gausian filter
JaapvanEkris Sep 4, 2025
ffe23a5
Adaptation to the Gausian Filter
JaapvanEkris Sep 4, 2025
4c8332b
Adaptation to the Gausian Filter
JaapvanEkris Sep 4, 2025
ae1a55e
Test of the movng regressor
JaapvanEkris Sep 4, 2025
0d67619
Update to allow access to X and Y
JaapvanEkris Sep 4, 2025
449dff7
Update due to NordicTrack config update
JaapvanEkris Sep 9, 2025
810401e
Added matyematical improvements
JaapvanEkris Sep 17, 2025
4d21f19
Update Release_Notes.md
JaapvanEkris Sep 17, 2025
ca8dbb5
Initial description of the mathematical foundations
JaapvanEkris Sep 17, 2025
2eb2002
Update Mathematical_Foundations.md
JaapvanEkris Sep 17, 2025
d47dabe
Update physics_openrowingmonitor.md
JaapvanEkris Sep 17, 2025
7a09c8f
Update Mathematical_Foundations.md
JaapvanEkris Sep 17, 2025
c678c8a
Update Mathematical_Foundations.md
JaapvanEkris Sep 17, 2025
af9651f
Update Mathematical_Foundations.md
JaapvanEkris Sep 17, 2025
08ad10c
Update Mathematical_Foundations.md
JaapvanEkris Sep 17, 2025
98e32a2
Update Mathematical_Foundations.md
JaapvanEkris Sep 17, 2025
df67b61
Update Mathematical_Foundations.md
JaapvanEkris Sep 17, 2025
84e797e
Update Mathematical_Foundations.md
JaapvanEkris Sep 17, 2025
4dab449
Update Mathematical_Foundations.md
JaapvanEkris Sep 17, 2025
ce335c5
Fixed missing refs
JaapvanEkris Oct 3, 2025
c9d7258
Added the 'calories' interval option
JaapvanEkris Nov 4, 2025
e53d7e4
Addition of the 'Calories' workout type to all corners of ORM (#147)
JaapvanEkris Dec 7, 2025
d52b53b
Fixed bug in tests
JaapvanEkris Dec 7, 2025
f9e0341
Fixed testing bugs
JaapvanEkris Dec 7, 2025
af239a6
Adaptation to new BST structure
JaapvanEkris Dec 7, 2025
a52fdfa
Adaptation to new BinairySearchTree
JaapvanEkris Dec 8, 2025
9fa699c
Adaptation to new BinairySearchTree
JaapvanEkris Dec 8, 2025
e3d9ae8
Fixed initialisation of buffer
JaapvanEkris Dec 8, 2025
4c5f004
Update to the new filter configuration
JaapvanEkris Dec 8, 2025
f15771d
Update for filter behaviour changes
JaapvanEkris Dec 8, 2025
35c7f95
Update C2 RowErg configuration
JaapvanEkris Dec 8, 2025
0b0c796
Update C2 RowErg configuration
JaapvanEkris Dec 8, 2025
8eb1ce2
Adaptation to changed C2 RowErg settings
JaapvanEkris Dec 8, 2025
5fefea8
Adaptation to new C2 RowErg settings
JaapvanEkris Dec 8, 2025
a7d362c
Adaptation to new C2 RowErg settings
JaapvanEkris Dec 8, 2025
5a6f0b8
Adaptation to new MovingRegressor
JaapvanEkris Dec 9, 2025
8569654
Update RowingStatistics.test.js
JaapvanEkris Dec 9, 2025
ef34baf
Update RowingStatistics.test.js
JaapvanEkris Dec 9, 2025
dbf07e1
Adaptation to new C2 RowErg settings
JaapvanEkris Dec 9, 2025
1cb4d72
Update tests
JaapvanEkris Dec 9, 2025
25e4969
Update SessionManager.test.js
JaapvanEkris Dec 9, 2025
b00afb6
Update SessionManager.test.js
JaapvanEkris Dec 9, 2025
890415c
Update SessionManager.test.js
JaapvanEkris Dec 9, 2025
5a576e8
Update SessionManager.test.js
JaapvanEkris Dec 9, 2025
5adc21e
Update of C2 RowErg settings
JaapvanEkris Dec 10, 2025
bf677af
Bugfix for startup behaviour
JaapvanEkris Dec 14, 2025
e7b0881
Added experiences with onoff library
JaapvanEkris Dec 16, 2025
9afedcf
Improved wording
JaapvanEkris Dec 17, 2025
f7c19f7
Removed unused variable
JaapvanEkris Dec 19, 2025
e92ca7c
Add HRData parameter to VO2Max.push() function
JaapvanEkris Dec 29, 2025
1e38cb9
Add Heartrate parameter to VO2Max.push() function
JaapvanEkris Dec 29, 2025
30f69ba
Add Heartrate parameter to VO2Max.push() function
JaapvanEkris Dec 29, 2025
6de82d3
Add Heartrate parameter to VO2Max.push() function
JaapvanEkris Dec 29, 2025
ed63851
Moving to WLS for cyclic error correction (#162)
JaapvanEkris Jan 4, 2026
f829482
Improved CyclicErrorCorrection (#164)
JaapvanEkris Jan 8, 2026
7e687f7
Packages update
JaapvanEkris Jan 8, 2026
a928c53
Packages update
JaapvanEkris Jan 8, 2026
cd90f7c
Added link for profile development
JaapvanEkris Jan 8, 2026
a36bf0b
Added open issue of TS Goodness Of Fit calculations
JaapvanEkris Jan 8, 2026
9dd8a47
Changed math formatting
JaapvanEkris Jan 8, 2026
6da0fa9
Update Mathematical_Foundations.md
JaapvanEkris Jan 8, 2026
ae2d028
Formula formatting
JaapvanEkris Jan 8, 2026
1b89641
Improved table spacing
JaapvanEkris Jan 8, 2026
00cb656
Fixed Lint errors due to package updates
JaapvanEkris Jan 9, 2026
015eb98
Fixed Lint errors due to packages update
JaapvanEkris Jan 9, 2026
9cb062c
Fixed Lint errors
JaapvanEkris Jan 9, 2026
78ddc80
Fixed Lint error
JaapvanEkris Jan 9, 2026
375b4c2
Fix of a broken link
JaapvanEkris Jan 9, 2026
af85b8f
Improvements to the CyclicErrorCorrection filter interface
JaapvanEkris Jan 17, 2026
723efaf
Improvement to the CyclicErrorCorrection interface
JaapvanEkris Jan 17, 2026
1e9f91b
Fixes Lint errors
JaapvanEkris Jan 17, 2026
e021b87
Changed function names for clarity
JaapvanEkris Jan 18, 2026
8717ab6
Changed CEC function names for clarity
JaapvanEkris Jan 18, 2026
9ae5700
Fixed missing function rename
JaapvanEkris Jan 18, 2026
8f6f3f0
Fixed tests
JaapvanEkris Jan 18, 2026
4806ecb
Fixed tests
JaapvanEkris Jan 18, 2026
3a5d801
Adjusted tests for CEC improvements
JaapvanEkris Jan 18, 2026
07dc6ae
Improved robustness
JaapvanEkris Jan 18, 2026
71b9f57
Improved startup behaviour of the CEC filter
JaapvanEkris Jan 18, 2026
ab1fbb8
Adaptation to the improved startup behaviour of the CEC filter
JaapvanEkris Jan 18, 2026
b16ac4f
Adaptation to the improved startup behaviour of the CEC filter
JaapvanEkris Jan 18, 2026
862dfd8
Adaptation to the improved startup behaviour of the CEC filter
JaapvanEkris Jan 18, 2026
994a36f
Adaptation to the improved startup behaviour of the CEC filter
JaapvanEkris Jan 18, 2026
521fd78
Adaptation to the improved startup behaviour of the CEC filter
JaapvanEkris Jan 18, 2026
2eb6083
Adaptation to the improved startup behaviour of the CEC filter
JaapvanEkris Jan 18, 2026
041a400
Adaptation to the improved startup behaviour of the CEC filter
JaapvanEkris Jan 18, 2026
4103231
Adaptation to the improved startup behaviour of the CEC filter
JaapvanEkris Jan 18, 2026
e929f0e
Adaptation to the improved startup behaviour of the CEC filter
JaapvanEkris Jan 18, 2026
a550888
Adaptation to the improved startup behaviour of the CEC filter
JaapvanEkris Jan 18, 2026
a43d012
Initial tests of the CyclicErrorFilter
JaapvanEkris Jan 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion app/client/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="description" content="A rowing monitor for rowing exercise machines">
<meta name="author" content="Lars Berning">
<meta name="author" content="Jaap van Ekris">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover">
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
<meta name="apple-mobile-web-app-capable" content="yes">
Expand Down
6 changes: 3 additions & 3 deletions app/client/manifest.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"short_name": "Rowing Monitor",
"name": "Open Rowing Monitor",
"description": "A rowing monitor for rowing exercise machines",
"short_name": "ORM",
"name": "OpenRowingMonitor",
"description": "A rowing monitor for indoor rowing machines",
"icons": [
{
"src": "icon.png",
Expand Down
4 changes: 2 additions & 2 deletions app/client/store/dashboardMetrics.js
Original file line number Diff line number Diff line change
Expand Up @@ -48,13 +48,13 @@ export const DASHBOARD_METRICS = {
</dashboard-metric>`
},

totalStk: { displayName: 'Total strokes', size: 1, template: (metrics, config) => simpleMetricFactory(metrics?.totalNumberOfStrokes, 'stk', config?.guiConfigs?.showIcons ? iconPaddle : '') },
totalStk: { displayName: 'Total strokes', size: 1, template: (metrics, config) => simpleMetricFactory(metrics?.interval?.numberOfStrokes, 'stk', config?.guiConfigs?.showIcons ? iconPaddle : '') },

calories: {
displayName: 'Calories',
size: 1,
template: (metrics, config) => {
const calories = metrics?.interval?.type === 'Calories' ? Math.max(metrics?.interval?.TargetCalories - metrics?.interval?.Calories, 0) : metrics?.totalCalories
const calories = metrics?.interval?.type === 'calories' ? Math.max(metrics?.interval?.calories?.toEnd, 0) : Math.max(metrics?.interval?.calories?.sinceStart, 0)

return simpleMetricFactory(formatNumber(calories ?? 0), 'kcal', config?.guiConfigs?.showIcons ? iconFire : '')
}
Expand Down
313 changes: 197 additions & 116 deletions app/engine/Flywheel.js

Large diffs are not rendered by default.

792 changes: 756 additions & 36 deletions app/engine/Flywheel.test.js

Large diffs are not rendered by default.

37 changes: 29 additions & 8 deletions app/engine/Rower.js
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
'use strict'
/*
Open Rowing Monitor, https://github.com/JaapvanEkris/openrowingmonitor

The Rowing Engine models the physics of a real rowing boat.
It takes impulses from the flywheel of a rowing machine and estimates
parameters such as energy, stroke rates and movement.

This implementation uses concepts that are described here:
Physics of Rowing by Anu Dudhia: http://eodg.atm.ox.ac.uk/user/dudhia/rowing/physics
Also Dave Vernooy has some good explanations here: https://dvernooy.github.io/projects/ergware
*/
/**
* @file The Rowing Engine models the physics of a real rowing boat. It takes impulses from the flywheel of a rowing machine
* and calculates parameters such as work, stroke rates and linear movement.
*
* This implementation uses concepts that are described here:
* - @see {@link https://github.com/JaapvanEkris/openrowingmonitor/blob/main/docs/physics_openrowingmonitor.md#relevant-linear-metrics|the description of our underlying physics model}
* - @see {@link https://eodg.atm.ox.ac.uk/user/dudhia/rowing/physics/ergometer.html|Physics of Ergometers by Anu Dudhia}
* - @see {@link https://dvernooy.github.io/projects/ergware|Dave Vernooy's good explanation of the physics involved}
*/
/* eslint-disable max-lines -- There is a lot of state machine dependent math going on here. Hard to keep short while maintaining readability */
import loglevel from 'loglevel'
import { createFlywheel } from './Flywheel.js'
Expand All @@ -29,6 +30,8 @@ export function createRower (rowerSettings) {
let _recoveryDuration
let drivePhaseStartTime = 0.0
let _driveDuration
let drivePhaseStartFlywheelWork = 0.0
let _driveFlywheelWork = 0.0
let drivePhaseStartAngularPosition = 0.0
let drivePhaseAngularDisplacement = 0.0
let _driveLinearDistance = 0.0
Expand Down Expand Up @@ -157,6 +160,8 @@ export function createRower (rowerSettings) {
// Here, we conclude the Drive Phase
// The FSM guarantees that we have a credible driveDuration and cycletime in normal operation, but NOT at the start
_driveDuration = flywheel.spinningTime() - drivePhaseStartTime
_driveFlywheelWork = flywheel.totalWork() - drivePhaseStartFlywheelWork
drivePhaseStartFlywheelWork = flywheel.totalWork()
drivePhaseAngularDisplacement = flywheel.angularPosition() - drivePhaseStartAngularPosition
_driveLength = drivePhaseAngularDisplacement * sprocketRadius
_driveLinearDistance = calculateLinearDistance(drivePhaseAngularDisplacement, _driveDuration)
Expand Down Expand Up @@ -253,6 +258,10 @@ export function createRower (rowerSettings) {
return flywheel.spinningTime()
}

function totalFlywheelWorkSinceStart () {
return flywheel.totalWork()
}

function driveLastStartTime () {
return drivePhaseStartTime
}
Expand Down Expand Up @@ -316,6 +325,14 @@ export function createRower (rowerSettings) {
}
}

function driveFlywheelWork () {
if (_driveDuration >= rowerSettings.minimumDriveTime) {
return _driveFlywheelWork
} else {
return undefined
}
}

function driveAverageHandleForce () {
if (_driveDuration >= rowerSettings.minimumDriveTime) {
return driveHandleForce.average()
Expand Down Expand Up @@ -410,6 +427,8 @@ export function createRower (rowerSettings) {
drivePhaseStartTime = 0.0
drivePhaseStartAngularPosition = 0.0
_driveDuration = 0.0
drivePhaseStartFlywheelWork = 0.0
_driveFlywheelWork = 0.0
drivePhaseAngularDisplacement = 0.0
_driveLinearDistance = 0.0
recoveryPhaseStartTime = 0.0
Expand All @@ -435,13 +454,15 @@ export function createRower (rowerSettings) {
driveLastStartTime,
totalMovingTimeSinceStart,
totalLinearDistanceSinceStart,
totalFlywheelWorkSinceStart,
cycleDuration,
cycleLinearDistance,
cycleLinearVelocity,
cyclePower,
driveDuration,
driveLinearDistance,
driveLength,
driveFlywheelWork,
driveAverageHandleForce,
drivePeakHandleForce,
driveHandleForceCurve,
Expand Down
Loading
Loading