إعدادات الموقع

يتم تحديد كل سمة متوافقة من خلال إعدادات السمة المحدّدة من خلال بنية 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 type. إذا لم يتم تحديدها (كانت فارغة) أو قبل الإصدار 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 أو Android 15 أو إصدار أقدم، لن تكون القيم الديناميكية المتاحة لرقم تعريف الموقع ورقم تعريف المنطقة مسموحًا بها. يجب أن يستخدم العميل معلومات القيمة الثابتة المتوافقة المقدَّمة في إعدادات خصائص المركبة.

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

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

نوع المنطقة القيمة الوصف
GLOBAL 0x01000000 هذا الموقع هو موقع عالمي ولا يتضمّن مناطق متعدّدة.
نافذة 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 لا ينطبق هذا الإعداد سوى على المقعد الخلفي الأيمن.

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