यूडब्ल्यूबी एचएएल इंटरफ़ेस

अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है

एओएसपी अल्ट्रा-वाइडबैंड (यूडब्ल्यूबी) स्टैक का इस्तेमाल करता है FiRa का तय किया गया यूसीआई इंटरफ़ेस को एचएएल सरफ़ेस के तौर पर देखा जा सकता है. HAL इंटरफ़ेस एक ओपेक पाइप का इस्तेमाल करता है (IUwbChip::sendUciMessage() और IUwbClientCallback::onUciMessage()) भेजने के लिए साथ ही, यूडब्ल्यूबी कमांड इंटरफ़ेस (यूसीआई) कमांड, जवाब, और सूचनाएं पाई जा सकती हैं. सभी Android यूडब्ल्यूबी वेंडर को तय किए गए सभी FiRa स्पेसिफ़िकेशन का पालन करना होगा मैसेज. यूडब्ल्यूबी फ़्रेमवर्क, पुराने सिस्टम के साथ काम करता है और किसी भी यूसीआई के साथ काम करता है वर्शन को डिवाइस पर यूडब्ल्यूबी वेंडर ने लागू किया हो. क्योंकि एओएसपी यूडब्ल्यूबी फ़्रेमवर्क एक मॉड्यूल है, साथ ही, मंज़ूर किए गए बदलाव के अनुरोधों (सीआर) के लिए भी यहां से चुना जा सकता है इसमें FiRa स्टैंडर्ड की अहम रिलीज़ के लिए, UCI के मानकों का ड्राफ़्ट शामिल किया गया है. ऐसा कोई भी लागू किए गए ड्राफ़्ट सीआर में बदलाव हो सकता है.

इंटरफ़ेस की परिभाषा

यूडब्ल्यूबी एचएएल इंटरफ़ेस को इसका इस्तेमाल करके तय किया जाता है स्टेबल एआईडीएल. मुख्य इंटरफ़ेस, android.hardware.uwb पैकेज का इस्तेमाल करता है.

android.hardware.uwb में दो मुख्य इंटरफ़ेस नीचे दिए गए हैं पैकेज.

IUwbChip.aidl

package android.hardware.uwb;

interface IUwbChip {

 String getName();

 void open(in android.hardware.uwb.IUwbClientCallback clientCallback);

 void close();

 void coreInit();

 void sessionInit(int sessionId);

 int getSupportedAndroidUciVersion();

 int sendUciMessage(in byte[] data);

}

IUwbClientCallback.aidl

package android.hardware.uwb;

interface IUwbClientCallback {

 oneway void onUciMessage(in byte[] data);

 oneway void onHalEvent(in android.hardware.uwb.UwbEvent event, in android.hardware.uwb.UwbStatus status);

}

यूडब्ल्यूबी फ़्रेमवर्क से एचएएल कॉल फ़्लो

नीचे दी गई इमेज में, यूडब्ल्यूबी फ़्रेमवर्क से यूडब्ल्यूबी स्टैक को शुरू करना, यूडब्ल्यूबी स्टैक को बंद करना, और यूडब्ल्यूबी सेशन शुरू करना और प्रक्रियाओं को रोक देता है.

यूडब्ल्यूबी स्टैक को शुरू करना

पहला डायग्राम. यूडब्ल्यूबी स्टैक शुरू करने का कॉल फ़्लो (यूडब्ल्यूबी टॉगल चालू है)

यूडब्ल्यूबी स्टैक को बंद करने की प्रोसेस

दूसरा डायग्राम. यूडब्ल्यूबी स्टैक को डीइनीशियलाइज़ेशन कॉल फ़्लो (यूडब्ल्यूबी टॉगल बंद है)

यूडब्ल्यूबी सेशन शुरू और बंद होना

तीसरी इमेज. यूडब्ल्यूबी सेशन शुरू/बंद करने का फ़्लो

यूडब्ल्यूबी वाले देश के कोड का कॉन्फ़िगरेशन

