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

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

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

يتم تعريفها كقيم تعدادية في 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 لا ينطبق ذلك إلا على المقعد الخلفي الأيمن.

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