किसी डिवाइस से कनेक्ट करने के लिए WebUSB में हमें एक configuration और interface का चयन करना होगा।
वैकल्पिक इंटरफ़ेस का उपयोग करने का विकल्प भी है।

मैं कैसे जान सकता हूँ कि किनका उपयोग करना है?
क्या मुझे इसे पहले से जानने की आवश्यकता है या क्या मैं प्रत्येक डिवाइस का पता लगाने की कोशिश कर सकता हूं?

if (!device.configuration)    await device.selectConfiguration(0);

await device.claimInterface(device.configuration.interfaces[0].interfaceNumber)

मान लें कि मेरे पास थर्मल प्रिंटर और कैमरे हो सकते हैं, उदाहरण के लिए, क्या मैं प्रत्येक के लिए पता लगा पाऊंगा?

साथ ही, मैं कैसे जांच सकता हूं कि किसी डिवाइस पर पहले से ही दावा किया जा चुका है या नहीं? क्या मुझे हर इंटरफ़ेस की जाँच करनी है?

0
user5507535 16 अगस्त 2021, 18:26

1 उत्तर

सबसे बढ़िया उत्तर

मैं कैसे जान सकता हूं कि किसका उपयोग करना है? क्या मुझे इसे पहले से जानने की आवश्यकता है या क्या मैं प्रत्येक डिवाइस का पता लगाने की कोशिश कर सकता हूं?

जैसा https://web.dev/devices-introduction/#:~:text=human-readable%20protocol.-,with,-WebUSB%2C%20without%20clear कहते हैं, इस डिवाइस के लिए स्पष्ट दस्तावेज़ीकरण के बिना और यह डिवाइस किस यूएसबी कमांड का समर्थन करता है, यह कठिन है लेकिन फिर भी भाग्यशाली अनुमान के साथ संभव है।

सुज़ हिंटन से वेबयूएसबी और इसकी रोमांचक क्षमता को एक्सप्लोर करना देखें। आप कच्चे USB ट्रैफ़िक को कैप्चर करके और USB डिस्क्रिप्टर का निरीक्षण करके इस डिवाइस को रिवर्स-इंजीनियर भी कर सकते हैं। क्रोमियम-आधारित ब्राउज़र में बाहरी उपकरण जैसे Wireshark और अंतर्निर्मित ब्राउज़र टूल जैसे आंतरिक पृष्ठ about://usb-internals

मान लें कि मेरे पास थर्मल प्रिंटर और कैमरे हो सकते हैं, उदाहरण के लिए, क्या मैं प्रत्येक के लिए पता लगा पाऊंगा?

कैमरा ब्लॉक होने की संभावना है। about://usb-internals/ में अपने डिवाइस का निरीक्षण करने से आपको पता चल जाएगा कि आपको दिखाई देना चाहिए। ऐसा होने पर "WebUSB द्वारा अवरोधित"

साथ ही, मैं कैसे जांच सकता हूं कि किसी डिवाइस पर पहले से ही दावा किया जा चुका है या नहीं? क्या मुझे हर इंटरफ़ेस की जाँच करनी है?

सामान्य तौर पर, मैं https://web.dev/usb/ और https://www.beyondlogic.org/usbnutshell/usb1.shtml क्रमशः WebUSB और USB के साथ प्रारंभ करने के लिए।

आपके विशिष्ट प्रश्नों के लिए, device.open() और device.claimInterface() वादे विफल हो जाएंगे यदि उन कार्यों को निष्पादित नहीं किया जा सकता है।

2
François Beaufort 17 अगस्त 2021, 11:57