إعدادات خصائص VHAL

يتم تحديد كل سمة متوافقة من خلال إعدادات سمة يتم تحديدها من خلال بنية VehiclePropConfig، وتتضمّن الحقول التالية.

الحقل الوصف
prop

معرّف الموقع يجب أن تكون هذه السمة إحدى سمات النظام المحدّدة من VehicleProperty.aidl أو إحدى سمات المورّد. يتم إنشاء رقم تعريف الموقع باستخدام عملية bit-or للحقول التالية (من اليمين إلى اليسار):

  • (0x00000000) 16 بت: معرّف فريد من النطاق 0x0100 إلى 0xffff.
  • (0x00000000) 8 بت: أنواع السمات التي تحدد نوع السمة.
  • (0x00000000) 4 بت: أنواع المناطق
  • (0x00000000) 4 بت: VehiclePropertyGroup هذا هو إما SYSTEM (0x10000000) أو VENDOR (0x20000000). اطّلِع على خصائص المورّد لمعرفة الخصائص التي يمكنك تخصيصها.

على سبيل المثال،
INFO_VIN (0x11100100) = UniqueID (0x00000100) | VehiclePropertyType.STRING (0x00100000) | VehicleArea.GLOBAL (0x01000000) | VehiclePropertyGroup.SYSTEM (0x10000000)

access
  • وضع إذن الوصول إلى الموقع يجب أن تكون إحدى القيم READ أو WRITE أو READ_WRITE.
  • بالنسبة إلى سمات النظام، يجب أن يكون هذا أحد أوضاع الوصول المحدّدة والموضّحة في VehicleProperty.aidl.
  • بالنسبة إلى المواقع التي تتضمّن أذونات وصول على مستوى كل منطقة، هذا هو الحدّ الأقصى للمجموعة الفرعية من أذونات الوصول على مستوى كل منطقة. على سبيل المثال، إذا كان الموقع يتضمّن منطقتَين تكون أذونات الوصول فيهما READ وREAD_WRITE، يجب ضبط هذه السمة على READ.
changeMode
  • تغيير وضع الموقع يجب أن تكون إحدى القيم التالية: STATIC أو ON_CHANGE أو CONTINUOUS. يشير STATIC إلى أنّ قيمة السمة لا تتغيّر أبدًا بعد إعادة تشغيل النظام. يشير ON_CHANGE إلى أنّه على VHAL إرسال تقرير عند تغيُّر القيمة. يشير CONTINUOUS إلى أنّ قيمة السمة تتغيّر باستمرار ويجب أن يقدّم VHAL تقارير استنادًا إلى معدّل أخذ العيّنات من الاشتراك.
  • بالنسبة إلى خصائص النظام، يجب أن تكون هذه القيمة مساوية لوضع التغيير الموضّح في VehicleProperty.aidl.
configArray مصفوفة اختيارية تحتوي على إعدادات خاصة بالموقع. يمكن أن يكون فارغًا. بالنسبة إلى بعض سمات النظام، مثل GEAR_SELECTION، يكون لمصفوفة الإعدادات معنى خاص ويجب تحديدها.
configString سلسلة اختيارية تحتوي على إعدادات خاصة بالسمة. يمكن أن يكون فارغًا.
minSampleRate وmaxSampleRate الحدّ الأدنى والأقصى لمعدّل أخذ العيّنات المتوافق مع السمة المستمرة (بالهرتز) لا يتم استخدامها إذا كانت السمة غير مستمرة. يجب أن يكون من الممكن تحقيق minSampleRate وmaxSampleRate من خلال تنفيذ VHAL. ليس من الضروري أن تتوافق جميع معدّلات أخذ العيّنات بين الحدّ الأدنى والحدّ الأقصى.

أنواع المواقع

يتم تحديدها كقيم تعدادية في VehiclePropertyType.aidl. يتم إدراج أنواع السمات المتوافقة في الجدول التالي.

