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: سلسلة UUID لتمرين HealthKit.
كائن المدة
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: إصدار التطبيق؛build: رقم بنائه؛ver: إصدار التسجيل.si: الفاصل بين العينات بالثواني؛npc: القوة بالنيوتن لكل وحدة عدّ؛hrfix: عدد تصحيحات معدل ضربات القلب.imf: صيغة الاستيراد؛isrc: التطبيق المصدر للاستيراد؛iat: وقت الاستيراد بالثواني منذ التاريخ المرجعي لنوعDateفي المنصة؛ifn: اسم الملف المستورد.fid: دقة حفظ تفاصيل الجلسة؛mtd: ما إذا كان وقت الحركة مشتقًا.