प्रॉपर्टी के कॉन्फ़िगरेशन

इस्तेमाल की जा सकने वाली हर प्रॉपर्टी के लिए, VehiclePropConfig स्ट्रक्चर के ज़रिए तय किए गए प्रॉपर्टी कॉन्फ़िगरेशन की जानकारी दी जाती है. साथ ही, इसमें ये फ़ील्ड होते हैं.

फ़ील्ड ब्यौरा
prop

प्रॉपर्टी आईडी. यह काम करने वाली सिस्टम प्रॉपर्टी में से किसी एक प्रॉपर्टी या वेंडर की प्रॉपर्टी होनी चाहिए. प्रॉपर्टी आईडी को बिट या इन फ़ील्ड (दाएं से बाएं) का इस्तेमाल करके बनाया जाता है:

  • (0x00000000) 16 बिट: 0x0100 से 0xffff की रेंज में एक यूनीक आईडी.
  • (0x00000000) आठ बिट: प्रॉपर्टी टाइप, जो प्रॉपर्टी के टाइप की जानकारी देता है.
  • (0x00000000) चार बिट: एरिया टाइप.
  • (0x00000000) चार बिट: 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 फ़ील्ड का इस्तेमाल करती है.
BOOLEAN 0x00200000 बूलियन प्रॉपर्टी, वाहन की प्रॉपर्टी की वैल्यू में int32Values फ़ील्ड में पहले एलिमेंट का इस्तेमाल किया जाता है. 0 का मतलब false है, None 0 का मतलब true है.
INT32 0x00400000 इंटिजर प्रॉपर्टी, वाहन की प्रॉपर्टी वैल्यू में int32Values फ़ील्ड के पहले एलिमेंट का इस्तेमाल करती है.
INT32_VEC 0x00410000 Integer[] प्रॉपर्टी, वाहन की प्रॉपर्टी की वैल्यू में int32Values फ़ील्ड के एलिमेंट का इस्तेमाल करती है.
INT64 0x00500000 लंबी प्रॉपर्टी, वाहन की प्रॉपर्टी की वैल्यू में int64Values फ़ील्ड के पहले एलिमेंट का इस्तेमाल करती है.
आईएनटी64_वीईसी 0x00510000 Long[] प्रॉपर्टी, वाहन की प्रॉपर्टी वैल्यू में int64Values फ़ील्ड के एलिमेंट का इस्तेमाल करती है.
FLOAT 0x00600000 फ़्लोट प्रॉपर्टी, वाहन की प्रॉपर्टी की वैल्यू में floatValues फ़ील्ड में पहले एलिमेंट का इस्तेमाल किया जाता है.
FLOAT_VEC 0x00610000 फ़्लोट[] प्रॉपर्टी, वाहन की प्रॉपर्टी की वैल्यू में floatValues फ़ील्ड में एलिमेंट का इस्तेमाल करती है.
बाइट 0x00700000 byte[] प्रॉपर्टी, वाहन की प्रॉपर्टी की वैल्यू में byteValues फ़ील्ड के एलिमेंट का इस्तेमाल करती है.
मिक्स 0x00e00000 अलग-अलग टाइप की प्रॉपर्टी. स्केलर या वेक्टर टाइप का कोई भी कॉम्बिनेशन. प्रॉपर्टी कॉन्फ़िगरेशन में, कॉन्फ़िगरेशन कलेक्शन में सही फ़ॉर्मैट दिया जाना चाहिए.

वेंडर की MIXED टाइप प्रॉपर्टी के लिए, configArray को इस स्ट्रक्चर में फ़ॉर्मैट करना होगा:

  • configArray[0], 1 से पता चलता है कि प्रॉपर्टी की वैल्यू स्ट्रिंग है
  • configArray[1], 1 से पता चलता है कि प्रॉपर्टी की बूलियन वैल्यू है
  • configArray[2], 1 से पता चलता है कि प्रॉपर्टी की वैल्यू इंटिजर है
  • configArray[3], यह संख्या प्रॉपर्टी में Integer[] के साइज़ को दिखाती है
  • configArray[4], 1 से पता चलता है कि प्रॉपर्टी की लंबी वैल्यू है
  • configArray[5], यह संख्या प्रॉपर्टी में लार्ज[] का साइज़ दिखाती है
  • configArray[6], 1 से पता चलता है कि प्रॉपर्टी की वैल्यू फ़्लोट है
  • configArray[7], यह संख्या प्रॉपर्टी में फ़्लोट[] का साइज़ दिखाती है
  • 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 वाले एक क्षेत्र कॉन्फ़िगरेशन का इस्तेमाल करना होगा.
(Android 14 में नई सुविधा)
supportedEnumValues
  • अगर प्रॉपर्टी को वैल्यू के तौर पर इस्तेमाल की जा सकने वाली प्रॉपर्टी के तौर पर तय किया गया है, तो इस्तेमाल की जा सकने वाली वैल्यू की सूची. हालांकि, यह सूची देना ज़रूरी नहीं है. अगर इस नीति के बारे में जानकारी नहीं दी गई है (खाली है) या Android 14 से पहले का वर्शन है, तो माना जाता है कि ईनम वाली सभी वैल्यू इस्तेमाल की जा सकती हैं.
  • ग्लोबल प्रॉपर्टी के लिए, अगर काम करने वाली एनम वैल्यू तय करनी हैं, तो क्षेत्र आईडी 0 वाले एक क्षेत्र के कॉन्फ़िगरेशन का इस्तेमाल करना होगा.

क्षेत्र के टाइप

VehicleArea.aidl में, वैल्यू को वैरिएशन के तौर पर तय किया गया है. यहां उन इलाकों के टाइप दिए गए हैं जहां प्रॉडक्ट बेचे जा सकते हैं.

इलाके का टाइप वैल्यू ब्यौरा
दुनिया भर में 0x01000000 यह प्रॉपर्टी एक ग्लोबल प्रॉपर्टी है. इसमें कई एरिया नहीं हैं.
विंडो 0x03000000 विंडो के आधार पर क्षेत्र, VehicleAreaWindow enum का इस्तेमाल करता है.
मिरर 0x04000000 मिरर के आधार पर क्षेत्र, VehicleAreaMirror enum का इस्तेमाल करता है.
SEAT 0x05000000 सीटों के आधार पर क्षेत्र, VehicleAreaSeat enum का इस्तेमाल करता है.
दरवाज़ा 0x06000000 दरवाज़ों के आधार पर क्षेत्र, VehicleAreaDoor enum का इस्तेमाल करता है.
WHEEL 0x07000000 यह एरिया, VehicleAreaWheel 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 यह सिर्फ़ पीछे वाली दाईं सीट पर लागू होता है.

ज़्यादा जानने के लिए, एचवीएसी देखें.