जैसा कि पहली इमेज में दिखाया गया है, यूडब्ल्यूबी फ़्रेमवर्क, देश कोड को कॉन्फ़िगर करता है के दौरान ANDROID_SET_COUNTRY_CODE (GID=0xC, OID=0x1). यूडब्ल्यूबी फ़्रेमवर्क प्राथमिकता में दिए गए इन सोर्स का इस्तेमाल करके, यूडब्ल्यूबी देश कोड तय करें ऑर्डर). यूडब्ल्यूबी फ़्रेमवर्क उस पहले सोर्स पर रुक जाता है जहां देश कोड है तय किया गया.

  1. देश का कोड बदलें: adb शेल कमांड के ज़रिए लागू किया गया देश का कोड (स्थानीय या ऑटोमेटेड टेस्टिंग).
  2. टेलीफ़ोनी देश का कोड: मोबाइल नेटवर्क से देश का कोड मिला. अगर आपने ऐसे कई सिम हैं जो अलग-अलग कोड दिखाते हैं, जैसे कि देश का कोड यह अनिर्धारित है.
  3. वाई-फ़ाई देश का कोड: वाई-फ़ाई (80211.ad) की मदद से मिला देश का कोड.
  4. आखिरी बार टेलीफ़ोनी सुविधा के लिए चुना गया देश कोड: आखिरी बार जिस देश का फ़ोन नंबर मिला था उसका कोड मिला मोबाइल डेटा के ज़रिए ऐक्सेस किया जा सकता है. अगर एक से ज़्यादा सिम, अलग-अलग रिटर्न करते हैं तो चुना गया देश कोड कोई तय नहीं होता.
  5. जगह का देश कोड: LocationManager से देश का कोड मिला एक ही जगह से दूसरी जगह से कनेक्ट करने वाली सेवा.
  6. OEM का डिफ़ॉल्ट देश कोड: डिवाइस बनाने वाली कंपनी ने देश का कोड सेट किया है.

अगर यूडब्ल्यूबी फ़्रेमवर्क, यूडब्ल्यूबी देश कोड तय नहीं कर पाता है, तो यह ANDROID_SET_COUNTRY_CODE यूसीआई कमांड, जिसकी वैल्यू है DEFAULT_COUNTRY_CODE ("00") और यूडब्ल्यूबी ऐप्लिकेशन को यह सूचना देती है कि यूडब्ल्यूबी स्टैक की स्थिति DISABLED है. बाद में, जब यूडब्ल्यूबी फ़्रेमवर्क CANNOT TRANSLATE मान्य देश कोड है, तो यह नए देश कोड को ANDROID_SET_COUNTRY_CODE निर्देश देता है और यूडब्ल्यूबी ऐप्लिकेशन को इसकी सूचना देता है कि यूडब्ल्यूबी स्टैक की स्थिति क्या है READY है.

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

जब कोई उपयोगकर्ता किसी दूसरे देश की यात्रा करता है, तो यूडब्ल्यूबी फ़्रेमवर्क ANDROID_SET_COUNTRY_CODE यूसीआई कमांड का इस्तेमाल करके देश के कोड का इस्तेमाल करें. इसके आधार पर यूडब्ल्यूबी कंट्रोलर से स्टेटस कोड वापस मिलता है (यह कोड, यूडब्ल्यूबी नियमों और नया देश), इससे यूडब्ल्यूबी स्टैक की स्थिति में बदलाव हो सकता है.

FIRA UCI स्पेसिफ़िकेशन के मुताबिक तय किया गया कमांड फ़ॉर्मैट

यूसीआई कंट्रोल पैकेट के फ़ॉर्मैट के लिए, यहां देखें यूसीआई का सेक्शन 4.4.2 खास जानकारी.

इंटरफ़ेस वर्शनिंग

यूसीआई स्पेसिफ़िकेशन की मदद से, यूडब्ल्यूबी वेंडर, यूसीआई स्टैक का वर्शन दिखा सकते हैं UCI_GET_DEVICE_INFO_RSP का इस्तेमाल करके डिवाइस से लागू किया जाता है और UCI_GET_CAPS_INFO_RSP निर्देश. फ़्रेमवर्क डिवाइस का यूसीआई वर्शन और उसके हिसाब से काम करने का तरीका बदल सकता है.

यूडब्ल्यूबी मॉड्यूल के साथ काम करने वाले ड्राफ़्ट सीआर की सूची

FiRa 2.0 के लिए, नीचे दिए गए ड्राफ़्ट सीआर इनके साथ काम करते हैं यूडब्ल्यूबी मॉड्यूल वर्शन #330810000:

