הגדרות נכס

כל נכס נתמך מצוין על ידי הגדרת נכס שמוגדרת באמצעות המבנה VehiclePropConfig, וכולל את השדות הבאים.

שדה תיאור
prop

מזהה הנכס. המאפיין הזה חייב להיות אחד ממאפייני המערכת המוגדרים מתוך מאפייני המערכת הנתמכים או מאפיין של ספק. מזהה הנכס נוצר באמצעות אופרטור ביטים (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. הערך הזה צריך להיות שווה למצב הגישה שמוגדר בקטע Supported System Properties.
changeMode
  • שינוי המצב של הנכס. חייב להיות אחד מהערכים הבאים: STATIC,‏ ON_CHANGE או CONTINUOUS. STATIC פירושו שערך המאפיין לא משתנה אף פעם אחרי הפעלת המערכת. הערך ON_CHANGE מציין שה-VHAL חייב לדווח כשהערך משתנה. הערך CONTINUOUS מציין שערך הנכס משתנה באופן קבוע, ו-VHAL צריך לדווח על סמך קצב הדגימה של המינוי.
  • מצב השינוי צריך להיות שווה למצב השינוי שמוגדר בקטע מאפייני מערכת נתמכים.
configArray מערך אופציונלי שמכיל הגדרות ספציפיות לנכס. השדה יכול להיות ריק.
configString מחרוזת אופציונלית שכוללת הגדרות ספציפיות למאפיין. השדה יכול להיות ריק.
minSampleRate וגם maxSampleRate

קצב הדגימה המינימלי והמקסימלי שנתמך למאפיין רציף. לא בשימוש אם המאפיין לא רציף.

סוגי נכסים

מוגדרים כ-enums ב-VehiclePropertyType.aidl. סוגי הנכסים הנתמכים מפורטים בטבלה הבאה.

סוג הנכס ערך תיאור
מחרוזת 0x00100000 מאפיין מחרוזת, נעשה בו שימוש בשדה stringValue בערך של מאפיין הרכב.
בוליאני 0x00200000 מאפיין בוליאני, שמשתמש ברכיב הראשון בשדה int32Values בקטע ערך נכס הרכב. 0 פירושו false, ו-None 0 פירושו true.
INT32 0x00400000 מאפיין של מספר שלם, שמשתמש ברכיב הראשון בשדה int32Values בקטע ערך מאפיין הרכב.
INT32_VEC 0x00410000 המאפיין Integer[], משתמש ברכיבים בשדה int32Values בקטע ערך מאפיין הרכב.
INT64 0x00500000 מאפיין ארוך, שמשתמש ברכיב הראשון בשדה int64Values בקטע ערך מאפיין הרכב.
INT64_VEC 0x00510000 המאפיין Long[] משתמש ברכיבים בשדה int64Values בקטע ערך מאפיין הרכב.
FLOAT 0x00600000 מאפיין של ערך צף, שמשתמש ברכיב הראשון בשדה floatValues בקטע ערך נכס הרכב.
FLOAT_VEC 0x00610000 המאפיין Float[], משתמש ברכיבים בשדה floatValues בקטע ערך מאפיין הרכב.
בייטים 0x00700000 המאפיין byte[], משתמש ברכיבים בשדה byteValues בקטע ערך המאפיין Vehicle.
MIXED 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 מציין שלנכס יש ערך של נקודה צפה
  • configArray[7], המספר מציין את הגודל של Float[] בנכס
  • configArray[8], המספר מציין את הגודל של byte[] בנכס.

לדוגמה, הערך configArray = {1, 1, 1, 3, 0, 0, 0, 0, 0} מציין שלנכס יש ערך מחרוזת, ערך בוליאני, ערך שלם ומערך עם שלושה מספרים שלמים.

הגדרת מזהה אזור

כל הגדרת נכס יכולה להכיל גם רשימה של הגדרות של מזהי אזורים. הרשימה הזו היא אופציונלית לנכסים גלובליים, והיא חובה לנכסים מחולקים לאזורים (נכסים עם כמה אזורים נתמכים). לכל הגדרה של מזהה אזור יש את השדות הבאים.

שדה תיאור
areaId המזהה של האזור הזה. מזהים של אזורים
minInt32Value וגם maxInt32Value
  • ערך מינימום וערך מקסימום אופציונליים למאפיינים מסוג INT32. המערכת מתעלמת מכל סוגי הקבצים האחרים. המערכת תתעלם מהמאפיין אם שני הערכים הם 0.
  • בנכס גלובלי, אם צריך להגדיר ערך מינימלי ומקסימלי, צריך להשתמש בהגדרת אזור אחת עם מזהה האזור 0.
minInt64Value וגם maxInt64Value
  • ערך מינימלי ומקסימלי אופציונלי למאפיינים מסוג INT64. המערכת מתעלמת מכל סוגי הקבצים האחרים. המערכת תתעלם מהמאפיין אם שני הערכים הם 0.
  • בנכס גלובלי, אם צריך להגדיר ערך מינימלי ומקסימלי, צריך להשתמש בהגדרת אזור אחת עם מזהה האזור 0.
minFloatValue וגם maxFloatValue
  • ערך מינימום וערך מקסימום אופציונליים למאפיינים מסוג Float. המערכת מתעלמת מכל סוגי הקבצים האחרים. המערכת תתעלם מהמאפיין אם שני הערכים הם 0.0.
  • בנכס גלובלי, אם צריך להגדיר ערך מינימלי ומקסימלי, צריך להשתמש בהגדרת אזור אחת עם מזהה האזור 0.
(חדש ב-Android 14)
supportedEnumValues
  • רשימה אופציונלית של ערכים נתמכים, אם המאפיין מוגדר כמאפיין מסוג enum. אם לא צוין (ריק) או לפני Android 14, המערכת תתייחס לכל הערכים של המאפיין בתור נתמכים.
  • בנכס גלובלי, אם צריך להגדיר ערכים נתמכים של enum, צריך להשתמש בהגדרה אחת של אזור עם מזהה האזור 0.

סוגי אזורים

מוגדרים כ-enums ב-VehicleArea.aidl. סוגי האזורים הנתמכים מפורטים בהמשך.

סוג האזור ערך תיאור
GLOBAL 0x01000000 הנכס הזה הוא נכס גלובלי ואין לו כמה אזורים.
WINDOW 0x03000000 אזור שמבוסס על חלונות, נעשה בו שימוש ב-enum של VehicleAreaWindow.
MIRROR 0x04000000 אזור שמבוסס על מראות, נעשה בו שימוש ב-VehicleAreaMirror enum.
סיאט 0x05000000 אזור שמבוסס על מושבים, נעשה בו שימוש ב-enum של VehicleAreaSeat.
DOOR 0x06000000 אזור שמבוסס על דלתות, באמצעות VehicleAreaDoor enum.
WHEEL 0x07000000 שטח שמבוסס על גלגלים, באמצעות VehicleAreaWheel enum.

בכל נכס מוגדר מראש צריך להשתמש בסוג שטח מוגדר מראש. לכל סוג אזור יש קבוצה של דגלים של ביטים שמוגדרים ב-enum של סוג האזור. לדוגמה, האזור SEAT מגדיר את המאפיינים הבאים מסוג enum: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
  • ...

מזהי אזורים

נכסים שמחולקים לאזורים מקבלים כתובת באמצעות מזהי אזורים. כל נכס מוגדר-תחום יכול לתמוך במזהה אזור אחד או יותר. מזהה אזור מורכב מסימון אחד או יותר מה-enum התואם. לדוגמה, נכס שמשתמש ב-VehicleAreaSeat עשוי להשתמש במזהי האזורים הבאים:

פריט תיאור
ROW_1_LEFT | ROW_1_RIGHT מזהה האזור חל על שני המושבים הקדמיים.
ROW_2_LEFT ההגדרה חלה רק על המושב האחורי השמאלי.
ROW_2_RIGHT ההגדרה חלה רק על המושב הימני האחורי.

מידע נוסף זמין במאמר בקרת אקלים (HVAC).