OBD بيانات المركبة
اقرأ عدد الدورات في الدقيقة المقدمة من السيارة ودرجة حرارة سائل التبريد ودرجة حرارة الزيت والوقود وغيرها من المعلمات عبر محول بلوتوث متوافق. تشرح هذه المقالة شروط القراءة، وتكوين المعلمة، وتحديث البيانات، وقواعد استخدام القراءات في الأدوات والرحلات.
معلمات السيارة ونتائج القراءة
يتم استخدام OBD لقراءة البيانات المقدمة من وحدة التحكم في السيارة. وحدة التحكم في السيارة، والتي تسمى أيضًا ECU، مسؤولة عن المحرك وناقل الحركة والأنظمة الأخرى؛ يرسل CapDrive الطلبات إلى وحدات التحكم هذه من خلال المحول ويحول البيانات المستلمة إلى قراءات.
"المعلمة" في التطبيق عبارة عن جزء من البيانات التي يجب قراءتها وعرضها، مثل سرعة المحرك (RPM)، أو درجة حرارة سائل التبريد، أو الحالة. يحمل طلبات القراءة وصيغ التحويل والوحدات. يمكن استخدام المعلمات الرقمية للأرقام أو التقدم أو المنحنيات؛ يمكن عرض معلمات الحالة على شكل D وP وما إلى ذلك من خلال تعيين النص.
على سبيل المثال، يمكن الحصول على معلمة درجة حرارة سائل التبريد باستخدام الطلب 0105 للحصول على بايت بيانات A وتحويلها وفقًا لـ A - 40. إذا كانت القيمة العشرية للبايت الذي تم إرجاعه هي 123، تكون النتيجة 83 °C. يجب أن تكون طريقة الاتصال وتعريف الطلب وقواعد التحويل صحيحة للحصول على قراءات قابلة للاستخدام.
تعتمد المعلمات التي تدعمها السيارة على الطراز والسنة ونظام الطاقة وحالة وحدة التحكم. يمكن قراءة القيم التي توفرها السيارة فعليًا فقط، ولا يؤدي تعديل الاسم أو الوحدات إلى زيادة قدرات البيانات الخاصة بالمركبة نفسها.
نطاق الدعم وشروط الاستخدام
يتطلب اتصال OBD للمركبة CapDrive Plus، محول بلوتوث منخفض الطاقة (BLE). يدعم تعليمات ELM327، وأذونات Bluetooth على iPhone. محولات Bluetooth الكلاسيكية وWi-Fi غير مدعومة حاليًا.
فقط بعد توصيل المحول بواجهة OBD الخاصة بالمركبة وتشغيله كما هو مطلوب بواسطة السيارة، يمكن للتطبيق التواصل مع السيارة. تتطلب بعض المعلمات أن تكون السيارة في حالة معينة، مثل تشغيل وحدة التحكم، أو تشغيل المحرك، أو تشغيل النظام المقابل. إن تضمين "Bluetooth" في اسم المحول لا يثبت وحده أنه يتوافق مع BLE والتوجيه.
يمكن عرض قراءة OBD، لا حاجة لبدء الرحلة أولاً، واختبارها في قائمة المعلمات أو محرر المعلمات. لا يحدد ما إذا كانت رحلة الهاتف المحمول قد بدأت ما إذا كانت السيارة ستعيد درجة حرارة سائل التبريد والسرعة (RPM) والمعلمات الأخرى.
يدعم CapDrive تكوين طلبات القراءة للخدمات السداسية 01، 21، 22. للاستخدام العادي، يمكن استخدام الإعداد المسبق المطابق للمركبة؛ يخضع عنوان الطلب المحدد والصيغة لتعريف معلمة السيارة أو المحدد مسبقًا.
الاتصال وإدارة الجهاز
الإدخال: المزيد (...) → اتصال OBD بالمركبة. تعرض صفحة الجهاز المحولات القريبة والأجهزة المحفوظة، ويتم حفظ تكوين المعلمة للمحول في إعدادات الجهاز.
الاتصال وإعادة الاتصال لأول مرة
عند الاتصال لأول مرة، سيقوم التطبيق بإنشاء اتصال Bluetooth، وتهيئة المحول، وتحديد بروتوكول السيارة، والاستعلام عن السيارة للإبلاغ عن المعلمات القياسية المدعومة. بعد النجاح، ستتم إضافة المعلمات القياسية القابلة للتهيئة إلى قائمة الأجهزة. يعتمد ما إذا كانت المعلمات القياسية لها قيم في الحالة الحالية على نتائج القراءة الفعلية.
عند إعادة توصيل جهاز موجود، سيستمر في استخدام التكوين الأصلي، بما في ذلك المعلمات المعدلة والقوائم التي تم مسحها بشكل نشط. بعد حذف المعلمة، لن تؤدي إعادة الاتصال إلى إضافتها مرة أخرى. عند الحاجة إلى قراءات تكميلية، يمكن استيراد معلمات محددة مسبقًا أو جديدة.
مصدر البيانات الحالي
يشير "الجهاز الحالي" إلى المحول الذي يوفر بيانات السيارة إلى CapDrive. يمكن استخدام جهاز واحد فقط كمصدر البيانات الحالي في المرة الواحدة. يتم حفظ معلمات وإعدادات كل جهاز بشكل مستقل؛ عند التبديل إلى جهاز آخر، لن يتم استخدام مراجع المعلمات الخاصة بالجهاز السابق تلقائيًا.
قطع الاتصال يحتفظ بالتكوين. سيقوم تجاهل الجهاز بإزالة تكوين الجهاز وذاكرة التخزين المؤقت. عندما تحتاج إلى ترحيل المعلمات، يمكنك تصدير التكوين ثم استيراده إلى الجهاز المستهدف؛ بالنسبة للأدوات المخصصة، يجب عليك إعادة تحديد المعلمات الموجودة أسفل الجهاز المستهدف.
الإعدادات المسبقة للمعلمات وملفات التكوين
الافتراضي هو مجموعة من تكوينات قراءة المعلمات المكتوبة بالفعل، مما يلغي الحاجة إلى ملء الطلبات والصيغ عنصرًا تلو الآخر. يوفر الإعداد المسبق القياسي OBD-II المعلمات القياسية، ويوفر الإعداد المسبق لنموذج السيارة تعريفات المعلمات لطراز السيارة المقابل. عند اختيار نموذج معد مسبقًا، يجب عليك التحقق من سنة الطراز وإصدار الطاقة.
استيراد إلى الجهاز المحدد
افتح مكتبة التكوين من أسفل قائمة معلمات الجهاز. سيؤدي التنزيل في التطبيق إلى الدخول إلى واجهة الاستيراد الخاصة بالجهاز؛ تنزيل ملف JSON من خلال المتصفح يمكن تحديد استيراد الإعدادات في قائمة إعدادات الجهاز.
يتم إلغاء تحديد قائمة الاستيراد بشكل افتراضي، ويتم حفظ المعلمات المحددة بشكل صريح فقط. يمكنك أولاً التحقق من الاسم والقراءة الحالية، ثم التحقق من التكوين من خلال الترس الموجود على اليمين. لن يؤدي إغلاق واجهة الاستيراد إلى حفظ المسودات غير المؤكدة.
التكرارات وتحديثات التكوين
سيتم وضع علامة على المعلمات التي لها نفس طريقة القراءة وقاعدة فك التشفير ووحدة الإخراج كتكرارات وستستمر في استخدام معرف المعلمة الأصلي. تعديل اسم العرض فقط لا يجعل نفس المعلمة عنصر قراءة جديد.
يمكن أن يوفر الطلب معلمات متعددة، مثل درجتي حرارة في نفس الاستجابة؛ قد يأتي نفس الاسم أيضًا من وحدات تحكم مختلفة أو صيغ مختلفة، لذلك لا يمكن الحكم على التكرارات بالاسم فقط. يتم استيراد العناصر ذات الطلب المعدل أو قواعد فك التشفير كمعلمات جديدة ولا تتم الكتابة فوق العناصر القديمة بالاسم وحده.
عند الاستيراد إلى محول آخر، يتم إنشاء مرجع المعلمة الخاص بالجهاز الهدف. يجب أن تقوم الأجهزة المخصصة بإعادة تحديد المعلمات المقابلة للجهاز المستهدف في ربط الإدخال؛ احتفظ بمعرف الإدخال دون تغيير ولا حاجة لتعديل الكود.
قيود الملف
يستخدم التكوين JSON، ومعرف التنسيق هو capdrive.obd، وappVersion هو إصدار التطبيق المطلوب؛ تتم كتابة رقم إصدار التطبيق الحالي عند التصدير. عندما يكون الإصدار غير كاف، سيُطلب منك الترقية. يمكن أن يصل الملف الواحد إلى 5 MiB ويحتوي على ما يصل إلى 3000 معلمة. يحفظ الملف تكوين القراءة ولا يحتوي على اتصال Bluetooth الخاص بالجهاز، ولا يضمن أن جميع العناصر ستكون قابلة للقراءة على السيارة المستهدفة.
تكوين المعلمة وفك التشفير
افتح المحرر عبر الترس الموجود على يمين المعلمات. فيما يلي وصف الحقول بالترتيب "ما يجب قراءته من السيارة → كيفية التحويل → كيفية تحديد الصلاحية". يستخدم اختبار القراءة التكوين الحالي في المحرر للتحقق من النتائج؛ بعد النقر فوق "حفظ"، تصبح التعديلات هي التكوين المحفوظ للجهاز.
الاسم وتكرار التحديث
يتم استخدام الاسم لتحديد معلمات السيارة. تتم إدارة المعرفات الداخلية تلقائيًا بواسطة التطبيق ولا يتم تعبئتها في محرر المعلمات، ولا يتم طلبها PID؛ لا تحمل الإعدادات المسبقة المصدرة المعرفات الأصلية للجهاز. يستخدم البرنامج النصي للأداة معرف الإدخال المحدد الخاص به ويحدد معلمات السيارة من خلال ربط الإدخال.
يتم ملء فاصل القراءة (ثوانٍ) بالثواني ويكون النطاق 0.3–99999. على سبيل المثال، ثانية واحدة تعني أن الفاصل الزمني للاستعلام الهدف هو ثانية واحدة. يتأثر التحديث الفعلي أيضًا باستجابة السيارة والطلبات الأخرى ومتطلبات القراءة الحالية. تعمل العناصر المرئية في قائمة المعلمات واختيار الأداة واستخدام بيانات الرحلة على إنشاء متطلبات القراءة؛ إن مجرد استيراد المعلمات لا يؤدي إلى استقصاء القائمة بأكملها دائمًا بتردد ثابت. يمكن إعادة استخدام المعلمات التي تشترك في نفس الطلب في الاستجابة.
إعدادات الطلب
| مجال | معنى وطريقة التعبئة |
|---|---|
| يخدم | فئة الطلب باستخدام الرقم السداسي العشري. على سبيل المثال، الخدمة المطلوبة لـ 0105 هي 01. |
| PID | رقم عنصر البيانات في هذه الخدمة. على سبيل المثال، 0105's PID هو 05؛ 01 و21 يستخدمان PID المكون من رقمين، ويستخدم 22 PID المكون من أربعة أرقام. |
| طلب CAN ID | عنوان مراقب المركبة الذي يستقبل الطلب. عند تركه فارغًا، يستخدم البروتوكول العنونة الوظيفية؛ يجب أن تحتفظ الإعدادات الافتراضية المتطابقة عادةً بالعنوان الأصلي. |
| الرد على تصفية CAN ID | حدد استجابة وحدة التحكم المستخدمة لتجنب تحديد المصدر الخاطئ عندما تقوم وحدات تحكم متعددة بإرجاع البيانات. |
| عنوان الوجهة الممتد، عنوان الاستلام الممتد | تكوين معالجة اتصالات إضافي للاستخدام بواسطة بروتوكولات السيارة التي تتطلب ذلك. |
| معلمات مهلة الاستجابة | تكوين المهلة السداسية العشرية الذي يستخدمه المحول، لا يتم ملؤه بالثواني؛ إنه إعداد مختلف عن الفاصل الزمني للقراءة. |
| يمكن التحكم في التدفق المخصص | يُستخدم للطلبات التي تتطلب تكوينًا محددًا للتحكم في التدفق، كما هو محدد بواسطة السيارة المقابلة. |
صيغ التحويل وترتيب البايت والوحدات
عادة ما تكون استجابة السيارة هي بايت البيانات. يمثل A بايت البيانات الأول، ويمثل B البايت الثاني، وهكذا، باستثناء رأس البروتوكول. تدعم الصيغة العمليات الحسابية والبتية والمقارنات والعمليات المنطقية والتعبيرات الشرطية؛ إنه ليس برنامجًا نصيًا يمكنه استدعاء وظائف JavaScript التعسفية.
على سبيل المثال، تستخدم درجة حرارة سائل التبريد A - 40؛ تستخدم سرعة المحرك القياسية (RPM) (A * 256 + B) / 4. إذا كان A = 26، B = 248، فإن الأخير يحصل على 1726 rpm. يجب أن تكون صيغة المعلمة متوافقة مع معنى البايتات التي يتم إرجاعها بواسطة الطلب.
تحدد Endianness كيفية تفسير الحقول متعددة البايت: تضع النهاية الكبيرة البايت عالي الترتيب أولاً، وتضع النهاية الصغيرة البايت ذو الترتيب المنخفض أولاً. ينفذ التطبيق الصيغة الرقمية بعد أمر المعالجة الذي تم تكوينه، ولا ينبغي للصيغة تبديل وحدات البايت بشكل متكرر مرة أخرى.
يجب تمييز وحدة نتيجة الصيغة عن وحدة العرض. يؤدي تعديل اسم الوحدة المخصصة إلى تغيير التسمية فقط ولا يؤدي إلى تعديل قيمة الصيغة؛ عند اختيار وحدة عرض متوافقة لكمية مادية قياسية موجودة، يمكن للتطبيق إجراء التحويل المقابل. يرجى التحقق من الوحدات الأصلية المستخدمة في الصيغة لتجنب التحويلات المتكررة.
شروط القراءة ونطاق صالح
| إعدادات | التأثير الفعلي |
|---|---|
| الحد الأدنى لعدد بايت الاستجابة | استبعاد عمليات الإرجاع ذات الطول غير الكافي لمنع استمرار الحساب عند فقدان وحدات البايت. |
| قراءة الشروط | يتم تقييم الحالة على بايتات الاستجابة الأولية، مثل A != 0. لا تتوفر هذه القراءة عندما تكون النتيجة صفرًا، أو البايتات المفقودة، أو فشل الحساب. |
| القيمة الدنيا، القيمة القصوى | المشبك النتائج الرقمية. على سبيل المثال، عند تكوين النطاق الصالح على أنه من 0 إلى 100، سيتم عرض 120 كـ 100. يجب أن تكون القيمة القصوى أكبر من القيمة الدنيا؛ إذا لم يتم تعيين الحد الأدنى للقيمة، فسيتم التعامل معها على أنها صفر. فقط تحديد القيمة الدنيا لن يحد من السعة بشكل منفصل. |
| الحد الأدنى الفعال والحد الأعلى الفعال | ويتم استبعاد النتائج غير الصالحة، وكذلك الحدود نفسها. على سبيل المثال، عندما يكون الحد الأعلى 100، لا تتوفر نتائج أكبر من أو تساوي 100. |
تمرر الاستجابة الطول وتتحقق من حالة القراءة قبل فك تشفيرها. يتم تحديد النتيجة الرقمية أولاً، ومن ثم يتم التحقق من الحدود العليا والدنيا الفعالة؛ لا يتم إخراج أي قراءة عندما لا يمكن الحصول على قيمة محدودة. تستخدم حالة القراءة الاستجابة الأولية قبل تحويل ترتيب البايت.
تعيين النص
يعرض تعيين النص القيمة التي تم الحصول عليها بواسطة صيغة كنص، مثل 1 → D. يدعم المفتاح الكسور العشرية والأرقام السالبة ويجب أن تكون قيمة محدودة فريدة. 1.5 و1.50 يمثلان نفس العنصر. يُسمح بالحرفية أن تكون سلسلة فارغة.
عند الضغط على التعيين، يتم إرجاع السلسلة المقابلة؛ عندما لا يتم الضغط عليه، يتم إرجاع رقم عند تشغيل إرجاع القيمة الرقمية الأصلية عند عدم التطابق، ويتم إرجاع null عند إيقاف تشغيله. ينطبق هذا الإعداد غير المطابق عند وجود التعيين. لن يستمر النص الناتج في إجراء القطع الرقمي.
لذلك، قد تقوم نفس المعلمة بإرجاع رقم أو نص أو قيمة فارغة، ويجب أن يتعامل رمز الأجهزة مع النوع الفعلي للمعلمة. عندما يحدث الموقف "يمكن عرض بعض القيم واختفاء القيم الأخرى"، يجب عليك التحقق مما إذا كان التعيين مطابقًا وما إذا كانت الإعدادات غير متطابقة.
حفظ ورسالة خطأ
ستشير التكوينات غير الصالحة إلى الحقول والأسباب، ثم تقوم بالحفظ أو الاختبار بعد التصحيح. PID للخدمات 01 و 21 عبارة عن رقم سداسي عشري مكون من رقمين، و22 مكون من أربعة أرقام؛ CAN ID يتكون من 3 أو 8 أرقام، والعنوان الموسع ومعلمات المهلة مكونة من رقمين. الفاصل الزمني للقراءة هو 0.3–99999 ثانية، والحد الأدنى لعدد بايتات الاستجابة هو عدد صحيح 0–4096، ويصل كل من الصيغة وشروط القراءة إلى 1,024 UTF-8 بايت. يجب أن تكون القيمة محدودة، ولا يمكن أن تكون القيمة الدنيا أكبر من القيمة القصوى، ويجب أن يكون الحد الأدنى الصالح أقل من الحد الأعلى الصالح؛ لا يمكن تكرار مفتاح تعيين النص.
استبدال بيانات الرحلة
استبدال بيانات الرحلة يجعل القراءة الأساسية تستخدم المعلمة OBD المحددة. على سبيل المثال، من خلال تحديد معلمة سرعة السيارة على أنها "سرعة"، يمكن لحقل السرعة الأساسية والمقاييس المدمجة المرتبطة وسجلات الرحلة استخدام قراءة السيارة هذه.
تشمل الأهداف البديلة السرعة، وG الطولي، وG الجانبي، والملعب والتدحرج. يقبل km/h أو mph للسرعة، وg أو m/s² للتسارع، والدرجات أو الراديان للزاوية. سيقوم التطبيق بتحويل الوحدات حسب الحاجة للهدف.
يتطلب الاستبدال تزويد المعلمات بالأرقام والوحدات والنطاقات المناسبة. لا يمكن استخدام المعلمات ذات تعيين النص لاستبدال الحد؛ سيتم أيضًا رفض النتائج الأصلية خارج نطاق التكوين، ولن يتم اعتبار القيم الحدية بعد التحديد بمثابة قياسات حد صالحة.
استخدم هذا المصدر عندما تكون هناك قراءات صالحة لـ OBD؛ يمكنك الرجوع إلى بيانات الهاتف المحمول عندما تكون القراءات مفقودة أو منتهية الصلاحية أو غير صالحة. قد تظل هذه القراءة الأساسية فارغة عندما يكون مصدر الهاتف المحمول غير متاح أيضًا. لا يحدد استيراد المعلمات العادية أهداف الاستبدال تلقائيًا.
يمكن عرض المعلمات مثل درجة حرارة سائل التبريد، وسرعة الدوران (RPM)، وما إلى ذلك بشكل منفصل في الجهاز المخصص، ويمكن استخدام مراجع OBD الخاصة بها مباشرة دون تكوين استبدال الشوط.
الوصول إلى أداة مخصصة
انقر فوق الترس الموجود بجوار إعدادات العداد → ربط المدخلات لإدخال تكوين المعلمات وإضافة إدخال بيانات OBD، على سبيل المثال المعرف coolant. ارجع إلى رابط الإدخال وحدد معلمة درجة حرارة سائل التبريد ضمن الأجهزة الخاصة به. يقرأ البرنامج النصي من خلال $data.current.coolant؛ لا يلزم كتابة UUID الخاص بمعلمات السيارة في الكود.
تتضمن القراءات value وunit، على سبيل المثال { value: 83, unit: '°C' }. قد تُرجع تعيينات القيم إلى نصوص أيضًا سلاسل، ويجب التحقق من النوع قبل تنسيق الأرقام. عندما لا يكون مرتبطًا، يكون الإدخال بالكامل null؛ عندما يكون مرتبطًا ولكن لا توجد قراءة مؤقتًا، يكون value هو null، ولا يزال unit يأخذ وحدة التكوين.
بعد استيراد أعمال الآخرين أو تغيير المحول، أعد ربط الإدخال الحالي لمواصلة استخدام الكود. يتم استخدام النوع المتوقع للحصول على تلميحات، ولا يتم إلقاء قيمة إرجاع السيارة. تستخدم المعاينة إدخالاً تناظريًا، ويجب فحص الجهاز الحالي واختبار القراءة عند تأكيد بيانات السيارة الحقيقية.
صحة البيانات وتشخيص الأخطاء
حالة القراءة
وصحة الاتصال وتلقي الرد وصحة القراءة ثلاثة شروط مختلفة. قد لا تنتج الاستجابة قيمة قابلة للاستخدام بسبب عدم كفاية الطول، أو ظروف القراءة غير المرضية، أو الصيغة غير الصالحة، أو فقدان تعيين النص.
قراءات وقت التشغيل لها تاريخ انتهاء الصلاحية. بعد قطع الاتصال، أو فشل القراءة أو انتهاء صلاحية البيانات، يجب ألا يستمر استبدال الأداة والرحلة في استخدام القيمة القديمة باعتبارها البيانات الصالحة الحالية. يمكن أن تحتفظ قائمة المعلمات بآخر قراءة ناجحة لأغراض العرض التوضيحي والتي لا تساوي إخراجًا مباشرًا صالحًا؛ يمكن التحقق من نتيجة الطلب الحالي باستخدام اختبار القراءة.
الصفر هو قيمة صالحة، والقيمة الخالية تعني أنه لا توجد قراءات متاحة حاليًا. السلسلة الفارغة في الخريطة النصية هي نتيجة النص المطابقة، والتي تختلف أيضًا عن الاختبار المفقود.
تحديد الموقع حسب مستوى الخطأ
| أداء | نطاق التفتيش المقابل |
|---|---|
| غير قادر على اكتشاف الجهاز | محول مدعوم، نوع BLE، iPhone Bluetooth وأذونات التطبيقات. |
| تم توصيل Bluetooth ولكن فشلت عملية التهيئة | دعم أمر المحول وحالة اتصالات السيارة وتحديد البروتوكول. |
| قائمة المعلمات فارغة | التكوين المحفوظ للجهاز الحالي، ونتائج استعلام القدرة الأول، وما إذا كان قد تم مسح القائمة بشكل نشط. لن تؤدي إعادة الاتصال إلى استعادة العناصر المحذوفة تلقائيًا. |
| لا توجد قراءة صالحة لمعلمة واحدة | عنوان الاستعلام وPID وطول الاستجابة وشروط القراءة وصيغة فك التشفير والنطاق وتعيين النص. |
| القيمة موجودة ولكن المعنى أو الوحدة غير طبيعية. | قم بالضبط المسبق لما إذا كان طراز السيارة المطبق وترتيب البايت والصيغة والوحدة متسقين. |
| تظهر القائمة القيمة القديمة، والعداد ليس له قيمة | ما إذا كانت القراءة الحالية قد انتهت أو فشلت في القراءة؛ لا تعني ذاكرة التخزين المؤقت لعرض القائمة أن البيانات في الوقت الفعلي صالحة. |
| هناك قراءات صالحة لكن العداد المخصص لا يظهر | الجهاز الحالي والمعلمات والتعبيرات المحددة ومعالجة التعليمات البرمجية للأرقام والأحرف والقيم الخالية. |
| لم يسري مفعول استبدال خط سير الرحلة | أهداف الاستبدال، وأنواع قيم المعلمات، وتوافق الوحدة والنطاق، وصلاحية القراءة. |
يمكن أن تتضمن ملاحظات المشكلة المعلومات التالية للتمييز بين مشكلات الاتصال ومشكلات التكوين ومشكلات العرض:
- النموذج والسنة وإصدار الطاقة ونموذج المحول.
- الجهاز الحالي وأسماء الإعدادات المسبقة والمعلمات.
- اختبار قراءة النتائج أو أخطاء محددة.
- هل يؤثر ذلك على جميع المعلمات أو المعلمات الفردية، وما إذا كانت المشكلة تحدث في قائمة المعلمات أو استبدال الرحلة أو الأداة المخصصة.