2011-08-25 18 views
5

यूएसबी डिवाइस के निर्माता (या उत्पाद का नाम, मॉडल नाम, डिवाइस का नाम, लेबल, या सीरियल नंबर) का प्रतिनिधित्व करने वाले स्ट्रिंग डिस्क्रिप्टर की अधिकतम लंबाई का विवरण देने वाला एक आधिकारिक दस्तावेज मौजूद है?यूएसबी डिवाइस के निर्माता की स्ट्रिंग कितनी देर तक है?

+0

में हो सकता है कि यह आपकी मदद कर सकता है: http://www.beyondlogic.org/usbnutshell/usb5.shtml#DeviceDescriptors – Quasdunk

+0

मैं यूएसबी वर्णनकर्ता का पता है, लेकिन जब मैं libusb द्वारा usb_get_string_simple() को कॉल करता हूं, उदाहरण के लिए, यह स्ट्रिंग (iProduct, iSerialNumber, आदि ...) प्राप्त करता है और पढ़ने के आकार को वापस कर देता है। लेकिन अधिकतम आकार नहीं है जो इसे पढ़ सकता है। – Gianfranco

+0

मुझे अधिकतम लंबाई के बारे में कोई दस्तावेज नहीं मिला है, लेकिन चूंकि मैं libmtp-1.1.0 लाइब्रेरी का उपयोग करता हूं, मुझे PTP_MAXSTRLEN = 255 मिला। – Gianfranco

उत्तर

14

कोई भी यूएसबी डिस्क्रिप्टर 255 बाइट तक सीमित है क्योंकि अग्रणी बीएलएंडई फ़ील्ड एक बाइट चौड़ा है। दूसरा बाइट bdescriptorType द्वारा लिया जाता है। क्योंकि हर कोई * यूटीएफ -16-ली स्ट्रिंग एन्कोडिंग का उपयोग करता है, जो अधिकतम 126 वर्ण छोड़ देता है।

*) USB द्वारा अनिवार्य 2.0 यूनिकोड ईसीएन 2005 http://en.wikipedia.org/wiki/USB

+0

256-बाइट सीमा के बारे में सोचने के लिए धन्यवाद; तुमने मुझे बहुत काम बचाया। –