Hi there, I am working on FIT export from Rowsandall that captures some of the fields as developer fields. Here’s what I am planning so far. Your feedback is appreciated:
| rowingdata column | Developer field name | Base type | Scale | Units |
|---|---|---|---|---|
| DriveLength (meters) | DriveLength | UINT16 | 1000 | m |
| DriveTime (ms) | DriveTime | UINT16 | 1 | ms |
| DragFactor | DragFactor | UINT16 | 1 | |
| StrokeRecoveryTime (ms) | StrokeRecoveryTime | UINT16 | 1 | ms |
| AverageDriveForce (lbs) | AverageDriveForceLbs | UINT16 | 10 | lbs |
| PeakDriveForce (lbs) | PeakDriveForceLbs | UINT16 | 10 | lbs |
| AverageDriveForce (N) | AverageDriveForceN | UINT16 | 10 | N |
| PeakDriveForce (N) | PeakDriveForceN | UINT16 | 10 | N |
| AverageBoatSpeed (m/s) | AverageBoatSpeed | UINT16 | 1000 | m/s |
| WorkoutState | WorkoutState | UINT8 | 1 |
Regular fields:
| rowingdata column | FIT field | Type | Notes |
|---|---|---|---|
| TimeStamp (sec) | timestamp |
Native | Seconds since 1970-01-01 UTC; relative timestamps are combined with row_date |
cum_dist or Horizontal (meters) |
distance |
Native | Cumulative distance in meters (FIT scale 100) |
Cadence (stokes/min) |
cadence |
Native | Stroke rate in strokes/min; omitted if zero |
HRCur (bpm) |
heart_rate |
Native | Clamped to 0–255 (FIT uint8) |
Power (watts) |
power |
Native | Clamped to 0–65535 (FIT uint16) |
Stroke500mPace (sec/500m) |
enhanced_speed |
Native | Converted to m/s via 500/pace; FIT scale 1000 |
latitude |
position_lat |
Native | Degrees; omitted if missing or invalid |
longitude |
position_long |
Native | Degrees; omitted if missing or invalid |
And session data:
| Source | FIT message | Fields |
|---|---|---|
| Session totals | SessionMessage |
total_distance, total_calories, avg_heart_rate, max_heart_rate, avg_cadence, avg_power |
| Lap boundaries | LapMessage |
Same as session; currently one lap for the whole workout |
| Position | LapMessage |
start_position_lat/long, end_position_lat/long (degrees) when valid |