نوع مكان الإقامة القيمة الوصف
STRING 0x00100000 سمة سلسلة نصية تستخدم الحقل stringValue في قيمة سمة المركبة.
BOOLEAN 0x00200000 تستخدم السمة Boolean العنصر الأول في الحقل int32Values ضمن قيمة سمة المركبة. 0 تعني false، وNone 0 تعني true.
INT32 0x00400000 تستخدم السمة Integer العنصر الأول في الحقل int32Values ضمن قيمة سمة المركبة.
INT32_VEC 0x00410000 تستخدم السمة Integer[] العناصر في الحقل int32Values ضمن قيمة سمة المركبة.
INT64 0x00500000 سمة طويلة تستخدم العنصر الأول في حقل int64Values ضمن قيمة سمة المركبة
INT64_VEC 0x00510000 تستخدم السمة Long[] العناصر في الحقل int64Values ضمن قيمة سمة المركبة.
FLOAT 0x00600000 تستخدم السمة Float العنصر الأول في الحقل floatValues ضمن قيمة سمة المركبة.
FLOAT_VEC 0x00610000 تستخدم السمة Float[] العناصر في الحقل floatValues ضمن قيمة سمة المركبة.
BYTES 0x00700000 تستخدم السمة byte[] العناصر في الحقل byteValues ضمن قيمة سمة المركبة.
MIXED 0x00e00000 موقع من النوع المختلط أي مجموعة من أنواع الأعداد القياسية أو المتجهة يجب توفير التنسيق الدقيق في مصفوفة الإعدادات ضمن إعدادات السمة.

بالنسبة إلى سمات المورّد من النوع MIXED، يجب تنسيق configArray بهذه البنية:

  • configArray[0]، يشير الرقم 1 إلى أنّ السمة تتضمّن قيمة String
  • configArray[1]، يشير الرقم 1 إلى أنّ السمة تتضمّن قيمة Boolean
  • configArray[2]، يشير الرقم 1 إلى أنّ الموقع الإلكتروني يتضمّن قيمة Integer
  • configArray[3]، يشير الرقم إلى حجم Integer[] في الموقع
  • configArray[4]، يشير الرقم 1 إلى أنّ السمة تتضمّن قيمة Long
  • configArray[5]، يشير الرقم إلى حجم Long[] في الموقع
  • configArray[6]، يشير الرقم 1 إلى أنّ السمة تتضمّن قيمة Float
  • configArray[7]، يشير الرقم إلى حجم Float[] في الموقع
  • configArray[8]: يشير الرقم إلى حجم byte[] في الموقع.

على سبيل المثال، يشير configArray = {1, 1, 1, 3, 0, 0, 0, 0, 0} إلى أنّ السمة تتضمّن القيمة String والقيمة Boolean والقيمة Integer ومصفوفة تتضمّن ثلاثة أعداد صحيحة.

إعدادات رقم تعريف المنطقة

قد يحتوي كل إعداد موقع أيضًا على قائمة بإعدادات معرّفات المناطق. هذه القائمة اختيارية للمواقع العالمية، ولكنّها مطلوبة للمواقع المقسّمة إلى مناطق (المواقع التي تتضمّن عدة مناطق متوافقة). يحتوي كل إعداد لرقم تعريف المنطقة على الحقول التالية.

الحقل الوصف
areaId معرّف هذه المنطقة اطّلِع على معرّفات المناطق.
minInt32Value وmaxInt32Value
  • الحدّ الأدنى والأقصى الاختياريان لقيم خصائص النوع INT32 في وقت بدء التشغيل يجب أن تكون القيمة 0 لجميع الأنواع الأخرى. يتم تجاهله إذا كانت قيمة كليهما 0.
  • بالنسبة إلى السمة العمومية، إذا كان يجب تحديد الحد الأدنى والحد الأقصى للقيمة، يجب استخدام إعداد منطقة واحد برقم تعريف المنطقة 0.
  • هذه القيمة ثابتة ولن تتغير حتى إذا تغيرت القيمة الدنيا أو القصوى في وقت التشغيل. استخدِم IVehicle#getMinMaxSupportedValue للحدّ الأدنى أو الأقصى الديناميكي للقيمة.
