החל מ-27 במרץ 2025, מומלץ להשתמש ב-android-latest-release
במקום ב-aosp-main
כדי ליצור תרומות ל-AOSP. מידע נוסף זמין במאמר שינויים ב-AOSP.
הגדרות נכס
קל לארגן דפים בעזרת אוספים
אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.
כל נכס נתמך מצוין על ידי הגדרת נכס שמוגדרת באמצעות המבנה VehiclePropConfig
, וכולל את השדות הבאים.
שדה |
תיאור |
---|
prop |
מזהה הנכס. זה חייב להיות אחד ממאפייני המערכת שהוגדרו בקובץ VehicleProperty.aidl או מאפיין של ספק. מזהה הנכס נוצר באמצעות אופרטור 'או' ביטים של השדות הבאים (ימינה לשמאל):
- (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 |
קצב הדגימה המינימלי והמקסימלי שנתמך לנכס רציף (בהרץ). לא בשימוש אם הנכס לא רציף. ההטמעה של VHAL חייבת לאפשר את השלמת minSampleRate ו-maxSampleRate . לא חייבים לתמוך בכל שיעורי הדגימה שבין הערך המינימלי למקסימלי. |
סוגי נכסים
מוגדרים כ-enums ב-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. אם לא צוין (ריק) או לפני Android 14, המערכת תתייחס לכל הערכים של enum בתור נתמכים.
- בנכס גלובלי, אם צריך להגדיר ערכים נתמכים של enum, צריך להשתמש בהגדרה אחת של אזור עם מזהה האזור 0.
- הערך הזה הוא סטטי ולא ישתנה גם אם הערכים הנתמכים ישתנו במהלך זמן הריצה. מטמיעים את
IVehicle#getSupportedValuesLists לערכים דינמיים נתמכים.
- ההגבלה הזו חלה רק על נכסים מסוג enum. בשאר הסוגים, השדה הזה צריך להיות ריק.
כדי לחשוף ערכים נתמכים של סוגי נתונים אחרים שאינם enum, משתמשים ב-
IVehicle#getSupportedValuesLists .
|
(חדש ב-Android 15)
supportVariableUpdateRate |
- האם יש תמיכה בשיעור עדכון של משתנים. ההנחיה הזו רלוונטית רק לנכסים רציפים.
- אם הערך הוא
true , האפליקציה יכולה להפעיל שיעור עדכון משתנה למינוי כדי לקבל אירועי עדכון של נכסים רק כשערך הנכס משתנה (כלומר, המערכת מתייחסת למאפיינים רציפים כמאפיינים שמתעדכנים בזמן שינוי).
- אם כל המנויים לנכס מפעילים קצב עדכון משתנה, בקשת המינוי ל-VHAL מפעילה קצב עדכון משתנה לנכס, ו-VHAL חייב לשלוח אירועי עדכון נכס רק כשערך הנכס משתנה.
- אם מישהו מהמנויים מבקש קצב עדכון קבוע, בקשת המינוי ל-VHAL משביתה את קצב העדכון המשתנה בנכס, ו-AAOS מסנן את האירועים הכפולים של הלקוחות שמבקשים קצב עדכון משתנה.
- מומלץ מאוד לתמוך בשיעור עדכון משתנה לכל הנכסים המתמשכים שאינם פעימות לב, כדי לשפר את הביצועים. עם זאת, אם נתוני הנכס גדולים (לדוגמה, מערך בייטים בגודל 1,000) ויכולים לתפוס כמות גדולה של זיכרון לשמירת נתונים במטמון, מומלץ להשתמש בשיעור עדכון קבוע.
|
(חדש ב-Android 16)
hasSupportedValueInfo |
- אם הערך הוא לא
null , המערכת מציגה אם המאפיין הזה מציין ערכים מינימלי או מקסימלי נתמכים, או רשימה של ערכים נתמכים.
- השדה הזה קובע אם ממשקי ה-API של הערכים הנתמכים הדינמיים:
getMinMaxSupportedValue , getSupportedValuesLists ,
subscribeSupportedValueChange , unsubscribeSupportedValueChange
נתמכים במזהה המאפיין הזה ובמזהה האזור הזה.
- אם הערך הוא לא
null , ה-VHAL צריך להטמיע את ממשקי ה-API האלה עבור מזהה הנכס ומזהה האזור האלה.
- אם
null או ב-Android מגרסה 15 ומטה, אין תמיכה בערכים דינמיים נתמכים של מזהה הנכס הזה ומזהה האזור. הלקוח צריך להשתמש במידע על הערכים הנתמכים הסטטיים שצוין בהגדרות של מאפיין הרכב.
|
סוגי אזורים
מוגדרים כ-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).
דוגמאות התוכן והקוד שבדף הזה כפופות לרישיונות המפורטים בקטע רישיון לתוכן. Java ו-OpenJDK הם סימנים מסחריים או סימנים מסחריים רשומים של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2025-06-12 (שעון UTC).
[[["התוכן קל להבנה","easyToUnderstand","thumb-up"],["התוכן עזר לי לפתור בעיה","solvedMyProblem","thumb-up"],["סיבה אחרת","otherUp","thumb-up"]],[["חסרים לי מידע או פרטים","missingTheInformationINeed","thumb-down"],["התוכן מורכב מדי או עם יותר מדי שלבים","tooComplicatedTooManySteps","thumb-down"],["התוכן לא עדכני","outOfDate","thumb-down"],["בעיה בתרגום","translationIssue","thumb-down"],["בעיה בדוגמאות/בקוד","samplesCodeIssue","thumb-down"],["סיבה אחרת","otherDown","thumb-down"]],["עדכון אחרון: 2025-06-12 (שעון UTC)."],[],[]]