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 использует эти фиксированные имена:

Записи CSV и TCX побайтово совпадают с отдельными экспортами. В собранном архиве может не быть session.json; тогда импортёр восстанавливает то, что может, из этих записей.

manifest.json

formatVersion — единственный обязательный ключ. Остальные значения могут отсутствовать, когда инструмент собирает архив из отдельных файлов.

session.json

Версия схемы тренировки — 1. Значения не округляются. Обязательные ключи отмечены ниже; остальные необязательны.

Тренировка

Объект длительности

Объект отсчёта

Объект гребка

Объект кривой усилия

Объект удара сердца

Объект гонки

Объект происхождения