संपत्ति विन्यास

प्रत्येक समर्थित संपत्ति को VehiclePropConfig संरचना के माध्यम से परिभाषित संपत्ति कॉन्फ़िगरेशन द्वारा निर्दिष्ट किया गया है और इसमें निम्नलिखित फ़ील्ड हैं।

मैदान विवरण
prop

संपत्ति आईडी. यह या तो समर्थित सिस्टम गुणों या विक्रेता संपत्ति में से परिभाषित सिस्टम गुणों में से एक होना चाहिए। प्रॉपर्टी आईडी का निर्माण बिट-या निम्नलिखित फ़ील्ड (दाएं से बाएं) का उपयोग करके किया जाता है:

  • (0x0000 0000 ) 16 बिट्स: 0x0100 - 0xffff रेंज से एक अद्वितीय आईडी।
  • (0x00 00 0000) 8 बिट्स: संपत्ति प्रकार जो संपत्ति के प्रकार को परिभाषित करता है।
  • (0x0 0 000000) 4 बिट्स: क्षेत्र प्रकार
  • (0x 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

निरंतर संपत्ति के लिए न्यूनतम और अधिकतम समर्थित नमूना दर। यदि संपत्ति निरंतर नहीं है तो इसका उपयोग नहीं किया जाता है।

संपत्ति के प्रकार

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 ​​फ़ील्ड में तत्वों का उपयोग करती है।
तैरना 0x00600000 फ़्लोट प्रॉपर्टी, वाहन प्रॉपर्टी वैल्यू में floatValues फ़ील्ड में पहले तत्व का उपयोग करती है।
FLOAT_VEC 0x00610000 फ्लोट[] संपत्ति, वाहन संपत्ति मूल्य में floatValues फ़ील्ड में तत्वों का उपयोग करती है।
बाइट्स 0x00700000 बाइट[] संपत्ति, वाहन संपत्ति मूल्य में byteValues फ़ील्ड में तत्वों का उपयोग करती है।
मिश्रित 0x00e00000 मिश्रित प्रकार की संपत्ति. अदिश या सदिश प्रकार का कोई भी संयोजन। प्रॉपर्टी कॉन्फ़िगरेशन में कॉन्फ़िगरेशन सरणी में सटीक प्रारूप प्रदान किया जाना चाहिए।

विक्रेता MIXED प्रकार की संपत्तियों के लिए, configArray को इस संरचना में स्वरूपित करने की आवश्यकता है:

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

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

VehicleArea.aidl में enums के रूप में परिभाषित किया गया है। समर्थित क्षेत्र प्रकार नीचे सूचीबद्ध हैं।

क्षेत्र का प्रकार कीमत विवरण
वैश्विक 0x01000000 यह संपत्ति एक वैश्विक संपत्ति है और इसमें एकाधिक क्षेत्र नहीं हैं।
खिड़की 0x03000000 विंडोज़ पर आधारित क्षेत्र, VehicleAreaWindow एनम का उपयोग करता है।
आईना 0x04000000 दर्पणों पर आधारित क्षेत्र, VehicleAreaMirror एनम का उपयोग करता है।
सीट 0x05000000 सीटों के आधार पर क्षेत्र, VehicleAreaSeat एनम का उपयोग करता है।
दरवाजा 0x06000000 दरवाज़ों पर आधारित क्षेत्र, VehicleAreaDoor एनम का उपयोग करता है।
पहिया 0x07000000 पहियों पर आधारित क्षेत्र, VehicleAreaWheel एनम का उपयोग करता है।

प्रत्येक ज़ोन की गई संपत्ति को पूर्व-परिभाषित क्षेत्र प्रकार का उपयोग करना चाहिए। प्रत्येक क्षेत्र प्रकार में क्षेत्र प्रकार के लिए एनम में परिभाषित बिट फ़्लैग का एक सेट होता है। उदाहरण के लिए, सीट क्षेत्र 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 केवल पिछली दाहिनी सीट पर लागू होता है।

अधिक जानने के लिए, एचवीएसी देखें।