تنظیمات دارایی

هر ویژگی پشتیبانی شده توسط یک پیکربندی ویژگی تعریف شده از طریق ساختار VehiclePropConfig مشخص می شود و دارای فیلدهای زیر است.

میدان توضیحات
prop

شناسه ملک این باید یا یکی از ویژگی های سیستم تعریف شده از ویژگی های سیستم پشتیبانی شده یا یک ویژگی فروشنده باشد. شناسه ویژگی با استفاده از بیت یا فیلدهای زیر (راست به چپ) ساخته می شود:

  • (0x0000 0000 ) 16 بیت: یک شناسه منحصر به فرد از محدوده 0x0100 - 0xffff.
  • (0x00 00 0000) 8 بیت: انواع ویژگی که نوع خاصیت را مشخص می کند.
  • (0x0 0 000000) 4 بیت: انواع ناحیه .
  • (0 × 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

حداقل و حداکثر نرخ نمونه پشتیبانی شده برای ویژگی پیوسته. اگر ملک مستمر نباشد استفاده نمی شود.

انواع املاک

به عنوان enum در VehiclePropertyType.aidl تعریف شده است. انواع اموال پشتیبانی شده در جدول زیر فهرست شده است.

نوع ملک ارزش توضیحات
STRING 0x00100000 ویژگی String از فیلد stringValue در Vehicle Property Value استفاده می کند.
بولین 0x00200000 ویژگی Boolean، از اولین عنصر در فیلد int32Values ​​در مقدار ویژگی Vehicle استفاده می کند. 0 به معنای false ، None 0 به معنای true است.
INT32 0x00400000 ویژگی عدد صحیح، از اولین عنصر در فیلد int32Values ​​در مقدار ویژگی Vehicle استفاده می کند.
INT32_VEC 0x00410000 ویژگی Integer[]، از عناصر فیلد int32Values ​​در مقدار ویژگی Vehicle استفاده می کند.
INT64 0x00500000 ویژگی Long، از اولین عنصر در فیلد int64Values ​​در مقدار ویژگی Vehicle استفاده می کند.
INT64_VEC 0x00510000 ویژگی Long[] ، از عناصر فیلد int64Values ​​در مقدار ویژگی Vehicle استفاده می کند.
شناور 0x00600000 ویژگی Float، از اولین عنصر در قسمت floatValues ​​در مقدار ویژگی Vehicle استفاده می کند.
FLOAT_VEC 0x00610000 ویژگی Float[]، از عناصر فیلد floatValues ​​در مقدار ویژگی Vehicle استفاده می کند.
BYTES 0x00700000 ویژگی byte[]، از عناصر فیلد byteValues ​​در مقدار ویژگی خودرو استفاده می کند.
مخلوط شده 0x00e00000 خاصیت نوع مختلط هر ترکیبی از انواع اسکالر یا برداری. فرمت دقیق باید در آرایه پیکربندی در پیکربندی ویژگی ارائه شود.

برای ویژگی های نوع MIXED فروشنده، configArray باید در این ساختار قالب بندی شود:

  • configArray[0]، 1 نشان می دهد که خاصیت دارای مقدار رشته است
  • configArray[1]، 1 نشان می دهد که ویژگی دارای یک مقدار بولی است
  • configArray[2]، 1 نشان می دهد که ویژگی دارای مقدار صحیح است
  • configArray[3]، عدد نشان دهنده اندازه Integer[] در ویژگی است
  • configArray[4]، 1 نشان می دهد که ویژگی دارای مقدار Long است
  • configArray[5]، عدد نشان دهنده اندازه Long[] در ویژگی است
  • configArray[6]، 1 نشان می دهد که ویژگی دارای مقدار Float است
  • configArray[7]، عدد نشان دهنده اندازه Float[] در ویژگی است
  • configArray[8]، عدد نشان دهنده اندازه بایت[] در ویژگی است.

به عنوان مثال، configArray = {1, 1, 1, 3, 0, 0, 0, 0, 0} نشان می دهد که ویژگی دارای یک مقدار رشته، یک مقدار Boolean، یک مقدار Integer و یک آرایه با سه عدد صحیح است.

پیکربندی شناسه منطقه

هر پیکربندی ویژگی همچنین ممکن است حاوی لیستی از پیکربندی های شناسه ناحیه باشد. این لیست برای ویژگی های سراسری اختیاری است و برای ویژگی های منطقه بندی شده (خواص با چندین ناحیه پشتیبانی شده) لازم است. هر پیکربندی شناسه ناحیه دارای فیلدهای زیر است.

میدان توضیحات
areaId شناسه این منطقه شناسه های منطقه را ببینید.
minInt32Value و maxInt32Value
  • حداقل و حداکثر مقدار اختیاری برای خصوصیات نوع INT32. برای همه انواع دیگر نادیده گرفته شده است. اگر هر دو 0 باشند نادیده گرفته می شود.
  • برای ویژگی کلی، اگر مقدار حداقل و حداکثر نیاز به تعریف باشد، باید از یک پیکربندی ناحیه با شناسه ناحیه 0 استفاده شود.
minInt64Value و maxInt64Value
  • حداقل و حداکثر مقدار اختیاری برای خصوصیات نوع INT64. برای همه انواع دیگر نادیده گرفته شده است. اگر هر دو 0 باشند نادیده گرفته می شود.
  • برای ویژگی کلی، اگر مقدار حداقل و حداکثر نیاز به تعریف باشد، باید از یک پیکربندی ناحیه با شناسه ناحیه 0 استفاده شود.
minFloatValue و maxFloatValue
  • حداقل و حداکثر مقدار اختیاری برای خصوصیات نوع Float. برای همه انواع دیگر نادیده گرفته شده است. اگر هر دو 0.0 باشند نادیده گرفته می شود.
  • برای ویژگی کلی، اگر مقدار حداقل و حداکثر نیاز به تعریف باشد، باید از یک پیکربندی ناحیه با شناسه ناحیه 0 استفاده شود.
( جدید در اندروید 14 )
supportedEnumValues
  • لیست اختیاری مقادیر پشتیبانی شده در صورتی که ویژگی به عنوان ویژگی نوع enum تعریف شده باشد. اگر مشخص نشده باشد (خالی) یا قبل از Android 14، فرض می شود که تمام مقادیر enum پشتیبانی می شوند.
  • برای ویژگی عمومی، اگر مقادیر enum پشتیبانی شده نیاز به تعریف داشته باشند، باید از یک پیکربندی ناحیه با شناسه ناحیه 0 استفاده شود.

انواع منطقه

به عنوان enum در VehicleArea.aidl تعریف شده است. انواع مناطق پشتیبانی شده در زیر فهرست شده است.

نوع منطقه ارزش توضیحات
جهانی 0x01000000 این ملک یک اموال جهانی است و چندین ناحیه ندارد.
پنجره 0x03000000 ناحیه مبتنی بر ویندوز، از Enum VehicleAreaWindow استفاده می کند.
آینه 0x04000000 منطقه مبتنی بر آینه، از VehicleAreaMirror enum استفاده می کند.
صندلی 0x05000000 منطقه بر اساس صندلی، از VehicleAreaSeat enum استفاده می کند.
درب 0x06000000 منطقه بر اساس درب، از VehicleAreaDoor enum استفاده می کند.
چرخ 0x07000000 منطقه مبتنی بر چرخ، از VehicleAreaWheel enum استفاده می کند.

هر ویژگی منطقه بندی شده باید از نوع منطقه از پیش تعریف شده استفاده کند. هر نوع ناحیه دارای مجموعه ای از پرچم های بیت است که در یک 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 فقط برای صندلی عقب راست اعمال می شود.

برای کسب اطلاعات بیشتر، HVAC را ببینید.