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