خصائص المورّدين
لتلبية الاحتياجات الخاصة بالشركاء، تسمح VHAL بخصائص المورِّدين التي يتم الوصول إليها من خلال واجهات برمجة تطبيقات النظام فقط. اتّبِع الإرشادات التالية عند التعامل مع خصائص المورّدين:
- حاول دائمًا استخدام خصائص النظام أولاً، ويجب استخدام خصائص الموردين كحلٍ أخير عندما لا يفي أي من خصائص النظام بطلبك.
- لمنع تقسيم المنظومة المتكاملة، يجب عدم استخدام سمات المورّدين لتكرار المركبة مواقع حالية في حزمة تطوير البرامج (SDK) VehiclePropertyIds: لمعرفة المزيد من المعلومات، يمكنك الاطّلاع على القسم 2.5، متطلبات السيارات في CDD:
- استخدِم الحقول التالية لإنشاء رقم تعريف الموقع:
- يتم استخدام مجموعة VENDOR
VehiclePropertyGroup:VENDOR
لخصائص المورّدين فقط. VehicleArea
اختَر نوع منطقة مناسبًا.VehiclePropertyType
اختَر نوع البيانات المناسب. النوع BYTES يسمح بتمرير البيانات الأولية، وهو ما يكفي في معظم الحالات. إرسال البيانات الضخمة بشكل متكرر من خلال خصائص الموردين إلى إبطاء الوصول إلى شبكة المركبات بالكامل. يُرجى توخي الحذر عند إضافة حمولة كبيرة.Property ID
اختَر معرّفًا فريدًا ثنائي البايت لخاصية المورِّد. على سبيل المثال، 0×1234.
- يتم استخدام مجموعة VENDOR
- ملء
VehiclePropConfig.configString
مع وصف موجز عن المورّد الموقع. يسمح هذا لأدوات التحقق من الصلاحية بوضع علامة على النسخ المماثل العرضي وخصائص المركبة. على سبيل المثال، "خاصي المخصص لـ XYZ". - إذن الوصول من خلال
CarPropertyManager
(لمكونات Java) أو من خلال
libvhalclient
(للإعلان المدمج مع المحتوى) الإجراءات المستحسنة عدم تعديل واجهات برمجة تطبيقات السيارة الأخرى، لأنّ ذلك قد يؤدي إلى مشاكل في التوافق في المستقبل.
إذن خصائص المورّدين
الإذن الافتراضي لأي خصائص بائع محددة هو
android.car.Car.PERMISSION_VENDOR_EXTENSION
للحصول على إذن أكثر دقة
التحكم، تدعم السمة SUPPORT_CUSTOMIZE_VENDOR_PERMISSION
. هذه النتيجة الثابتة
القيمة للقراءة فقط، حيث يحدد صفيف التكوين الخاص بها أذونات لخصائص المورد.
يتم ضبط configArray
على النحو التالي (i هو عدد صحيح يبدأ من 0):
configArray[3 * i]
PROId، وهو معرّف السمة لخاصية المورّد.configArray[3 * i + 1]
تعداد فيVehicleVendorPermission.aidl
إلى الإشارة إلى الإذن لقراءة قيمة الخاصية.configArray[3 * i + 2]
تعداد فيVehicleVendorPermission.aidl
إلى الإشارة إلى الإذن لكتابة قيمة الخاصية.
على سبيل المثال، تهيئ صفيفة التهيئة التالية خاصيتين للمورّد،
vendor_prop_1
وvendor_prop_2
، للحصول على الأذونات:
- يتطلب
vendor_prop_1
android.car.hardware.property.VehicleVendorPermission.PERMISSION_GET_CAR_VENDOR_CATEGORY_SEAT
في القراءة،android.car.hardware.property.VehicleVendorPermission.PERMISSION_SET_CAR_VENDOR_CATEGORY_SEAT
للكتابة. - يتطلب
vendor_prop-2
android.car.hardware.property.VehicleVendorPermission.PERMISSION_GET_CAR_VENDOR_CATEGORY_INFO
للقراءة ولا يمكن الكتابة في تطبيقات Android.
configArray = { PERMISSION_SET_VENDOR_CATEGORY_SEAT vendor_prop_2, PERMISSION_GET_VENDOR_CATEGORY_INFO, PERMISSION_NOT_ACCESSIBLE }
تستخدم خصائص المورّدين غير المدرَجة في هذا المصفوفة إذن المورّد التلقائي. فعندما
تم اختيار PERMISSION_NOT_ACCESSIBLE
، وبالتالي لا يمكن لتطبيقات Android الوصول إلى الموقع.
في المثال، لا يمكن لتطبيقات Android كتابة قيمة للحقل "vendor_prop_2
". مدمج مع المحتوى فقط
يمكن لعملاء VHAL الكتابة إلى هذا الموقع.
أنظمة مساعدة السائق المتقدمة (ADAS)
راجِع خصائص المركبات في ADAS.المقعد والتوجيه
يمكنك الاطّلاع على خصائص المقعد وعجلة القيادة.
التدفئة والتهوية وتكييف الهواء
يمكنك استخدام VHAL للتحكّم في التدفئة والتهوية وتكييف الهواء من خلال ضبط السمات ذات الصلة بنظام التدفئة والتهوية وتكييف الهواء. معظم خصائص التدفئة والتهوية وتكييف الهواء ترتبط بمناطق معينة في المركبة، على الرغم من أن العديد منها يمثل خصائص عالمية. تشمل نماذج الخصائص المحددة ما يلي:
الخاصية | الغرض |
---|---|
HVAC_TEMPERATURE_SET |
ضبط درجة الحرارة لكل رقم تعريف منطقة |
HVAC_POWER_ON |
تعرض هذه السمة حالة الطاقة لنظام التدفئة والتهوية وتكييف الهواء حسب معرّف المنطقة. |
بالنسبة إلى خصائص التدفئة والتهوية وتكييف الهواء التي تعتمد على حالة طاقة نظام التدفئة والتهوية وتكييف الهواء، يجب أن تكون:
مدرجة في مصفوفة الإعدادات HVAC_POWER_ON
. للاطّلاع على قائمة كاملة بخصائص التدفئة والتهوية وتكييف الهواء،
البحث عن HVAC_*
في VehicleProperty.aidl
، راجع
خصائص النظام المتوافقة:
المواقع.
قواعد ربط سمات التدفئة والتهوية وتكييف الهواء (HVAC) من نوع "منطقة المركبات العالمية" غير العالمية بمعرّفات ZoneID:
يجب أن تكون كل "منطقة" من نوع VehicleArea
محدّد متأثر بالموقع الإلكتروني
في معرّف المنطقة للموقع. يتم تعيين وحدات التحكم في درجة الحرارة
المقاعد التي "هم الأكثر تأثيرًا" فيها، ولكن يجب تضمين كل مقعد متأثر مرة واحدة فقط.
قد يبدو تخصيص المقعد الخلفي المركزي لرقم تعريف المنطقة اليسرى أو الأيمن أمرًا عشوائيًا،
غير أنّ إدراج كل مقعد متأثر بهذا التغيير في حقل LocationID واحد فقط يضمن تطابق هذه المقاعد
في السيارة، وأن ذلك يتضمن طريقة معقولة للتأثير في كل مقعد.
مثال 1
هناك سيارة بها مقعدان أماميان (ROW_1_LEFT وROW_1_RIGHT) وثلاثة مقاعد خلفية.
(ROW_2_LEFT وROW_2_CENTER وROW_2_RIGHT). هناك وحدتان للتحكم في درجة الحرارة، واحدة لكل منهما
جانب السائق وجانب الراكب. مجموعة ربط صالحة لأرقام تعريف المنطقة
سيكون HVAC_TEMPERATURE_SET
مصفوفة من عنصرين:
- ROW_1_LEFT | ROW_2_LEFT
- ROW_1_RIGHT | ROW_2_CENTER | ROW_2_RIGHT
في ما يلي تعيين بديل لإعداد الجهاز نفسه:
- ROW_1_LEFT | ROW_2_CENTER | ROW_2_LEFT
- ROW_1_RIGHT | ROW_2_RIGHT
مثال 2
تحتوي السيارة على ثلاثة صفوف من المقاعد مع مقعدين في الصف الأمامي (ROW_1_LEFT وROW_1_RIGHT)
وثلاثة مقاعد في الصف الثاني (ROW_2_LEFT وROW_2_CENTER وROW_2_RIGHT) والثالث.
(ROW_3_LEFT وROW_3_CENTER وROW_3_RIGHT). هناك ثلاث وحدات للتحكم في درجة الحرارة، واحدة لكل منها
وجانب السائق وجانب الراكب والمؤخرة. هناك طريقة معقولة لرسم خريطة
تتألّف الدالة HVAC_TEMPERATURE_SET
إلى AreaIDs من مصفوفة مكوّنة من ثلاثة عناصر:
- ROW_1_LEFT
- ROW_1_RIGHT
- ROW_2_LEFT | ROW_2_CENTER | ROW_2_RIGHT | ROW_3_LEFT | ROW_3_CENTER | ROW_3_RIGHT
مثال 3
هناك سيارة بها مقعدان أماميان (ROW_1_LEFT وROW_1_RIGHT) وثلاثة مقاعد خلفية. (ROW_2_LEFT وROW_2_CENTER وROW_2_RIGHT). لنفترض أن السيارة تتوافق مع ميزة HVAC_auto_ON فقط. المقعدين الأماميين. ستكون مجموعة التعيين الصحيحة لـ ZoneIDs لنظام HVAC_auto_ON هي مجموعة واحدة مصفوفة العناصر:
- ROW_1_LEFT | ROW_1_RIGHT
إذا كان لدى "HVAC_AUTO_ON
" وحدتا تحكّم منفصلتان لجهة السائق والراكب
سيكون التعيين البديل عبارة عن مصفوفة مكونة من عنصرين:
- ROW_1_LEFT
- ROW_1_RIGHT
الامتثال للّوائح التنظيمية العامة للسلامة في الاتحاد الأوروبي
إذا كان يجب أن تمتثل المركبة لمتطلبات لائحة السلامة العامة للاتحاد الأوروبي (GSR)
من خلال Android، يجب أن تحتوي الخاصية GENERAL_SAFETY_REGULATION_COMPLIANCE_REQUIREMENT
على
المشروع. من الأمثلة على حالة الاستخدام GSR-ISA (المساعدة الذكية في السرعة) وفقًا لما هو موضّح في الاتحاد الأوروبي
اللائحة 2019/2144. تتم إضافة هذا الموقع في AIDL VHAL من نظام التشغيل Android 13، ومع ذلك، فهو
في خدمة السيارة منذ إطلاق نظام التشغيل Android 12. هذه السمة معرَّفة للقراءة فقط.
خاصية عدد صحيح عمومي ثابتة، بالقيم المحتملة المحددة بواسطة
تعداد GsrComplianceRequirementType
:
الاسم | القيمة | الوصف |
---|---|---|
GSR_COMPLIANCE_NOT_REQUIRED | 0 | الامتثال لـ GSR ليس مطلوبًا |
GSR_COMPLIANCE_REQUIRED_V1 | 1 | يجب الامتثال لـ GSR والإصدار 1 من حل المتطلبات هو 1. |
لإتاحة هذا الموقع في HIDL VHAL (في Android 12)، على المورّدين إدخال ترميز ثابت لرقم تعريف الموقع.
على سبيل المثال، يوضّح المقتطف التالي كيفية توافق هذا في المرجع HIDL.
حملة VHAL
DefaultConfig.h
:
{ .config = { // GENERAL_SAFETY_REGULATION_COMPLIANCE_REQUIREMENT .prop = 0x11400F47, .access = VehiclePropertyAccess::READ, .changeMode = VehiclePropertyChangeMode::STATIC, }, // GsrComplianceRequirementType::GSR_COMPLIANCE_REQUIRED_V1 .initialValue = {.int32Values = {1}}, }
لإتاحة هذا الموقع في AIDL VHAL (من نظام التشغيل Android 13)، يمكن للمورّدين استخدام رقم تعريف الموقع من
VehicleProperty.h
وتعداد من GsrComplianceRequirementType.h
. بالنسبة
على سبيل المثال، كما في المرجع AIDL VHAL
DefaultProperties.json
:
{ "property": "VehicleProperty::GENERAL_SAFETY_REGULATION_COMPLIANCE_REQUIREMENT", "defaultValue": { "int32Values": [ "GsrComplianceRequirementType::GSR_COMPLIANCE_REQUIRED_V1" ] } }
لقراءة هذه الخاصية من تطبيق Android، استخدم
CarPropertyManager.getIntProperty
- في نظام التشغيل Android 13 والإصدارات الأحدث، استخدِم
VehiclePropertyIds.GENERAL_SAFETY_REGULATION_COMPLIANCE
كمعرّف للموقع. - في Android 12، استخدِم القيمة غير القابلة للتغيير في البرنامج، وهي 0x11400F47، كرقم تعريف الموقع. هذا النمط
تتطلب السمة الحصول على الإذن،
Car#PERMISSION_CAR_INFO
.