הגדרות הנכס

כל מאפיין נתמך מצוין על ידי הגדרת מאפיין שמוגדרת באמצעות המבנה 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 נכס מסוג מעורב. כל שילוב של סוגי סקלר או וקטורים. צריך לציין את הפורמט המדויק במערך ה-config בהגדרות של הנכס.

בנכסים מסוג MIXED של ספקים, צריך לעצב את configArray במבנה הזה:

  • configArray[0], 1 מציין שלנכס יש ערך מחרוזת
  • configArray[1], 1 מציין שלנכס יש ערך בוליאני
  • configArray[2], 1 מציין שלנכס יש ערך של מספר שלם
  • configArray[3], המספר מציין את הגודל של Integer[] בנכס
  • configArray[4], 1 מציין שלנכס יש ערך ארוך
  • configArray[5], המספר מציין את הגודל של Long[] בנכס
  • configArray[6], 1 מציין שהנכס מכיל ערך של נקודה צפה
  • 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
  • ערך מינימום וערך מקסימום אופציונליים למאפיינים מסוג Float. המערכת מתעלמת מכל סוגי הקבצים האחרים. המערכת תתעלם אם הערך של שניהם הוא 0.0.
  • בנכס גלובלי, אם צריך להגדיר ערך מינימלי ומקסימלי, צריך להשתמש בהגדרת אזור אחת עם מזהה האזור 0.
(חדש ב-Android 14)
supportedEnumValues
  • רשימה אופציונלית של ערכים נתמכים אם המאפיין מוגדר כמאפיין מסוג enum. אם לא צוין (ריק) או לפני Android 14, המערכת תתייחס לכל הערכים של המאפיין בתור נתמכים.
  • בנכס גלובלי, אם צריך להגדיר ערכים נתמכים של enum, צריך להשתמש בהגדרה אחת של אזור עם מזהה האזור 0.

סוגי אזורים

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

סוג האזור ערך תיאור
GLOBAL 0x01000000 הנכס הזה הוא נכס גלובלי ואין לו כמה אזורים.
WINDOW 0x03000000 אזור שמבוסס על חלונות, באמצעות VehicleAreaWindow enum.
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).