خصائص المورّدين
لتلبية الاحتياجات الخاصة بالشركاء، تسمح VHAL بخصائص المورِّدين التي يتم الوصول إليها من خلال واجهات برمجة تطبيقات النظام فقط. اتّبِع الإرشادات التالية عند التعامل مع خصائص المورّدين:
- حاول دائمًا استخدام خصائص النظام أولاً، ويجب استخدام خصائص الموردين كحلٍ أخير عندما لا يفي أي من خصائص النظام بطلبك.
- لمنع تجزئة المنظومة المتكاملة، يجب عدم استخدام خصائص المورّدين لتكرار خصائص مركبة متوفّرة حاليًا في VehiclePropertyIds لحزمة SDK. لمعرفة المزيد من المعلومات، يمكنك الاطّلاع على القسم 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 من النوع VehicleArea غير الشاملة بأرقام تعريف المناطق:
يجب أن يتم تضمين كل "منطقة" لنوع VehicleArea
معيّن يتأثّر بالموقع في
رقم تعريف منطقة لذلك الموقع. يتم تعيين وحدات التحكم في درجة الحرارة
المقاعد التي "هم الأكثر تأثيرًا" فيها، ولكن يجب تضمين كل مقعد متأثر مرة واحدة فقط.
قد يبدو تخصيص المقعد الخلفي المركزي لرقم تعريف المنطقة اليسرى أو الأيمن أمرًا عشوائيًا،
غير أنّ إدراج كل مقعد متأثر بهذا التغيير في حقل LocationID واحد فقط يضمن تطابق هذه المقاعد
في السيارة، وأن ذلك يتضمن طريقة معقولة للتأثير في كل مقعد.
مثال 1
تحتوي السيارة على مقعدَين أماميَّين (ROW_1_LEFT وROW_1_RIGHT) وثلاثة مقاعد خلفية
(ROW_2_LEFT وROW_2_CENTER وROW_2_RIGHT). تتوفّر وحدتَا تحكّم في درجة الحرارة، واحدة لكل من
جانبَي السائق والراكب. مجموعة الربط الصالحة لرموز AreaIDs لـ
HVAC_TEMPERATURE_SET
ستكون صفيفًا من عنصرَين:
- الصف_1_اليمين | الصف_2_اليمين
- 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 في المقعدَين الأماميَين فقط. ستكون مجموعة الربط الصالحة لـ AreaIDs الخاصة بـ HVAC_AUTO_ON عبارة عن صفيف عنصر واحد :
- ROW_1_LEFT | ROW_1_RIGHT
إذا كان لدى "HVAC_AUTO_ON
" وحدتا تحكّم منفصلتان لجهة السائق والراكب
سيكون التعيين البديل عبارة عن مصفوفة مكونة من عنصرين:
- ROW_1_LEFT
- ROW_1_RIGHT
INFO_EXTERIOR_DimensionS
يتم قياس الأبعاد الخارجية للمركبة بالملليمتر، كما هو موضّح في الشكل 1.


استخدِم السمات الموضّحة في هذا الجدول لتحديد التصميم الخارجي للمركبة. الأبعاد.
بيانات المركبة | حقل VHAL | الوصف |
---|---|---|
الطول | int32Values[0] |
المسافة العمودية بين الأرض وأعلى نقطة في المركبة هذا يفترض عجلات مصنع منفوخة عادة. |
المدة | int32Values[1] |
المسافة الأفقية بين أبعد نقطة من الجزء الأمامي والخلفي من المركبة |
العرض، باستثناء المرايا | int32Values[2] |
المسافة الأفقية بين النقطتَين الأقصى على كل جانب من جوانب المركبة، باستثناء المرايا الجانبية |
العرض، بما في ذلك المرايا | int32Values[3] |
المسافة الأفقية بين النقطتين الأبعدتين على كل جانب من جوانب المركبة، بما في ذلك المرايا الجانبية. |
قاعدة العجلة | int32Values[4] |
المسافة بين مركزَي العجلتين الأمامية والخلفية للمركبة |
عرض المسار، الأمام | int32Values[5] |
المسافة بين العجلة الأمامية، ويتم قياسها من الخط مركز مداس أحد الإطارات إلى الخط الأوسط لمداس الإطار المقابل. |
عرض المسار، الجهة الخلفية | int32Values[6] |
المسافة بين العجلة الخلفية، ويتم قياسها من الخط الأوسط لمداس إطار أحد الإطارات إلى الخط الأوسط لمداس الإطار المقابل. |
قُطر الدوران من الرصيف إلى الرصيف | int32Values[7] |
قطر الدائرة التي تشكلها العجلات الخارجية للمركبة عند إجراء دوران كامل بعجلة قيادة مقفلة بالكامل |
الامتثال للّوائح التنظيمية العامة للسلامة في الاتحاد الأوروبي
إذا كان يجب أن تكون المركبة متوافقة مع متطلبات "لوائح السلامة العامة" (GSR) في الاتحاد الأوروبي
من خلال Android، يجب أن يكون الموقع GENERAL_SAFETY_REGULATION_COMPLIANCE_REQUIREMENT
متوافقًا. من الأمثلة على حالة الاستخدام GSR-ISA (المساعدة الذكية في السرعة) وفقًا لما هو موضّح في الاتحاد الأوروبي
اللائحة 2019/2144. تمت إضافة هذا السمة في AIDL VHAL من Android 13، ومع ذلك،
فهي متوافقة مع Car Service منذ إصدار Android 12. يتم تعريف هذه السمة على أنّها سمة عدد صحيح عالمي ثابت
للقراءة فقط، مع القيم المحتملة التي تحدّدها GsrComplianceRequirementType
enum:
الاسم | القيمة | الوصف |
---|---|---|
GSR_COMPLIANCE_NOT_REQUIRED |
0 | الامتثال لـ GSR ليس مطلوبًا |
GSR_COMPLIANCE_REQUIRED_V1 |
1 | يجب الامتثال لـ GSR ويجب أن يكون إصدار حلّ المتطلبات هو 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
.