Android UCI इंटरफ़ेस (FiRa वेंडर वाला हिस्सा)

यूसीआई के स्पेसिफ़िकेशन में, ग्रुप आइडेंटिफ़ायर (जीआईडी) और ऑपकोड के सेट के बारे में बताया गया है आइडेंटिफ़ायर (OIDs) का इस्तेमाल करता है. जानकारी GID का एक सेट भी सुरक्षित रखता है, जो खास तौर पर वेंडर के इस्तेमाल के लिए रिज़र्व है. एओएसपी यूडब्ल्यूबी स्टैक, Android के लिए खास कमांड के लिए, इनमें से कुछ वेंडर GID और OID का इस्तेमाल करता है को स्पेसिफ़िकेशन में नहीं बताया गया है. जानकारी के लिए, यह देखें यूसीआई का सेक्शन 8.4 खास जानकारी.

Android, वेंडर के इन मैसेज का इस्तेमाल android.hardware.uwb.fira_android एचएएल पैकेज.

वेंडर इंटरफ़ेस का वर्शन

यूडब्ल्यूबी वेंडर को android.hardware.uwb.fira_android का वर्शन दिखाना होगा डिवाइस पर HAL पैकेज इसके ज़रिए काम करता है IUwbChip.getSupportedAndroidUciVersion(). फ़्रेमवर्क इसका इस्तेमाल करता है पुराने वर्शन के साथ काम करने की सुविधा को मैनेज करने के लिए, वर्शन की जानकारी.

Android जीआईडी और ओआईडी की सूची

नीचे दी गई टेबल में Android के लिए जीआईडी और ओआईडी की सूची दी गई है. जीआईडी 0xE और 0xF Android OEM के लिए बुक किए गए हैं.

GID ओआईडी परिभाषा
ANDROID = 0xC ANDROID_GET_POWER_STATS = 0x0 इसका इस्तेमाल निर्देश और रिस्पॉन्स में, यूडब्ल्यूबी पावर से जुड़े आंकड़े पाने के लिए किया जाता है. सिर्फ़ तब काम करता है, जब UwbVendorCapabilityTlvTypes.SUPPORTED_POWER_STATS_QUERY अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है 1 पर सेट है.
ANDROID_SET_COUNTRY_CODE = 0x1

इसका इस्तेमाल मौजूदा रेगुलेटरी देश कोड को सेट करने के लिए किया जाता है. सिम या वाई-फ़ाई, या OEM की ओर से हार्डकोड किया गया हो. देश का कोड भेज दिया गया है का इस्तेमाल किया जा सकता है. ऐप्लिकेशन 00 की वैल्यू का इस्तेमाल यह बताने के लिए किया जाता है कि देश का कोड अज्ञात है.

ANDROID_RANGE_DIAGNOSTICS = 0x2 सूचना में इसका इस्तेमाल, यूडब्ल्यूबी की गड़बड़ी की जानकारी के आंकड़े पाने के लिए किया जाता है. सिर्फ़ तब काम करता है, जब UwbVendorCapabilityTlvTypes.SUPPORTED_DIAGNOSTICS सेट हो गया है 1 तक.
OEM = 0xE,0xF 0x00 - 0x3F OEM के इस्तेमाल के लिए रिज़र्व.

UCI स्पेसिफ़िकेशन के ज़रिए तय किए गए मैसेज के लिए वेंडर एक्सटेंशन

इस सेक्शन में, यूसीआई के वेंडर एक्सटेंशन की जानकारी दी गई है खास तरह के मैसेज के लिए.

SESSION_SET_APP_CONFIG_[CMD|RSP] और SESSION_GET_APP_CONFIG_[CMD|RSP]

यहां एओएसपी स्टैक से, टाइप की लंबाई की वैल्यू (टीएलवी) के बारे में बताया गया है APP_CONFIG में TLV का वेंडर रिज़र्व किया गया हिस्सा:

  • जीआईडी: 0001b (यूडब्ल्यूबी सेशन कॉन्फ़िगरेशन ग्रुप)
  • ओआईडी: 000011b (SESSION_SET_APP_CONFIG_CMD)
  • ओआईडी: 000100b (SESSION_GET_APP_CONFIG_CMD)

यहां दी गई टेबल में, यूडब्ल्यूबी सेशन के कॉन्फ़िगरेशन मैसेज के पैरामीटर दिए गए हैं.

