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

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

الحقل الوصف
prop

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

  • ‫(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، يكون مصفوفة config لها معنى خاص ويجب تحديد ذلك.
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
  • قائمة اختيارية بالقيم المتوافقة في وقت التشغيل إذا تم تعريف السمة على أنّها من نوع التعداد. إذا لم يتم تحديدها (فارغة) أو قبل Android 14، يُفترض أنّه يمكن استخدام كل قيم التعداد.
  • بالنسبة إلى الموقع الشامل، إذا كان من الضروري تحديد قيم النطاق المحدَّد، يجب استخدام إعداد واحد للمنطقة بمعرّف المنطقة 0.
  • هذه القيمة ثابتة ولن تتغيّر حتى إذا تغيّرت القيم المتوافقة أثناء التشغيل. استخدِم IVehicle#getSupportedValuesLists للقيم الديناميكية المسموح بها.
  • لا ينطبق ذلك إلا على السمات من النوع "قائمة بقيم محدّدة". بالنسبة إلى الأنواع الأخرى، يجب أن يكون هذا الحقل فارغًا. لعرض القيم المسموح بها لأنواع أخرى غير أنواع التعداد، استخدِم IVehicle#getSupportedValuesLists.
(ميزات جديدة في Android 15)
supportVariableUpdateRate
  • ما إذا كان معدّل تعديل المتغيّرات متاحًا لا ينطبق ذلك إلا على المواقع المستمرة.
  • إذا كانت هذه القيمة هي true، يمكن للتطبيق تفعيل معدّل التحديث المتغيّر لاشتراك لتلقّي أحداث تعديلات السمة فقط عند تغيُّر قيمة السمة (ما يعني التعامل مع السمات المستمرة كسمات يتم تعديلها عند حدوث تغيير).
  • إذا كان جميع المشتركين في موقع معيّن يفعّلون معدّل التعديل المتغيّر، يؤدي طلب الاشتراك إلى تفعيل معدّل التعديل المتغيّر للموقع، ويجب أن يُرسِل VHAL أحداث تعديل الموقع فقط عند تغيُّر قيمة الموقع.
  • إذا طلب أي مشترك معدّل تعديل ثابتًا، يؤدي طلب الاشتراك في VHAL إلى إيقاف معدّل التعديل المتغيّر للموقع، وفلترة AAOS لتسجيل الأحداث المكرّرة للعملاء الذين يطلبون معدّل التعديل المتغيّر.
  • ننصح بشدة بتفعيل معدّل التحديث المتغيّر لجميع المواقع المتواصلة التي لا تُرسِل نبضات قلب لتحسين الأداء، ما لم تكن بيانات الموقع كبيرة (مثلاً، مصفوفة بايت بحجم 1 كيلوبايت) وقد تشغل قدرًا كبيرًا من الذاكرة لتخزين البيانات مؤقتًا.
(ميزة جديدة في Android 16)
hasSupportedValueInfo
  • إذا لم تكن null، تعرِض ما إذا كانت هذه السمة تحدّد الحد الأدنى أو الأقصى للقيم المسموح بها أو قائمة القيم المسموح بها.
  • يتحكّم هذا الحقل في ما إذا كانت واجهات برمجة التطبيقات للقيم المسموح بها الديناميكية: getMinMaxSupportedValue وgetSupportedValuesLists subscribeSupportedValueChange وunsubscribeSupportedValueChange متوافقة مع معرّفَي الموقع الجغرافي والمنطقة.
  • إذا لم يكن null، على VHAL تنفيذ واجهات برمجة التطبيقات هذه لمعرّف الموقع ومعرّف المنطقة.
  • إذا كان null أو Android 15 أو إصدارًا أقدم، لا تتوفّر القيم الديناميكية المسموح بها لهذا الرقم التعريفي للموقع ورقم تعريف المنطقة. على العميل استخدام معلومات القيمة الثابتة المتوافقة المقدَّمة في إعدادات خصائص المركبات.

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

يتم تعريفها على أنّها قوائم أرقام مميزة في VehicleArea.aidl. في ما يلي أنواع المناطق المتوافقة.

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

يجب أن يستخدم كل موقع مصنّف حسب المنطقة نوع منطقة محدّدًا مسبقًا. يحتوي كل نوع منطقة على مجموعة من علامات البت المحدّدة في قائمة أرقام صحيحة لنوع المنطقة. على سبيل المثال، تحدِّد منطقة 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 لا ينطبق ذلك إلا على المقعد الأيمن الخلفي.

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