شرح
از chrome.usb
API برای تعامل با دستگاههای USB متصل استفاده کنید. این API دسترسی به عملیات USB را از درون زمینه یک برنامه فراهم می کند. با استفاده از این API، برنامه ها می توانند به عنوان درایور برای دستگاه های سخت افزاری عمل کنند. خطاهای ایجاد شده توسط این API با تنظیم runtime.lastError
و اجرای فراخوان معمولی تابع گزارش می شود. در این مورد، پارامترهای عادی تماس برگشتی تعریف نشده خواهند بود.
مجوزها
usb
انواع
ConfigDescriptor
خواص
- فعال
بولی
Chrome 47+آیا این پیکربندی فعال است؟
- configurationValue
عدد
شماره پیکربندی
- شرح
رشته اختیاری
شرح پیکربندی
- اضافی_داده
ArrayBuffer
داده های توصیفگر اضافی مرتبط با این پیکربندی.
- رابط ها
توصیفگر رابط []
رابط های موجود
- maxPower
عدد
حداکثر توان مورد نیاز این دستگاه بر حسب میلی آمپر (mA).
- بیداری از راه دور
بولی
دستگاه از بیدار شدن از راه دور پشتیبانی می کند.
- خود نیرومند
بولی
دستگاه به صورت خودکار تامین می شود.
ConnectionHandle
خواص
- رسیدگی
عدد
یک دسته مات که نشان دهنده این اتصال به دستگاه USB و همه رابط های ادعا شده مرتبط و انتقالات معلق است. هر بار که دستگاه باز می شود یک دسته جدید ایجاد می شود. دستگیره اتصال با
Device.device
متفاوت است. - شناسه محصول
عدد
شناسه محصول
- شناسه فروشنده
عدد
شناسه فروشنده دستگاه
ControlTransferInfo
خواص
- داده ها
ArrayBuffer اختیاری است
داده برای انتقال (فقط برای انتقال خروجی مورد نیاز است).
- جهت
جهت انتقال (
"in"
یا"out"
). - فهرست مطالب
عدد
فیلد
wIndex
را ببینید. Ibid . - طول
شماره اختیاری
حداکثر تعداد بایت برای دریافت (فقط برای انتقال ورودی مورد نیاز است).
- گیرنده
هدف انتقال هدف ارائه شده توسط
index
باید در صورت"interface"
یا"endpoint"
ادعا شود. - درخواست
عدد
فیلد
bRequest
، نسخه 1.1 § 9.3 مشخصات اتوبوس سریال جهانی را ببینید. - نوع درخواست
نوع درخواست
- تایم اوت
شماره اختیاری
Chrome 43+درخواست مهلت زمانی (در میلی ثانیه). مقدار پیشفرض
0
نشاندهنده عدم وقفه زمانی است. - ارزش
عدد
فیلد
wValue
، به Ibid مراجعه کنید.
Device
خواص
- دستگاه
عدد
یک شناسه مات برای دستگاه USB. تا زمانی که دستگاه از برق جدا نشود، بدون تغییر باقی می ماند.
- نام سازنده
رشته
Chrome 46+در صورت وجود، رشته iManufacturer از دستگاه خوانده می شود.
- شناسه محصول
عدد
شناسه محصول
- نام محصول
رشته
Chrome 46+در صورت وجود، رشته iProduct از دستگاه خوانده می شود.
- شماره سریال
رشته
Chrome 46+در صورت وجود، رشته iSerialNumber از دستگاه خوانده می شود.
- شناسه فروشنده
عدد
شناسه فروشنده دستگاه
- نسخه
عدد
Chrome 51+نسخه دستگاه (فیلد bcdDevice).
DeviceFilter
خواص
- کلاس رابط
شماره اختیاری
کلاس رابط USB، با هر رابط روی دستگاه مطابقت دارد.
- پروتکل رابط
شماره اختیاری
پروتکل رابط USB، فقط در صورتی بررسی می شود که زیر کلاس رابط مطابقت داشته باشد.
- interfaceSubclass
شماره اختیاری
زیر کلاس رابط USB، فقط در صورتی بررسی می شود که کلاس رابط مطابقت داشته باشد.
- شناسه محصول
شماره اختیاری
شناسه محصول دستگاه، فقط در صورتی بررسی میشود که شناسه فروشنده مطابقت داشته باشد.
- شناسه فروشنده
شماره اختیاری
شناسه فروشنده دستگاه
DevicePromptOptions
خواص
- فیلترها
DeviceFilter [] اختیاری است
لیست دستگاه های ارائه شده به کاربر را فیلتر کنید. اگر چندین فیلتر ارائه شده باشد، دستگاههای مطابق با هر فیلتری نمایش داده میشوند.
- چندگانه
بولی اختیاری
به کاربر اجازه می دهد چندین دستگاه را انتخاب کند.
Direction
Direction، Recipient، RequestType، و TransferType همگی به همنام های خود در مشخصات USB نگاشت می شوند.
Enum
"که در" "بیرون"
EndpointDescriptor
خواص
- نشانی
عدد
آدرس نقطه پایانی
- جهت
جهت انتقال
- اضافی_داده
ArrayBuffer
داده های توصیفگر اضافی مرتبط با این نقطه پایانی.
- maximumPacketSize
عدد
حداکثر اندازه بسته
- فاصله رای گیری
شماره اختیاری
فاصله نظرسنجی (فقط وقفه و هم زمان).
- هماهنگ سازی
SynchronizationType اختیاری است
حالت همگام سازی انتقال (فقط هم زمان).
- نوع
نوع انتقال
- استفاده
UsageType اختیاری است
راهنمایی استفاده از نقطه پایانی
EnumerateDevicesAndRequestAccessOptions
خواص
- شناسه رابط
شماره اختیاری
شناسه رابط برای درخواست دسترسی. فقط در سیستم عامل Chrome موجود است. روی پلتفرم های دیگر تاثیری ندارد.
- شناسه محصول
عدد
شناسه محصول
- شناسه فروشنده
عدد
شناسه فروشنده دستگاه
EnumerateDevicesOptions
خواص
- فیلترها
DeviceFilter [] اختیاری است
دستگاهی که با هر فیلتری مطابقت داشته باشد بازگردانده می شود. یک لیست فیلتر خالی، همه دستگاههایی را که برنامه برای آنها مجوز دارد، برمیگرداند.
- شناسه محصول
شماره اختیاری
منسوخمعادل تنظیم
DeviceFilter.productId
. - شناسه فروشنده
شماره اختیاری
منسوخمعادل تنظیم
DeviceFilter.vendorId
.
GenericTransferInfo
خواص
- داده ها
ArrayBuffer اختیاری است
داده برای انتقال (فقط برای انتقال خروجی مورد نیاز است).
- جهت
جهت انتقال (
"in"
یا"out"
). - نقطه پایانی
عدد
آدرس نقطه پایانی هدف رابط حاوی این نقطه پایانی باید ادعا شود.
- طول
شماره اختیاری
حداکثر تعداد بایت برای دریافت (فقط برای انتقال ورودی مورد نیاز است).
- تایم اوت
شماره اختیاری
Chrome 43+درخواست مهلت زمانی (در میلی ثانیه). مقدار پیشفرض
0
نشاندهنده عدم وقفه زمانی است.
InterfaceDescriptor
خواص
- تنظیمات جایگزین
عدد
شماره تنظیم جایگزین رابط (به طور پیش فرض
0
است - شرح
رشته اختیاری
توضیحات رابط.
- نقاط پایانی
نقاط پایانی موجود
- اضافی_داده
ArrayBuffer
داده های توصیفگر اضافی مرتبط با این رابط.
- کلاس رابط
عدد
کلاس رابط USB.
- شماره رابط
عدد
شماره رابط.
- پروتکل رابط
عدد
پروتکل رابط USB
- interfaceSubclass
عدد
زیر کلاس رابط USB.
IsochronousTransferInfo
خواص
- طول بسته
عدد
طول هر یک از بسته ها در این انتقال.
- بسته ها
عدد
تعداد کل بسته ها در این انتقال.
- انتقال اطلاعات
پارامترهای انتقال طول انتقال یا بافر داده مشخص شده در این بلوک پارامتر در امتداد مرزهای
packetLength
تقسیم می شود تا بسته های جداگانه انتقال را تشکیل دهند.
Recipient
Enum
"دستگاه" "رابط" "نقطه پایانی" "دیگر"
RequestType
Enum
"استاندارد" "کلاس" "فروشنده" "رزرو شده"
SynchronizationType
برای حالت های وقفه و هم زمان، SynchronizationType و UsageType به همنام های خود در مشخصات USB نگاشت می شوند.
Enum
"نامتقارن" "انطباقی" "همگام"
TransferResultInfo
خواص
- داده ها
ArrayBuffer اختیاری است
داده هایی که توسط یک انتقال ورودی بازگردانده می شوند. برای انتقال خروجی
undefined
. - نتیجه کد
شماره اختیاری
مقدار
0
نشان می دهد که انتقال موفقیت آمیز بوده است. مقادیر دیگر نشان دهنده شکست هستند.
TransferType
Enum
"کنترل" "وقفه" "هم زمان" "فله"
UsageType
Enum
"داده ها" "بازخورد" "بازخورد صریح" "تناوبی" "اطلاع"
مواد و روش ها
bulkTransfer()
chrome.usb.bulkTransfer(
handle: ConnectionHandle,
transferInfo: GenericTransferInfo,
callback?: function,
)
انتقال انبوه را روی دستگاه مشخص شده انجام می دهد.
مولفه های
- رسیدگی
اتصال باز به دستگاه
- انتقال اطلاعات
پارامترهای انتقال
- پاسخ به تماس
عملکرد اختیاری
پارامتر
callback
به نظر می رسد:(info: TransferResultInfo) => void
- اطلاعات
برمی گرداند
Promise< TransferResultInfo >
Chrome 116+Promises فقط برای Manifest V3 و نسخههای جدیدتر پشتیبانی میشود، پلتفرمهای دیگر باید از callback استفاده کنند.
claimInterface()
chrome.usb.claimInterface(
handle: ConnectionHandle,
interfaceNumber: number,
callback?: function,
)
ادعای رابط در یک دستگاه USB. قبل از اینکه داده ها به یک رابط یا نقاط پایانی مرتبط منتقل شوند، رابط باید ادعا شود. فقط یک دستگیره اتصال می تواند در هر زمان معین ادعای یک رابط را داشته باشد. اگر رابط قبلاً ادعا شده باشد، این تماس ناموفق خواهد بود.
هنگامی که دیگر نیازی به اینترفیس نیست، releaseInterface
باید فراخوانی شود.
مولفه های
- رسیدگی
اتصال باز به دستگاه
- شماره رابط
عدد
رابط مورد ادعا
- پاسخ به تماس
عملکرد اختیاری
پارامتر
callback
به نظر می رسد:() => void
برمی گرداند
قول<باطل>
Chrome 116+Promises فقط برای Manifest V3 و نسخههای جدیدتر پشتیبانی میشود، پلتفرمهای دیگر باید از callback استفاده کنند.
closeDevice()
chrome.usb.closeDevice(
handle: ConnectionHandle,
callback?: function,
)
دستگیره اتصال را می بندد. فراخوانی عملیات روی دسته پس از بسته شدن، عملیات ایمن است اما باعث می شود هیچ اقدامی انجام نشود.
مولفه های
- رسیدگی
ConnectionHandle
برای بسته شدن. - پاسخ به تماس
عملکرد اختیاری
پارامتر
callback
به نظر می رسد:() => void
برمی گرداند
قول<باطل>
Chrome 116+Promises فقط برای Manifest V3 و نسخههای جدیدتر پشتیبانی میشود، پلتفرمهای دیگر باید از callback استفاده کنند.
controlTransfer()
chrome.usb.controlTransfer(
handle: ConnectionHandle,
transferInfo: ControlTransferInfo,
callback?: function,
)
انتقال کنترل را روی دستگاه مشخص شده انجام می دهد.
انتقال کنترل به دستگاه، یک رابط یا یک نقطه پایانی اشاره دارد. انتقال به یک رابط یا نقطه پایانی نیاز به ادعای رابط دارد.
مولفه های
- رسیدگی
اتصال باز به دستگاه
- انتقال اطلاعات
- پاسخ به تماس
عملکرد اختیاری
پارامتر
callback
به نظر می رسد:(info: TransferResultInfo) => void
- اطلاعات
برمی گرداند
Promise< TransferResultInfo >
Chrome 116+Promises فقط برای Manifest V3 و نسخههای جدیدتر پشتیبانی میشود، پلتفرمهای دیگر باید از callback استفاده کنند.
findDevices()
chrome.usb.findDevices(
options: EnumerateDevicesAndRequestAccessOptions,
callback?: function,
)
دستگاههای USB مشخصشده توسط فروشنده، محصول و شناسه رابط (اختیاری) را پیدا میکند و اگر مجوزها اجازه میدهد، آنها را برای استفاده باز میکند.
اگر درخواست دسترسی رد شود یا دستگاه باز نشود، دستگیره اتصال ایجاد یا برگردانده نخواهد شد.
فراخوانی این روش معادل فراخوانی getDevices
و سپس openDevice
برای هر دستگاه است.
مولفه های
ویژگی هایی برای جستجو در دستگاه های هدف.
- پاسخ به تماس
عملکرد اختیاری
پارامتر
callback
به نظر می رسد:(handles: ConnectionHandle[]) => void
- دسته ها
برمی گرداند
Promise< ConnectionHandle []>
Chrome 116+Promises فقط برای Manifest V3 و نسخههای جدیدتر پشتیبانی میشود، پلتفرمهای دیگر باید از callback استفاده کنند.
getConfiguration()
chrome.usb.getConfiguration(
handle: ConnectionHandle,
callback?: function,
)
توصیف کننده پیکربندی پیکربندی انتخاب شده فعلی را دریافت می کند.
مولفه های
- رسیدگی
اتصال باز به دستگاه
- پاسخ به تماس
عملکرد اختیاری
پارامتر
callback
به نظر می رسد:(config: ConfigDescriptor) => void
- پیکربندی
برمی گرداند
Promise< ConfigDescriptor >
Chrome 116+Promises فقط برای Manifest V3 و نسخههای جدیدتر پشتیبانی میشود، پلتفرمهای دیگر باید از callback استفاده کنند.
getConfigurations()
chrome.usb.getConfigurations(
device: Device,
callback?: function,
)
مجموعه کامل توصیفگرهای پیکربندی دستگاه را برمیگرداند.
مولفه های
- دستگاه
Device
برای واکشی توصیفگرها از. - پاسخ به تماس
عملکرد اختیاری
پارامتر
callback
به نظر می رسد:(configs: ConfigDescriptor[]) => void
- تنظیمات
برمی گرداند
Promise< ConfigDescriptor []>
Chrome 116+Promises فقط برای Manifest V3 و نسخههای جدیدتر پشتیبانی میشود، پلتفرمهای دیگر باید از callback استفاده کنند.
getDevices()
chrome.usb.getDevices(
options: EnumerateDevicesOptions,
callback?: function,
)
دستگاه های USB متصل را شمارش می کند.
مولفه های
برمی گرداند
Promise< دستگاه []>
Chrome 116+Promises فقط برای Manifest V3 و نسخههای جدیدتر پشتیبانی میشود، پلتفرمهای دیگر باید از callback استفاده کنند.
getUserSelectedDevices()
chrome.usb.getUserSelectedDevices(
options: DevicePromptOptions,
callback?: function,
)
انتخابگر دستگاه را به کاربر ارائه می دهد و Device
انتخاب شده را برمی گرداند. اگر کاربر لغو شود، دستگاههای جمعکننده خالی خواهند بود. برای نمایش دیالوگ به یک اشاره کاربر نیاز است. بدون اشاره کاربر، تماس برگشتی به گونهای اجرا میشود که گویی کاربر لغو شده است.
مولفه های
برمی گرداند
Promise< دستگاه []>
Chrome 116+Promises فقط برای Manifest V3 و نسخههای جدیدتر پشتیبانی میشود، پلتفرمهای دیگر باید از callback استفاده کنند.
interruptTransfer()
chrome.usb.interruptTransfer(
handle: ConnectionHandle,
transferInfo: GenericTransferInfo,
callback?: function,
)
انتقال وقفه را در دستگاه مشخص شده انجام می دهد.
مولفه های
- رسیدگی
اتصال باز به دستگاه
- انتقال اطلاعات
پارامترهای انتقال
- پاسخ به تماس
عملکرد اختیاری
پارامتر
callback
به نظر می رسد:(info: TransferResultInfo) => void
- اطلاعات
برمی گرداند
Promise< TransferResultInfo >
Chrome 116+Promises فقط برای Manifest V3 و نسخههای جدیدتر پشتیبانی میشود، پلتفرمهای دیگر باید از callback استفاده کنند.
isochronousTransfer()
chrome.usb.isochronousTransfer(
handle: ConnectionHandle,
transferInfo: IsochronousTransferInfo,
callback?: function,
)
انتقال هم زمان را بر روی دستگاه خاص انجام می دهد.
مولفه های
- رسیدگی
اتصال باز به دستگاه
- انتقال اطلاعات
- پاسخ به تماس
عملکرد اختیاری
پارامتر
callback
به نظر می رسد:(info: TransferResultInfo) => void
- اطلاعات
برمی گرداند
Promise< TransferResultInfo >
Chrome 116+Promises فقط برای Manifest V3 و نسخههای جدیدتر پشتیبانی میشود، پلتفرمهای دیگر باید از callback استفاده کنند.
listInterfaces()
chrome.usb.listInterfaces(
handle: ConnectionHandle,
callback?: function,
)
تمام رابط های موجود در یک دستگاه USB را فهرست می کند.
مولفه های
- رسیدگی
اتصال باز به دستگاه
- پاسخ به تماس
عملکرد اختیاری
پارامتر
callback
به نظر می رسد:(descriptors: InterfaceDescriptor[]) => void
- توصیف کننده ها
توصیفگر رابط []
برمی گرداند
Promise< InterfaceDescriptor []>
Chrome 116+Promises فقط برای Manifest V3 و نسخههای جدیدتر پشتیبانی میشود، پلتفرمهای دیگر باید از callback استفاده کنند.
openDevice()
chrome.usb.openDevice(
device: Device,
callback?: function,
)
یک دستگاه USB بازگردانده شده توسط getDevices
را باز می کند.
مولفه های
- دستگاه
Device
برای باز کردن. - پاسخ به تماس
عملکرد اختیاری
پارامتر
callback
به نظر می رسد:(handle: ConnectionHandle) => void
- رسیدگی
برمی گرداند
Promise< ConnectionHandle >
Chrome 116+Promises فقط برای Manifest V3 و نسخههای جدیدتر پشتیبانی میشود، پلتفرمهای دیگر باید از callback استفاده کنند.
releaseInterface()
chrome.usb.releaseInterface(
handle: ConnectionHandle,
interfaceNumber: number,
callback?: function,
)
یک رابط ادعا شده را منتشر می کند.
مولفه های
- رسیدگی
اتصال باز به دستگاه
- شماره رابط
عدد
رابطی که قرار است منتشر شود.
- پاسخ به تماس
عملکرد اختیاری
پارامتر
callback
به نظر می رسد:() => void
برمی گرداند
قول<باطل>
Chrome 116+Promises فقط برای Manifest V3 و نسخههای جدیدتر پشتیبانی میشود، پلتفرمهای دیگر باید از callback استفاده کنند.
requestAccess()
chrome.usb.requestAccess(
device: Device,
interfaceId: number,
callback?: function,
)
این عملکرد مختص سیستم عامل کروم بود و فراخوانی آن در پلتفرم های دیگر با شکست مواجه می شد. این عملیات اکنون به طور ضمنی به عنوان بخشی از openDevice
انجام میشود و این تابع در تمام پلتفرمها به true
برمیگردد.
اگر رابط داده شده روی دستگاه ادعا نشده باشد، از کارگزار مجوز به دستگاهی درخواست میکند که توسط سیستم عامل Chrome ادعا شده است.
مولفه های
- دستگاه
Device
که باید به آن دسترسی داشته باشید. - شناسه رابط
عدد
رابط خاص درخواست شده
- پاسخ به تماس
عملکرد اختیاری
پارامتر
callback
به نظر می رسد:(success: boolean) => void
- موفقیت
بولی
برمی گرداند
وعده<boolean>
Chrome 116+Promises فقط برای Manifest V3 و نسخههای جدیدتر پشتیبانی میشود، پلتفرمهای دیگر باید از callback استفاده کنند.
resetDevice()
chrome.usb.resetDevice(
handle: ConnectionHandle,
callback?: function,
)
سعی می کند دستگاه USB را بازنشانی کند. اگر بازنشانی انجام نشود، دستگیره اتصال داده شده بسته میشود و به نظر میرسد که دستگاه USB قطع شده و دوباره وصل شده است. در این مورد getDevices
یا findDevices
باید دوباره فراخوانی شود تا دستگاه را بدست آورد.
مولفه های
- رسیدگی
یک دسته اتصال برای بازنشانی.
- پاسخ به تماس
عملکرد اختیاری
پارامتر
callback
به نظر می رسد:(success: boolean) => void
- موفقیت
بولی
برمی گرداند
وعده<boolean>
Chrome 116+Promises فقط برای Manifest V3 و نسخههای جدیدتر پشتیبانی میشود، پلتفرمهای دیگر باید از callback استفاده کنند.
setConfiguration()
chrome.usb.setConfiguration(
handle: ConnectionHandle,
configurationValue: number,
callback?: function,
)
پیکربندی دستگاه را انتخاب کنید.
این عملکرد با انتخاب یکی از پیکربندی های موجود دستگاه، به طور موثر دستگاه را بازنشانی می کند. فقط مقادیر پیکربندی بیشتر از 0
معتبر هستند، اما برخی از دستگاههای باگ دارای پیکربندی 0
هستند و بنابراین این مقدار مجاز است.
مولفه های
- رسیدگی
اتصال باز به دستگاه
- configurationValue
عدد
- پاسخ به تماس
عملکرد اختیاری
پارامتر
callback
به نظر می رسد:() => void
برمی گرداند
قول<باطل>
Chrome 116+Promises فقط برای Manifest V3 و نسخههای جدیدتر پشتیبانی میشود، پلتفرمهای دیگر باید از callback استفاده کنند.
setInterfaceAlternateSetting()
chrome.usb.setInterfaceAlternateSetting(
handle: ConnectionHandle,
interfaceNumber: number,
alternateSetting: number,
callback?: function,
)
یک تنظیم جایگزین را در رابطی که قبلاً ادعا شده است انتخاب می کند.
مولفه های
- رسیدگی
یک اتصال باز به دستگاهی که در آن این رابط ادعا شده است.
- شماره رابط
عدد
رابط برای پیکربندی.
- تنظیمات جایگزین
عدد
تنظیم جایگزین برای پیکربندی.
- پاسخ به تماس
عملکرد اختیاری
پارامتر
callback
به نظر می رسد:() => void
برمی گرداند
قول<باطل>
Chrome 116+Promises فقط برای Manifest V3 و نسخههای جدیدتر پشتیبانی میشود، پلتفرمهای دیگر باید از callback استفاده کنند.
مناسبت ها
onDeviceAdded
chrome.usb.onDeviceAdded.addListener(
callback: function,
)
هنگامی که دستگاهی به سیستم اضافه می شود، رویداد ایجاد می شود. رویدادها فقط برای برنامهها و برنامههای افزودنی پخش میشوند که مجوز دسترسی به دستگاه را دارند. ممکن است در زمان نصب، زمانی که کاربر یک مجوز اختیاری را پذیرفت (به permissions.request
مراجعه کنید)، یا از طریق getUserSelectedDevices
مجوز داده شده باشد.
onDeviceRemoved
chrome.usb.onDeviceRemoved.addListener(
callback: function,
)
رویدادی که هنگام حذف یک دستگاه از سیستم ایجاد می شود. به onDeviceAdded
مراجعه کنید که رویدادهایی برای آنها ارائه می شود.