पैरामीटर का नाम लंबाई
(ऑक्टेट)
टैग
(आईडी)
वेंडर इंटरफ़ेस का वर्शन ब्यौरा
NB_OF_RANGE_MEASUREMENTS 1 0xE3 1 अगर AOA_RESULT_REQ सेट है, तो इंटरलेविंग अनुपात 0xF0 तक. सिर्फ़ तब काम करता है, जब UwbVendorCapabilityTlvTypes.SUPPORTED_AOA_RESULT_REQ_ANTENNA_INTERLEAVING अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है 1 पर सेट किया गया.
NB_OF_AZIMUTH_MEASUREMENTS 1 0xE4 1
NB_OF_ELEVATION_MEASUREMENTS 1 0xE5 1
ENABLE_DIAGNOSTICS 1 0xE8 2

गड़बड़ी की जानकारी की रिपोर्टिंग चालू या बंद करने के लिए 1-बाइट का मान. इस पैरामीटर को सिर्फ़ तब कॉन्फ़िगर करें, जब CORE_GET_CAPS_INFO_RSP इसके मान के साथ SUPPORTED_DIAGNOSTICS लौटाता है 1 से पता चलता है कि गड़बड़ी की जानकारी रिपोर्ट करने की सुविधा यह है समर्थित हैं.

मान:

  • 1: सुविधा चालू है
  • 0: सुविधा बंद है

DIAGRAMS_FRAME_REPORTS_FIELDS 1 या 4 0xE9 2

गड़बड़ी की जानकारी देने वाली रिपोर्ट को कॉन्फ़िगर करने के लिए, 1-बाइट या 4-बाइट का बिटमास्क. यह Android 14 या इसके बाद के वर्शन में Bitmask 1 बाइट का है और Android 13 या इससे पहले के वर्शन में 4 बाइट होना चाहिए.

इस पैरामीटर को सिर्फ़ तब कॉन्फ़िगर करें, जब CORE_GET_CAPS_INFO_RSP का शुल्क देकर, प्रॉडक्ट को लौटाया जा सकता है 1 की वैल्यू के साथ SUPPORTED_DIAGNOSTICS इससे पता चलता है कि गड़बड़ी की जानकारी की रिपोर्टिंग की सुविधा काम करती है.

बिट की परिभाषाएं:

  • b0 (0x01): आरएसएसआई फ़ील्ड चालू करें
  • b1 (0x02): AoA फ़ील्ड चालू करें
  • b2 (0x04): सीआईआर फ़ील्ड की सुविधा चालू करें

CORE_GET_CAPS_INFO_RSP

रिज़र्व किए गए वेंडर में, एओएसपी स्टैक से तय की गई टीएलवी नीचे दी गई हैं CAPS_INFO में TLV का हिस्सा:

  • जीआईडी: 0000b (यूडब्ल्यूबी कोर ग्रुप)
  • ओआईडी: 000011b (CORE_GET_CAPS_INFO_RSP)

यहां दी गई टेबल में, यूडब्ल्यूबी क्षमता वाले मैसेज के पैरामीटर दिए गए हैं.

पैरामीटर का नाम लंबाई
(ऑक्टेट)
टैग
(आईडी)
वेंडर इंटरफ़ेस का वर्शन ब्यौरा
SUPPORTED_POWER_STATS_QUERY 1 0xC0 1

1 बाइट की वैल्यू, जिससे पता चलता है कि पावर के आंकड़े वाली क्वेरी के लिए सपोर्ट किया जा सकता है.

मान:

  • 1: यह सुविधा काम करती है
  • 0: यह सुविधा उपलब्ध नहीं है
SUPPORTED_AOA_RESULT_REQ_ANTENNA_INTERLEAVING 1 0xE3 1

1 बाइट की वैल्यू, जिससे पता चलता है कि ऐंटीना के इंटरलीविंग सिस्टम के लिए सहायता उपलब्ध है सुविधा.

मान:

  • 1: यह सुविधा काम करती है
  • 0: यह सुविधा उपलब्ध नहीं है
