توضیحات
از 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
مراجعه کنید که رویدادهایی برای آنها ارائه می شود.