minInt64Value وmaxInt64Value
  • الحدّ الأدنى والأقصى الاختياريان لقيم سمات النوع INT64 في وقت التشغيل يجب أن تكون القيمة 0 لجميع الأنواع الأخرى. يتم تجاهله إذا كانت قيمة كليهما 0.
  • بالنسبة إلى السمة العمومية، إذا كان يجب تحديد الحد الأدنى والحد الأقصى للقيمة، يجب استخدام إعداد منطقة واحد برقم تعريف المنطقة 0.
  • هذه القيمة ثابتة ولن تتغير حتى إذا تغيرت القيمة الدنيا أو القصوى في وقت التشغيل. استخدِم IVehicle#getMinMaxSupportedValue للحدّ الأدنى أو الأقصى الديناميكي للقيمة.
minFloatValue وmaxFloatValue
  • الحدّ الأدنى والأقصى الاختياريان لقيم خصائص النوع Float في وقت بدء التشغيل يجب أن تكون القيمة 0 لجميع الأنواع الأخرى. يتم تجاهله إذا كان كلاهما 0.0.
  • بالنسبة إلى السمة العمومية، إذا كان يجب تحديد الحد الأدنى والحد الأقصى للقيمة، يجب استخدام إعداد منطقة واحد برقم تعريف المنطقة 0.
  • هذه القيمة ثابتة ولن تتغير حتى إذا تغيرت القيمة الدنيا أو القصوى في وقت التشغيل. استخدِم IVehicle#getMinMaxSupportedValue للحدّ الأدنى أو الأقصى الديناميكي للقيمة.
(ميزة جديدة في Android 14)
supportedEnumValues
  • قائمة اختيارية بالقيم المتوافقة عند بدء التشغيل إذا تم تحديد السمة كسمة من النوع enum. إذا لم يتم تحديدها (كانت فارغة) أو قبل الإصدار 14 من نظام التشغيل Android، يُفترض أنّ جميع قيم التعداد المرتبطة بها متوافقة.
  • بالنسبة إلى السمة العمومية، إذا كان يجب تحديد قيم التعداد المتوافق، يجب استخدام إعداد منطقة واحد برقم تعريف المنطقة 0.
  • هذه القيمة ثابتة ولن تتغيّر حتى إذا تغيّرت القيم المتوافقة في وقت التشغيل. استخدِم السمة IVehicle#getSupportedValuesLists للقيم الديناميكية المسموح بها.
  • ينطبق ذلك فقط على السمات من النوع enum. بالنسبة إلى الأنواع الأخرى، يجب أن يكون هذا الحقل فارغًا. لعرض القيم المسموح بها لأنواع أخرى غير أنواع التعداد، استخدِم IVehicle#getSupportedValuesLists.
(ميزة جديدة في Android 15)
supportVariableUpdateRate
  • تُستخدَم لتحديد ما إذا كان معدّل تعديل المتغيّر متاحًا. ينطبق ذلك فقط على المواقع المستمرة.
  • إذا كانت القيمة true، يمكن للتطبيق تفعيل معدّل تعديل متغيّر للاشتراك لتلقّي أحداث تعديل الخصائص فقط عند تغيُّر قيمة الخاصية (أي التعامل مع الخصائص المستمرة على أنّها خصائص عند التغيير).
  • إذا فعّل جميع المشتركين في إحدى السمات معدّل تعديل متغيّر، سيؤدي طلب الاشتراك في VHAL إلى تفعيل معدّل تعديل متغيّر للسمة، ويجب أن يرسل VHAL أحداث تعديل السمة فقط عند تغيُّر قيمة السمة.
  • إذا طلب أي مشترك معدّل تحديث ثابت، سيؤدي طلب الاشتراك في VHAL إلى إيقاف معدّل التحديث المتغيّر للسمة، وستعمل AAOS على فلترة الأحداث المكرّرة للعملاء الذين يطلبون معدّل تحديث متغيّر.
  • يُنصح بشدة بتوفير معدّل تعديل متغيّر لجميع الخصائص المستمرة غير المرتبطة بنبض القلب للحصول على أداء أفضل، إلا إذا كانت بيانات الخاصية كبيرة (على سبيل المثال، مصفوفة بايت بحجم 1 كيلوبايت) وقد تشغل مقدارًا كبيرًا من الذاكرة للتخزين المؤقت.