SUPPORTED_MIN_RANGING_INTERVAL_MS 4 0xE4 2 4 बाइट वाली वैल्यू, जिसमें काम करने वाले कम से कम रेंज इंटरवल को दिखाती है मिलीसेकंड.
SUPPORTED_RANGE_DATA_NTF_CONFIG 4 0xE5 2 4 बाइट का बिटमास्क बताता है कि सपोर्ट किया जा सकता है RANGE_DATA_NTF_CONFIG वैल्यू. बिटमास्क जहां हर बिट में इस्तेमाल की गई वैल्यू से मेल खाता है SET_APP_CFG_CMD में RANGE_DATA_NTF_CONFIG.
SUPPORTED_RSSI_REPORTING 1 0xE6 2

1 बाइट की वैल्यू, इससे पता चलता है कि आरएसएसआई रिपोर्टिंग की सुविधा काम करती है.

मान:

  • 1: यह सुविधा काम करती है
  • 0: यह सुविधा उपलब्ध नहीं है
SUPPORTED_DIAGNOSTICS 1 0xE7 2

1 बाइट की वैल्यू, जिससे पता चलता है कि डाइग्नोस्टिक्स रिपोर्टिंग की सुविधा काम करती है.

मान:

  • 1: यह सुविधा काम करती है
  • 0: यह सुविधा उपलब्ध नहीं है
SUPPORTED_MIN_SLOT_DURATION_RSTU 4 0xE8 2 4 बाइट वाली वैल्यू, जो RSTU में इस्तेमाल किए जा सकने वाले कम से कम स्लॉट की अवधि को दिखाती है.
SUPPORTED_MAX_RANGING_SESSION_NUMBER 4 0xE9 2 4 बाइट वैल्यू, जो FiRa रेंज में इस्तेमाल की जा सकने वाली ज़्यादा से ज़्यादा संख्या को दिखाती है सत्र.
SUPPORTED_CHANNELS_AOA 2 0xEA 2

AoA का समर्थन करने वाले चैनलों को दिखाने के लिए 2 बाइट का बिटमास्क. हर बिटमास्क में 1 किसी खास यूडब्ल्यूबी चैनल से मेल खाता है.

मान:

  • 0x01: चैनल 5 पर काम करता है
  • 0x02: चैनल 6 पर काम करता है
  • 0x04: चैनल 8 इस्तेमाल किया जा सकता है
  • 0x08: चैनल 9 पर यह सुविधा काम करती है
  • 0x10: चैनल 10 पर काम करता है
  • 0x20: चैनल 12 पर काम करता है
  • 0x40: चैनल 13 पर काम करता है
  • 0x80: चैनल 14 पर काम करता है

स्थिति कोड

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

स्थिति कोड वैल्यू ब्यौरा
STATUS_ERROR_STOPPED_DUE_TO_OTHER_SESSION_CONFLICT 0x52

मौजूदा रेंज सेशन न होने पर स्थिति कोड दिखाया जाता है अन्य CCC या FiRa रेंज सेशन में टकराव की वजह से शुरू किया गया.

STATUS_REGULATION_UWB_OFF 0x53

मौजूदा रेंज सेशन न होने पर स्थिति कोड दिखाया जाता है यूडब्ल्यूबी के नियमों की वजह से शुरू किया गया.

SESSION_STATUS_NTF में राज्य परिवर्तन कारण कोड

यहां वेंडर स्पेस में, स्थिति बदलने की वजह बताने वाले कोड के बारे में बताया गया है UWBS की मदद से SESSION_STATUS_NTF में स्टेटस फ़ील्ड को दिखाता है. यह सूचना रेंज, सेशन की स्थिति बदलने पर यूडब्ल्यूबीएस भेजता है (उदाहरण के लिए, ACTIVE से IDLE तक).

राज्य में बदलाव की वजह का कोड वैल्यू ब्यौरा
REASON_ERROR_INVALID_CHANNEL_WITH_AOA 0x80

सेशन की स्थिति बदल गई है, क्योंकि कॉन्फ़िगर किया गया चैनल अलग-अलग रेंज में काम करते हैं.

REASON_ERROR_STOPPED_DUE_TO_OTHER_SESSION_CONFLICT 0x81

अन्य CCC या FiRa से मेल न खाने की वजह से, सेशन की स्थिति बदल गई रेंज.

REASON_REGULATION_UWB_OFF 0x82

सत्र की स्थिति बदल गई है क्योंकि UWB को के बारे में जानकारी देनी होगी.