تكوينات الملكية

يتم تحديد كل خاصية مدعومة من خلال تكوين خاصية محدد من خلال بنية VehiclePropConfig وتحتوي على الحقول التالية.

مجال وصف
prop

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

  • (0x0000 0000 ) 16 بت: معرف فريد من النطاق 0x0100 - 0xffff.
  • (0x00 00 0000) 8 بت: أنواع الخاصية التي تحدد نوع الخاصية.
  • (0x0 0 000000) 4 بت: أنواع المساحة .
  • (0x 0 0000000) 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 . ويجب أن يكون هذا مساويا لوضع الوصول المحدد في خصائص النظام المدعومة .
changeMode
  • تغيير الوضع للخاصية. يجب أن يكون واحدًا من STATIC أو ON_CHANGE أو CONTINUOUS . STATIC تعني أن قيمة الخاصية لا تتغير أبدًا بعد تشغيل النظام. ON_CHANGE يعني أن VHAL يجب أن يقدم تقريرًا عندما تتغير القيمة. CONTINUOUS يعني أن قيمة الخاصية تتغير بشكل مستمر ويجب على VHAL الإبلاغ بناءً على معدل عينة الاشتراك.
  • يجب أن يكون وضع التغيير مساوياً لوضع التغيير المحدد في خصائص النظام المدعومة .
configArray مصفوفة اختيارية تحتوي على تكوين خاص بالخاصية. يمكن أن تكون فارغة.
configString سلسلة اختيارية تحتوي على تكوين خاص بالخاصية. يمكن أن تكون فارغة.
minSampleRate و maxSampleRate

الحد الأدنى والحد الأقصى لمعدل العينة المدعوم للخاصية المستمرة. لا تستخدم إذا كانت الخاصية غير مستمرة.

أنواع العقارات

تم تعريفه على أنه تعدادات في VehiclePropertyType.aidl . يتم سرد أنواع الخصائص المدعومة في الجدول التالي.

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

بالنسبة لخصائص نوع البائع المختلط، يجب تنسيق configArray بهذه البنية:

  • يشير configArray[0]، 1 إلى أن الخاصية تحتوي على قيمة سلسلة
  • يشير configArray[1]، 1 إلى أن الخاصية لها قيمة منطقية
  • يشير configArray[2]، 1 إلى أن الخاصية تحتوي على قيمة عددية
  • configArray[3]، يشير الرقم إلى حجم Integer[] في الخاصية
  • يشير configArray[4]، 1 إلى أن الخاصية لها قيمة طويلة
  • configArray[5]، يشير الرقم إلى حجم Long[] في الخاصية
  • يشير configArray[6]، 1 إلى أن الخاصية لها قيمة Float
  • configArray[7]، يشير الرقم إلى حجم Float[] في الخاصية
  • configArray[8]، يشير الرقم إلى حجم البايت[] في الخاصية.

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

تكوين معرف المنطقة

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

مجال وصف
areaId معرف هذه المنطقة راجع معرفات المنطقة .
minInt32Value و maxInt32Value
  • الحد الأدنى والحد الأقصى للقيمة الاختيارية لخصائص نوع INT32. تم تجاهله لجميع الأنواع الأخرى. يتم تجاهله إذا كان كلاهما 0.
  • بالنسبة للخاصية العامة، إذا كانت هناك حاجة إلى تحديد قيمة الحد الأدنى والحد الأقصى، فيجب استخدام تكوين منطقة واحد بمعرف المنطقة 0.
minInt64Value و maxInt64Value
  • الحد الأدنى والحد الأقصى للقيمة الاختيارية لخصائص نوع INT64. تم تجاهله لجميع الأنواع الأخرى. يتم تجاهله إذا كان كلاهما 0.
  • بالنسبة للخاصية العامة، إذا كانت هناك حاجة إلى تحديد قيمة الحد الأدنى والحد الأقصى، فيجب استخدام تكوين منطقة واحد بمعرف المنطقة 0.
minFloatValue و maxFloatValue
  • الحد الأدنى والحد الأقصى للقيمة الاختيارية لخصائص النوع العائم. تم تجاهله لجميع الأنواع الأخرى. يتم تجاهله إذا كان كلاهما 0.0.
  • بالنسبة للخاصية العامة، إذا كانت هناك حاجة إلى تحديد قيمة الحد الأدنى والحد الأقصى، فيجب استخدام تكوين منطقة واحد بمعرف المنطقة 0.
( جديد في أندرويد 14 )
supportedEnumValues
  • قائمة اختيارية بالقيم المدعومة إذا تم تعريف الخاصية كخاصية نوع التعداد. إذا لم يتم تحديده (فارغ) أو قبل Android 14، فمن المفترض أن جميع قيم التعداد مدعومة.
  • بالنسبة للخاصية العامة، إذا كانت هناك حاجة إلى تحديد قيم التعداد المدعومة، فيجب استخدام تكوين منطقة واحد بمعرف المنطقة 0.

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

تم تعريفه على أنه التعدادات في VehicleArea.aidl . أنواع المناطق المدعومة مدرجة أدناه.

نوع المنطقة قيمة وصف
عالمي 0x01000000 هذا العقار هو عقار عالمي وليس له مناطق متعددة.
نافذة او شباك 0x03000000 المساحة المستندة إلى النوافذ، تستخدم تعداد VehicleAreaWindow .
مرآة 0x04000000 المساحة المبنية على المرايا، تستخدم تعداد VehicleAreaMirror .
مقعد 0x05000000 المساحة بناءً على المقاعد، تستخدم تعداد VehicleAreaSeat .
باب 0x06000000 المساحة بناءً على الأبواب، تستخدم تعداد VehicleAreaDoor .
عجلة 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 ينطبق فقط على المقعد الخلفي الأيمن.

لمعرفة المزيد، راجع التدفئة والتهوية وتكييف الهواء .