خصائص المورّد
لتلبية الاحتياجات الخاصة بالشركاء، يسمح VHAL بمواقع المورّدين التي لا يمكن الوصول إليها إلا من خلال واجهات برمجة تطبيقات النظام. اتّبِع الإرشادات التالية عند العمل مع سمات المورّدين:
- حاوِل دائمًا استخدام خصائص النظام أولاً، ويجب استخدام خصائص المورّدين كملاذ أخير عندما لا تلبّي أيّ من خصائص النظام متطلباتك.
- لمنع تجزئة المنظومة المتكاملة، يجب عدم استخدام خصائص المورّدين لتكرار خصائص مركبة متوفّرة حاليًا في VehiclePropertyIds لحزمة SDK. لمزيد من المعلومات، يُرجى الاطّلاع على القسم 2.5، متطلبات الأجهزة المخصّصة للسيارات في "مستند CDD".
- استخدِم الحقول التالية لإنشاء رقم تعريف الفندق:
VehiclePropertyGroup:VENDOR
لا تُستخدَم مجموعة VENDOR إلا لمواقع المورّدين.VehicleArea
اختَر نوع منطقة مناسبًا.VehiclePropertyType
اختَر نوع البيانات المناسب. يسمح نوع BYTES بتمرير البيانات الأولية، وهو كافٍ في معظم الحالات. إنّ إرسال البيانات الكبيرة بشكل متكرّر من خلال مواقع المورّدين يمكن أن يؤدي إلى إبطاء الوصول إلى شبكة المركبة بالكامل. يُرجى توخّي الحذر عند إضافة حمولة كبيرة.Property ID
اختَر معرّفًا فريدًا ثنائي البايت لخاصية المورِّد. على سبيل المثال، 0x1234.
- املأ الحقل
VehiclePropConfig.configString
بوصف موجز لممتلكات المورّد. ويسمح ذلك لأدوات التحقّق من الصحة برصد تكرار بيانات المركبات الحالية عن طريق الخطأ. على سبيل المثال، "خاصي المخصص لـ XYZ". - يمكن الوصول إليه من خلال
CarPropertyManager
(لمكوّنات Java) أو من خلال
libvhalclient
(لمكوّنات Java). لا تعدِّل واجهات برمجة التطبيقات الأخرى للسيارات لأنّ ذلك قد يؤدي إلى حدوث مشاكل في التوافق في المستقبل.
إذن مواقع المورّدين
ويكون الإذن التلقائي لأي خصائص محدّدة للمورّدين هو
android.car.Car.PERMISSION_VENDOR_EXTENSION
. للتحكّم في الأذونات بشكل أدقّ، ننصحك بإتاحة السمة SUPPORT_CUSTOMIZE_VENDOR_PERMISSION
. سمة STATIC
هذه للقراءة فقط، وتحدِّد صفيف الإعدادات أذونات سمات المورّدين.
يتم ضبط configArray
على النحو التالي (i هو عدد صحيح يبدأ من 0):
-
configArray[3 * i]
propId، معرّف الموقع لموقّع المورّد 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
معيّن يتأثّر بالموقع في
رقم تعريف منطقة لذلك الموقع. يتم تعيين أدوات التحكّم في درجة الحرارة إلى
المقاعد التي "تؤثر فيها بشكلٍ أكبر"، ولكن يجب تضمين كل مقعد متأثر مرة واحدة بالضبط.
قد يبدو أنّ تخصيص المقعد الخلفي الأوسط لرقم تعريف منطقة على يمين أو يسار السيارة هو إجراء عشوائي،
ولكنّ تضمين كل مقعد متأثر في رقم تعريف منطقة واحد بالضبط يضمن تمثيل المقاعد
في السيارة بالكامل وتوفير طريقة معقولة للتأثير في كل مقعد.
مثال 1
تحتوي السيارة على مقعدَين أماميَّين (ROW_1_LEFT وROW_1_RIGHT) وثلاثة مقاعد خلفية
(ROW_2_LEFT وROW_2_CENTER وROW_2_RIGHT). تتوفّر وحدتَا تحكّم في درجة الحرارة، واحدة لكل من
جانبَي السائق والراكب. ستكون مجموعة الربط الصالحة لمعرّفات LocationID
في 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
متوافقًا. على سبيل المثال، تشمل حالات الاستخدام ميزة "المساعدة السريعة الذكية" (ISA) وفقًا لـ "لوائح السلامة العامّة" (GSR) كما هو محدّد في لائحة الاتحاد الأوروبي
2019/2144. تمت إضافة هذا السمة في AIDL VHAL من Android 13، ومع ذلك،
فهي متوافقة مع Car Service منذ إصدار Android 12. يتم تعريف هذه السمة على أنّها خاصية للقراءة فقط بعدد صحيح عمومي ثابت، مع تحديد القيم المحتملة من خلال تعداد GsrComplianceRequirementType
:
الاسم | القيمة | الوصف |
---|---|---|
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
.
- في الإصدار 13 من Android والإصدارات الأحدث، استخدِم
VehiclePropertyIds.GENERAL_SAFETY_REGULATION_COMPLIANCE
كرقم تعريف الموقع. - في Android 12، استخدِم القيمة الثابتة 0x11400F47 كمعرّف للموقع. تتطلّب هذه السمة
الحصول على الإذن
Car#PERMISSION_CAR_INFO
.