ROWFILE/1
.rowfile 將一次完整的划船訓練保存在單一檔案中。Row Smarter 現已支援匯出與匯入。它包含無損訓練紀錄,以及供試算表與訓練網站使用的 CSV、TCX 匯出內容。
您現在就能直接分享此檔案。完整訓練包含其中,傳送過程不會遺失資料。
容器框架
容器採用確定性的串接格式,並非 ZIP 檔案。各項目的原始位元組外有 ASCII 框架:
ROWFILE/1\n
>> <name> <size in bytes, decimal>\n
<size raw bytes>\n
...repeated per entry...manifest.json 會先寫入。讀取工具必須接受任意項目順序、略過不認識的名稱,並拒絕重複出現的名稱。
項目名稱
Row Smarter 寫入以下固定名稱:
manifest.json:封存版本與寫入工具資訊。session.json:匯入工具信任的無損副本。summary.csv:訓練摘要匯出。samples.csv:記錄的樣本。strokes.csv:記錄的划槳。rowingdata.csv:rowingdata 風格的匯出。beats.csv:原始逐次心跳間隔。session.tcx:TCX 匯出。
CSV 與 TCX 項目與個別匯出檔的位元組完全相同。拼接的封存檔可能沒有 session.json;此時匯入工具會盡可能從這些項目還原資料。
manifest.json
formatVersion 是唯一必填鍵。當工具從個別檔案拼接封存檔時,其他值可省略。
formatVersion:整數。目前的容器格式為1。sessionID:可選的 UUID 字串。appVersion:可選字串。writer:可選字串。Row Smarter 寫入RowSmarter;還原工具寫入stitch-rowfile。
session.json
訓練結構版本為 1。數值不會四捨五入。下方標示必填鍵,其餘皆為可選。
訓練
v:必填整數,訓練結構版本。id:必填 UUID 字串,訓練識別碼。start:必填數值,自平台Date參考日期起算的秒數。dur:必填時長物件;mov:運動時間的時長物件。dist:必填數值,距離,單位為公尺。name:訓練課名稱;tz:開始時的時區識別碼;utc:開始時與 UTC 的時差,單位為秒。mass:運動員體重,單位為公斤;age:運動員年齡,單位為歲。maxW:最大瓦數;minSplit:每 500 公尺最少秒數;maxSR:最大槳頻。plan:已儲存的WorkoutPlan文件;race:競賽物件。avgPace:每 500 公尺平均秒數;avgW:平均瓦數;work:總功,單位為焦耳;kcal:千卡。strokeCount:必填整數;avgSR:平均槳頻。avgHR:平均心率,每分鐘心跳次數;peakHR:峰值心率,每分鐘心跳次數。avgLen:平均划距,單位為公分;avgRatio:平均拉槳與回槳比率。samples:必填的樣本物件陣列;strokes:必填的划槳物件陣列;beats:必填的心跳物件陣列。prov:來源資訊物件;hk:HealthKit 訓練 UUID 字串。
時長物件
s:必填整數,整秒數。a:必填整數,阿秒數。
樣本物件
t:必填時長物件,已過時間。d:距離,單位為公尺;p:配速,每 500 公尺秒數;w:瓦數。sr:槳頻;sc:槳數;hr:心率,每分鐘心跳次數。df:drag factor;sl:划距,單位為公分。ap:平均配速,每 500 公尺秒數;aw:平均瓦數;wj:功,單位為焦耳。hr0:原始心率,每分鐘心跳次數。
划槳物件
i:必填整數,划槳識別碼;t:必填時長物件,開始時間。dr:拉槳時長;rc:回槳時長;ds:時間為推導值而非設備回報值時為 true。d:距離,單位為公尺;w:平均瓦數。fc:力量曲線物件;pf:峰值力量,單位為牛頓;af:平均力量,單位為牛頓。dl:拉槳長度,單位為公分;sd:單槳距離,單位為公尺。
力量曲線物件
f:必填的力量樣本陣列。dt:必填時長物件,取樣間隔。cal:必填布林值,表示樣本是否經過校準。
心跳物件
e:必填時長物件,已過時間。r:必填數值,心跳間隔,單位為秒。
競賽物件
id:必填競賽識別碼;name:競賽名稱;dist:競賽距離,單位為公尺。own:運動員的參賽者識別碼;src:結果來源。field:必填參賽者陣列。每位參賽者都有必填的參賽者識別碼p,以及可選的顯示名稱n、航道l、名次r、公尺距離d、已過毫秒數e與完成旗標f。
來源資訊物件
kind:划船機種類;erg:划船機名稱;hrm:心率感測器名稱。app:App 版本;build:App 組建;ver:記錄版本。si:取樣間隔,單位為秒;npc:每計數對應的牛頓數;hrfix:心率修復次數。imf:匯入格式;isrc:匯入來源 App;iat:匯入時間,自平台Date參考日期起算的秒數;ifn:匯入檔名。fid:訓練資料保真度;mtd:運動時間是否為推導值。