(ميزة جديدة في Android 16)
hasSupportedValueInfo
  • إذا لم يكن null، يوضّح ما إذا كانت هذه السمة تحدّد الحد الأدنى أو الأقصى للقيم المسموح بها أو قائمة القيم المسموح بها.
  • يتحكّم هذا الحقل في ما إذا كانت واجهات برمجة التطبيقات الديناميكية للقيم المسموح بها: getMinMaxSupportedValue وgetSupportedValuesLists وsubscribeSupportedValueChange وunsubscribeSupportedValueChange متاحة لمعرّف الموقع ومعرّف المنطقة هذا.
  • إذا لم يكن null، يجب أن تنفّذ VHAL واجهات برمجة التطبيقات هذه لمعرّف الموقع ومعرّف المنطقة.
  • إذا كان null أو في الإصدار 15 من نظام التشغيل Android أو إصدار أقدم، لن تكون القيم الديناميكية المتاحة لمعرّف الموقع ومعرّف المنطقة غير متاحة. يجب أن يستخدم العميل معلومات القيمة المسموح بها الثابتة المقدَّمة في إعدادات خصائص المركبة.

أنواع المناطق

يتم تحديدها كقيم تعدادية في VehicleArea.aidl. في ما يلي قائمة بأنواع المناطق المتوافقة.

نوع المنطقة القيمة الوصف
GLOBAL 0x01000000 هذا الموقع هو موقع عالمي ولا يتضمّن مناطق متعدّدة.
WINDOW 0x03000000 المساحة المستندة إلى النوافذ، وتستخدِم التعداد VehicleAreaWindow.
MIRROR 0x04000000 المنطقة المستندة إلى المرايا، وتستخدم تعداد VehicleAreaMirror.
سيات 0x05000000 المنطقة المستندة إلى المقاعد، وتستخدم تعداد VehicleAreaSeat.
DOOR 0x06000000 المنطقة المستندة إلى الأبواب، تستخدم تعداد VehicleAreaDoor.
WHEEL 0x07000000 المنطقة المستندة إلى العجلات، وتستخدم التعداد VehicleAreaWheel.

يجب أن تستخدم كل سمة مقسّمة إلى مناطق نوع منطقة محدّدًا مسبقًا. يحتوي كل نوع من أنواع المناطق على مجموعة من علامات البت المحدّدة في تعداد لنوع المنطقة. على سبيل المثال، يحدّد نطاق SEAT قيم VehicleAreaSeat التالية:

  • ROW_1_LEFT = 0x0001
  • ROW_1_CENTER = 0x0002
  • ROW_1_RIGHT = 0x0004
  • ROW_2_LEFT = 0x0010
  • ROW_2_CENTER = 0x0020
  • ROW_2_RIGHT = 0x0040
  • ROW_3_LEFT = 0x0100
  • ...

أرقام تعريف المناطق

يتمّ تحديد عناوين المواقع المقسّمة إلى مناطق من خلال أرقام تعريف المناطق. يمكن أن يتوافق كل موقع مقسّم إلى مناطق مع رقم تعريف منطقة واحد أو أكثر. يتألف معرّف المنطقة من علامة واحدة أو أكثر من تعدادها الخاص. على سبيل المثال، قد تستخدم إحدى المؤسسات التي تستخدم VehicleAreaSeat معرّفات المناطق التالية:

العنصر الوصف
ROW_1_LEFT | ROW_1_RIGHT ينطبق معرّف المنطقة على المقعدَين الأماميين.
ROW_2_LEFT لا ينطبق هذا الإعداد إلا على المقعد الخلفي الأيسر.
ROW_2_RIGHT لا ينطبق ذلك إلا على المقعد الخلفي الأيمن.

لمزيد من المعلومات، يُرجى الاطّلاع على أنظمة التدفئة والتهوية وتكييف الهواء.