एओएसपी
अल्ट्रा-वाइडबैंड (यूडब्ल्यूबी) स्टैक
का इस्तेमाल करता है
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
). यूडब्ल्यूबी फ़्रेमवर्क
प्राथमिकता में दिए गए इन सोर्स का इस्तेमाल करके, यूडब्ल्यूबी देश कोड तय करें
ऑर्डर). यूडब्ल्यूबी फ़्रेमवर्क उस पहले सोर्स पर रुक जाता है जहां देश कोड है
तय किया गया.
- देश का कोड बदलें: adb शेल कमांड के ज़रिए लागू किया गया देश का कोड (स्थानीय या ऑटोमेटेड टेस्टिंग).
- टेलीफ़ोनी देश का कोड: मोबाइल नेटवर्क से देश का कोड मिला. अगर आपने ऐसे कई सिम हैं जो अलग-अलग कोड दिखाते हैं, जैसे कि देश का कोड यह अनिर्धारित है.
- वाई-फ़ाई देश का कोड: वाई-फ़ाई (80211.ad) की मदद से मिला देश का कोड.
- आखिरी बार टेलीफ़ोनी सुविधा के लिए चुना गया देश कोड: आखिरी बार जिस देश का फ़ोन नंबर मिला था उसका कोड मिला मोबाइल डेटा के ज़रिए ऐक्सेस किया जा सकता है. अगर एक से ज़्यादा सिम, अलग-अलग रिटर्न करते हैं तो चुना गया देश कोड कोई तय नहीं होता.
- जगह का देश कोड:
LocationManager
से देश का कोड मिला एक ही जगह से दूसरी जगह से कनेक्ट करने वाली सेवा. - 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 की ओर से हार्डकोड किया गया हो. देश का कोड भेज दिया गया है
का इस्तेमाल किया जा सकता है. ऐप्लिकेशन
|
|
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-बाइट का मान.
इस पैरामीटर को सिर्फ़ तब कॉन्फ़िगर करें, जब मान:
|
DIAGRAMS_FRAME_REPORTS_FIELDS |
1 या 4 | 0xE9 |
2 | गड़बड़ी की जानकारी देने वाली रिपोर्ट को कॉन्फ़िगर करने के लिए, 1-बाइट या 4-बाइट का बिटमास्क. यह Android 14 या इसके बाद के वर्शन में Bitmask 1 बाइट का है और Android 13 या इससे पहले के वर्शन में 4 बाइट होना चाहिए. इस पैरामीटर को सिर्फ़ तब कॉन्फ़िगर करें, जब
बिट की परिभाषाएं:
|
CORE_GET_CAPS_INFO_RSP
रिज़र्व किए गए वेंडर में, एओएसपी स्टैक से तय की गई टीएलवी नीचे दी गई हैं
CAPS_INFO
में TLV का हिस्सा:
- जीआईडी: 0000b (यूडब्ल्यूबी कोर ग्रुप)
- ओआईडी: 000011b (
CORE_GET_CAPS_INFO_RSP
)
यहां दी गई टेबल में, यूडब्ल्यूबी क्षमता वाले मैसेज के पैरामीटर दिए गए हैं.
पैरामीटर का नाम | लंबाई (ऑक्टेट) |
टैग (आईडी) |
वेंडर इंटरफ़ेस का वर्शन | ब्यौरा |
---|---|---|---|---|
SUPPORTED_POWER_STATS_QUERY |
1 | 0xC0 |
1 | 1 बाइट की वैल्यू, जिससे पता चलता है कि पावर के आंकड़े वाली क्वेरी के लिए सपोर्ट किया जा सकता है. मान:
|
SUPPORTED_AOA_RESULT_REQ_ANTENNA_INTERLEAVING |
1 | 0xE3 |
1 | 1 बाइट की वैल्यू, जिससे पता चलता है कि ऐंटीना के इंटरलीविंग सिस्टम के लिए सहायता उपलब्ध है सुविधा. मान:
|
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 बाइट की वैल्यू, इससे पता चलता है कि आरएसएसआई रिपोर्टिंग की सुविधा काम करती है. मान:
|
SUPPORTED_DIAGNOSTICS |
1 | 0xE7 |
2 | 1 बाइट की वैल्यू, जिससे पता चलता है कि डाइग्नोस्टिक्स रिपोर्टिंग की सुविधा काम करती है. मान:
|
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 बाइट का बिटमास्क. हर
बिटमास्क में मान:
|
स्थिति कोड
वेंडर स्पेस में ये स्टेटस कोड होते हैं. इन्हें इस मुद्रा में लौटाया जाता है:
यूसीआई सबसिस्टम (यूडब्ल्यूबीएस) से मिले यूसीआई रिस्पॉन्स (जैसे, 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 को के बारे में जानकारी देनी होगी. |