chrome.usb

شرح

از 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,
)

انتقال انبوه را روی دستگاه مشخص شده انجام می دهد.

مولفه های

برمی گرداند

  • 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,
)

انتقال کنترل را روی دستگاه مشخص شده انجام می دهد.

انتقال کنترل به دستگاه، یک رابط یا یک نقطه پایانی اشاره دارد. انتقال به یک رابط یا نقطه پایانی نیاز به ادعای رابط دارد.

مولفه های

برمی گرداند

  • Promise< TransferResultInfo >

    Chrome 116+

    Promises فقط برای Manifest V3 و نسخه‌های جدیدتر پشتیبانی می‌شود، پلتفرم‌های دیگر باید از callback استفاده کنند.

findDevices()

وعده
chrome.usb.findDevices(
  options: EnumerateDevicesAndRequestAccessOptions,
  callback?: function,
)

دستگاه‌های USB مشخص‌شده توسط فروشنده، محصول و شناسه رابط (اختیاری) را پیدا می‌کند و اگر مجوزها اجازه می‌دهد، آنها را برای استفاده باز می‌کند.

اگر درخواست دسترسی رد شود یا دستگاه باز نشود، دستگیره اتصال ایجاد یا برگردانده نخواهد شد.

فراخوانی این روش معادل فراخوانی getDevices و سپس openDevice برای هر دستگاه است.

مولفه های

برمی گرداند

  • Promise< ConnectionHandle []>

    Chrome 116+

    Promises فقط برای Manifest V3 و نسخه‌های جدیدتر پشتیبانی می‌شود، پلتفرم‌های دیگر باید از callback استفاده کنند.

getConfiguration()

وعده
chrome.usb.getConfiguration(
  handle: ConnectionHandle,
  callback?: function,
)

توصیف کننده پیکربندی پیکربندی انتخاب شده فعلی را دریافت می کند.

مولفه های

برمی گرداند

  • Promise< ConfigDescriptor >

    Chrome 116+

    Promises فقط برای Manifest V3 و نسخه‌های جدیدتر پشتیبانی می‌شود، پلتفرم‌های دیگر باید از callback استفاده کنند.

getConfigurations()

Promise Chrome 47+
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 متصل را شمارش می کند.

مولفه های

  • گزینه ها

    ویژگی هایی برای جستجو در دستگاه های هدف.

  • پاسخ به تماس

    عملکرد اختیاری

    پارامتر callback به نظر می رسد:

    (devices: Device[])=>void

برمی گرداند

  • Promise< دستگاه []>

    Chrome 116+

    Promises فقط برای Manifest V3 و نسخه‌های جدیدتر پشتیبانی می‌شود، پلتفرم‌های دیگر باید از callback استفاده کنند.

getUserSelectedDevices()

وعده
chrome.usb.getUserSelectedDevices(
  options: DevicePromptOptions,
  callback?: function,
)

انتخابگر دستگاه را به کاربر ارائه می دهد و Device انتخاب شده را برمی گرداند. اگر کاربر لغو شود، دستگاه‌های جمع‌کننده خالی خواهند بود. برای نمایش دیالوگ به یک اشاره کاربر نیاز است. بدون اشاره کاربر، تماس برگشتی به گونه‌ای اجرا می‌شود که گویی کاربر لغو شده است.

مولفه های

  • گزینه ها

    پیکربندی کادر گفتگوی انتخابگر دستگاه.

  • پاسخ به تماس

    عملکرد اختیاری

    پارامتر callback به نظر می رسد:

    (devices: Device[])=>void

برمی گرداند

  • Promise< دستگاه []>

    Chrome 116+

    Promises فقط برای Manifest V3 و نسخه‌های جدیدتر پشتیبانی می‌شود، پلتفرم‌های دیگر باید از callback استفاده کنند.

interruptTransfer()

وعده
chrome.usb.interruptTransfer(
  handle: ConnectionHandle,
  transferInfo: GenericTransferInfo,
  callback?: function,
)

انتقال وقفه را در دستگاه مشخص شده انجام می دهد.

مولفه های

برمی گرداند

  • Promise< TransferResultInfo >

    Chrome 116+

    Promises فقط برای Manifest V3 و نسخه‌های جدیدتر پشتیبانی می‌شود، پلتفرم‌های دیگر باید از callback استفاده کنند.

isochronousTransfer()

وعده
chrome.usb.isochronousTransfer(
  handle: ConnectionHandle,
  transferInfo: IsochronousTransferInfo,
  callback?: function,
)

انتقال هم زمان را بر روی دستگاه خاص انجام می دهد.

مولفه های

برمی گرداند

  • Promise< TransferResultInfo >

    Chrome 116+

    Promises فقط برای Manifest V3 و نسخه‌های جدیدتر پشتیبانی می‌شود، پلتفرم‌های دیگر باید از callback استفاده کنند.

listInterfaces()

وعده
chrome.usb.listInterfaces(
  handle: ConnectionHandle,
  callback?: function,
)

تمام رابط های موجود در یک دستگاه USB را فهرست می کند.

مولفه های

برمی گرداند

  • Promise< InterfaceDescriptor []>

    Chrome 116+

    Promises فقط برای Manifest V3 و نسخه‌های جدیدتر پشتیبانی می‌شود، پلتفرم‌های دیگر باید از callback استفاده کنند.

openDevice()

وعده
chrome.usb.openDevice(
  device: Device,
  callback?: function,
)

یک دستگاه USB بازگردانده شده توسط getDevices را باز می کند.

مولفه های

برمی گرداند

  • 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 مجوز داده شده باشد.

مولفه های

  • پاسخ به تماس

    تابع

    پارامتر callback به نظر می رسد:

    (device: Device)=>void

onDeviceRemoved

chrome.usb.onDeviceRemoved.addListener(
  callback: function,
)

رویدادی که هنگام حذف یک دستگاه از سیستم ایجاد می شود. به onDeviceAdded مراجعه کنید که رویدادهایی برای آنها ارائه می شود.

مولفه های

  • پاسخ به تماس

    تابع

    پارامتر callback به نظر می رسد:

    (device: Device)=>void