ROWFILE/1
Een .rowfile bewaart één volledige roeisessie in één bestand. Row Smarter kan het nu al exporteren en importeren. Het bevat de verliesvrije sessiegegevens naast CSV- en TCX-export voor spreadsheets en trainingssites.
Je kunt dit bestand nu al rechtstreeks delen. De hele sessie gaat mee, zonder gegevensverlies onderweg.
Containeropbouw
De container is een deterministische aaneenschakeling, geen zipbestand. ASCII-kopregels omringen de onbewerkte bytes van elke vermelding:
ROWFILE/1\n
>> <name> <size in bytes, decimal>\n
<size raw bytes>\n
...repeated per entry...manifest.json wordt als eerste geschreven. Lezers moeten vermeldingen in elke volgorde accepteren, onbekende namen overslaan en een naam die twee keer voorkomt weigeren.
Namen van vermeldingen
manifest.json: versie en identiteit van het archief.session.json: de volledige verliesvrije sessie.summary.csv: het sessieoverzicht.samples.csv: metingen tijdens de sessie.strokes.csv: gegevens per haal.rowingdata.csv: export in rowingdata-stijl.beats.csv: onbewerkte slag-tot-slagintervallen.session.tcx: de TCX-export.
De CSV- en TCX-vermeldingen zijn byte voor byte gelijk aan losse exports. Een samengesteld archief kan geen session.json hebben; de importer herstelt dan wat mogelijk is uit de andere vermeldingen.
manifest.json
Alleen formatVersion is verplicht. Andere waarden kunnen ontbreken wanneer een hulpmiddel losse bestanden samenvoegt tot een archief.
formatVersion: geheel getal. Het huidige containerformaat is1.sessionID: optionele UUID-tekenreeks.appVersion: optionele tekenreeks.writer: optionele tekenreeks. Row Smarter schrijftRowSmarter; het herstelhulpmiddel schrijftstitch-rowfile.
session.json
Het sessieschema heeft versie 1. Waarden worden niet afgerond. Verplichte sleutels staan hieronder aangegeven; alle andere sleutels zijn optioneel.
Sessie
v: verplicht geheel getal, versie van het sessieschema.id: verplichte UUID-tekenreeks, identiteit van de sessie.start: verplicht getal, seconden sinds de referentiedatum vanDateop het platform.dur: verplicht duur-object;mov: duur-object voor bewegingstijd.dist: verplicht getal, afstand in meters.name: trainingsnaam;tz: tijdzone-identificatie bij de start;utc: UTC-afwijking bij de start in seconden.mass: lichaamsgewicht in kilogrammen;age: leeftijd in jaren.maxW: maximaal vermogen in watt;minSplit: minimaal aantal seconden per 500 meter;maxSR: maximale slagfrequentie.plan: het opgeslagenWorkoutPlan-document;race: race-object.avgPace: gemiddeld aantal seconden per 500 meter;avgW: gemiddeld vermogen in watt;work: totale arbeid in joule;kcal: kilocalorieën.strokeCount: verplicht geheel getal;avgSR: gemiddelde slagfrequentie.avgHR: gemiddelde hartslag in slagen per minuut;peakHR: hoogste hartslag in slagen per minuut.avgLen: gemiddelde haallengte in centimeters;avgRatio: gemiddelde verhouding tussen haal en recover.samples: verplichte lijst met meetobjecten;strokes: verplichte lijst met haalobjecten;beats: verplichte lijst met hartslagobjecten.prov: herkomstobject;hk: UUID-tekenreeks van de HealthKit-training.
Duur-object
s: verplicht geheel getal, hele seconden.a: verplicht geheel getal, attoseconden.
Meetobject
t: verplicht duur-object, verstreken tijd.d: afstand in meters;p: tempo in seconden per 500 meter;w: vermogen in watt.sr: slagfrequentie;sc: aantal halen;hr: hartslag.df: dragfactor;sl: haallengte in centimeters.ap: gemiddeld tempo in seconden per 500 meter;aw: gemiddeld vermogen in watt;wj: arbeid in joule.hr0: onbewerkte hartslag in slagen per minuut.
Haalobject
i: verplicht geheel getal, identiteit van de haal;t: verplicht duur-object, starttijd.dr: duur van de haal;rc: duur van de recover;ds: waar als de timing is afgeleid in plaats van gerapporteerd.d: afstand in meters;w: gemiddeld vermogen in watt.fc: krachtcurve-object;pf: piekkracht in newton;af: gemiddelde kracht in newton.dl: haallengte in centimeters;sd: afstand per haal in meters.
Krachtcurve-object
f: verplichte lijst met krachtmetingen.dt: verplicht duur-object, meetinterval.cal: verplichte booleaanse waarde, of de metingen gekalibreerd zijn.
Hartslagobject
e: verplicht duur-object, verstreken tijd.r: verplicht getal, interval tussen hartslagen in seconden.
Race-object
id: verplichte race-identiteit;name: racenaam;dist: raceafstand in meters.own: deelnemersidentiteit van de roeier;src: bron van de uitslag.field: verplichte lijst met deelnemers. Elke deelnemer heeft de verplichte identiteitp, met optioneel weergavenaamn, baanl, positier, afstand in metersd, verstreken millisecondeneen eindvlagf.
Herkomstobject
kind: ergometertype;erg: ergometernaam;hrm: naam van de hartslagmeter.app: appversie;build: appbuild;ver: opnameversie.si: meetinterval in seconden;npc: kracht in newton per tel;hrfix: aantal herstelde hartslagmetingen.imf: importformaat;isrc: bronapp van de import;iat: importtijd in seconden sinds de referentiedatum vanDateop het platform;ifn: geïmporteerde bestandsnaam.fid: volledigheid van de sessie;mtd: of de bewegingstijd is afgeleid.