chrome.usb

Deskripsi

Gunakan chrome.usb API untuk berinteraksi dengan perangkat USB yang terhubung. API ini menyediakan akses ke operasi USB dari dalam konteks aplikasi. Dengan menggunakan API ini, aplikasi dapat berfungsi sebagai driver untuk perangkat hardware. Error yang dihasilkan oleh API ini dilaporkan dengan menetapkan runtime.lastError dan menjalankan callback reguler fungsi. Dalam kasus ini, parameter reguler callback tidak akan ditentukan.

Izin

usb

Jenis

ConfigDescriptor

Properti

  • aktif

    boolean

    Chrome 47 dan yang lebih baru

    Apakah ini konfigurasi aktif?

  • configurationValue

    angka

    Nomor konfigurasi.

  • deskripsi

    string opsional

    Deskripsi konfigurasi.

  • extra_data

    ArrayBuffer

    Data deskriptor tambahan yang terkait dengan konfigurasi ini.

  • antarmuka

    Antarmuka yang tersedia.

  • maxPower

    angka

    Daya maksimum yang dibutuhkan perangkat ini dalam miliamper (mA).

  • remoteWakeup

    boolean

    Perangkat mendukung bangun dari jarak jauh.

  • selfPowered

    boolean

    Perangkat ini menggunakan daya sendiri.

ConnectionHandle

Properti

  • handle

    angka

    Gagang buram yang mewakili koneksi ini ke perangkat USB dan semua antarmuka terkait yang diklaim dan transfer yang tertunda. Nama sebutan channel baru dibuat setiap kali perangkat dibuka. Tuas koneksi berbeda dengan Device.device.

  • productId

    angka

    ID produk.

  • vendorId

    angka

    ID vendor perangkat.

ControlTransferInfo

Properti

  • data

    ArrayBuffer opsional

    Data yang akan dikirim (hanya diperlukan oleh transfer output).

  • direction

    Arah transfer ("in" atau "out").

  • indeks

    angka

    Kolom wIndex, lihat Ibid.

  • panjang

    angka opsional

    Jumlah maksimum byte yang akan diterima (hanya diperlukan oleh transfer input).

  • penerima

    Target transfer. Target yang diberikan oleh index harus diklaim jika "interface" atau "endpoint".

  • minta

    angka

    Kolom bRequest, lihat Universal Serial Bus Specification Revisi 1.1 § 9.3.

  • requestType

    Jenis permintaan.

  • timeout

    angka opsional

    Chrome 43 dan yang lebih baru

    Waktu tunggu permintaan (dalam milidetik). Nilai default 0 menunjukkan tidak ada waktu tunggu.

  • nilai

    angka

    Kolom wValue, lihat Ibid.

Device

Properti

  • perangkat

    angka

    ID buram untuk perangkat USB. Label tetap tidak berubah hingga perangkat dicabut.

  • manufacturerName

    string

    Chrome 46 dan yang lebih baru

    String iManufacturer dibaca dari perangkat, jika tersedia.

  • productId

    angka

    ID produk.

  • productName

    string

    Chrome 46 dan yang lebih baru

    String iProduct dibaca dari perangkat, jika tersedia.

  • serialNumber

    string

    Chrome 46 dan yang lebih baru

    String iSerialNumber dibaca dari perangkat, jika tersedia.

  • vendorId

    angka

    ID vendor perangkat.

  • versi

    angka

    Chrome 51 dan yang lebih baru

    Versi perangkat (kolom bcdDevice).

DeviceFilter

Properti

  • interfaceClass

    angka opsional

    Class antarmuka USB, cocok dengan antarmuka apa pun pada perangkat.

  • interfaceProtocol

    angka opsional

    Protokol antarmuka USB, hanya diperiksa jika subclass antarmuka cocok.

  • interfaceSubclass

    angka opsional

    Subclass antarmuka USB, hanya diperiksa jika class antarmuka cocok.

  • productId

    angka opsional

    ID produk perangkat, hanya dicentang jika ID vendor cocok.

  • vendorId

    angka opsional

    ID vendor perangkat.

DevicePromptOptions

Properti

  • filter

    DeviceFilter[] opsional

    Memfilter daftar perangkat yang ditampilkan kepada pengguna. Jika beberapa filter disediakan, perangkat yang cocok dengan filter apa pun akan ditampilkan.

  • lebih dari satu

    boolean opsional

    Izinkan pengguna memilih beberapa perangkat.

Direction

Direction, Recipient, RequestType, dan TransferType semuanya dipetakan ke nama yang sama dalam spesifikasi USB.

Enum

"di"

"keluar"

EndpointDescriptor

Properti

  • alamat

    angka

    Alamat endpoint.

  • direction

    Arah transfer.

  • extra_data

    ArrayBuffer

    Data deskriptor tambahan yang terkait dengan endpoint ini.

  • maximumPacketSize

    angka

    Ukuran paket maksimum.

  • pollingInterval

    angka opsional

    Interval polling (hanya interupsi dan isokronus).

  • sinkronisasi

    Mode sinkronisasi transfer (khusus isokronus).

  • jenis

    Jenis transfer.

  • penggunaan

    UsageType opsional

    Petunjuk penggunaan endpoint.

EnumerateDevicesAndRequestAccessOptions

Properti

  • interfaceId

    angka opsional

    ID antarmuka yang aksesnya akan diminta. Hanya tersedia di Chrome OS. Kebijakan ini tidak berpengaruh pada platform lain.

  • productId

    angka

    ID produk.

  • vendorId

    angka

    ID vendor perangkat.

EnumerateDevicesOptions

Properti

  • filter

    DeviceFilter[] opsional

    Perangkat yang cocok dengan filter tertentu akan ditampilkan. Daftar filter kosong akan menampilkan semua perangkat yang izinnya dimiliki aplikasi.

  • productId

    angka opsional

    Tidak digunakan lagi

    Setara dengan setelan DeviceFilter.productId.

  • vendorId

    angka opsional

    Tidak digunakan lagi

    Setara dengan setelan DeviceFilter.vendorId.

GenericTransferInfo

Properti

  • data

    ArrayBuffer opsional

    Data yang akan dikirim (hanya diperlukan oleh transfer output).

  • direction

    Arah transfer ("in" atau "out").

  • endpoint

    angka

    Alamat endpoint target. Antarmuka yang berisi endpoint ini harus diklaim.

  • panjang

    angka opsional

    Jumlah maksimum byte yang akan diterima (hanya diperlukan oleh transfer input).

  • timeout

    angka opsional

    Chrome 43 dan yang lebih baru

    Waktu tunggu permintaan (dalam milidetik). Nilai default 0 menunjukkan tidak ada waktu tunggu.

InterfaceDescriptor

Properti

  • alternateSetting

    angka

    Nomor setelan alternatif antarmuka (default-nya adalah 0)

  • deskripsi

    string opsional

    Deskripsi antarmuka.

  • endpoint

    Endpoint yang tersedia.

  • extra_data

    ArrayBuffer

    Data deskriptor tambahan yang terkait dengan antarmuka ini.

  • interfaceClass

    angka

    Class antarmuka USB.

  • interfaceNumber

    angka

    Nomor antarmuka.

  • interfaceProtocol

    angka

    Protokol antarmuka USB.

  • interfaceSubclass

    angka

    Subclass antarmuka USB.

IsochronousTransferInfo

Properti

  • packetLength

    angka

    Panjang setiap paket dalam transfer ini.

  • paket

    angka

    Jumlah total paket dalam transfer ini.

  • transferInfo

    Parameter transfer. Panjang transfer atau buffer data yang ditentukan dalam blok parameter ini dibagi di sepanjang batas packetLength untuk membentuk paket individual transfer.

Recipient

Enum

"perangkat"

"antarmuka"

"endpoint"

"lainnya"

RequestType

Enum

"standar"

"class"

"vendor"

"dicadangkan"

SynchronizationType

Untuk mode interupsi dan isocron, SynchronizationType dan UsageType akan dipetakan ke nama yang sama dalam spesifikasi USB.

Enum

"asinkron"

"adaptif"

"sinkron"

TransferResultInfo

Properti

  • data

    ArrayBuffer opsional

    Data yang ditampilkan oleh transfer input. undefined untuk transfer output.

  • resultCode

    angka opsional

    Nilai 0 menunjukkan bahwa transfer berhasil. Nilai lain menunjukkan kegagalan.

TransferType

Enum

"kontrol"

"interupsi"

"isocronus"

"massal"

UsageType

Enum

"data"

"masukan"

"eksplisitFeedback"

"periodik"

"notifikasi"

Metode

bulkTransfer()

Janji
chrome.usb.bulkTransfer(
  handle: ConnectionHandle,
  transferInfo: GenericTransferInfo,
  callback?: function,
)

Melakukan transfer massal di perangkat yang ditentukan.

Parameter

Hasil

  • Promise<TransferResultInfo>

    Chrome 116 dan yang lebih baru

    Promise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.

claimInterface()

Janji
chrome.usb.claimInterface(
  handle: ConnectionHandle,
  interfaceNumber: number,
  callback?: function,
)

Mengklaim antarmuka pada perangkat USB. Sebelum data dapat ditransfer ke antarmuka atau endpoint terkait, antarmuka harus diklaim. Hanya satu handle koneksi yang dapat mengklaim antarmuka pada waktu tertentu. Jika antarmuka sudah diklaim, panggilan ini akan gagal.

releaseInterface harus dipanggil saat antarmuka tidak lagi diperlukan.

Parameter

  • Koneksi terbuka ke perangkat.

  • interfaceNumber

    angka

    Antarmuka yang akan diklaim.

  • callback

    fungsi opsional

    Parameter callback terlihat seperti ini:

    () => void

Hasil

  • Janji<void>

    Chrome 116 dan yang lebih baru

    Promise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.

closeDevice()

Janji
chrome.usb.closeDevice(
  handle: ConnectionHandle,
  callback?: function,
)

Menutup handle koneksi. Memanggil operasi pada tuas setelah ditutup adalah operasi yang aman tetapi tidak menyebabkan ada tindakan yang diambil.

Parameter

Hasil

  • Janji<void>

    Chrome 116 dan yang lebih baru

    Promise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.

controlTransfer()

Janji
chrome.usb.controlTransfer(
  handle: ConnectionHandle,
  transferInfo: ControlTransferInfo,
  callback?: function,
)

Melakukan transfer kontrol pada perangkat yang ditentukan.

Transfer kontrol merujuk pada perangkat, antarmuka, atau endpoint. Transfer ke antarmuka atau endpoint memerlukan klaim antarmuka.

Parameter

Hasil

  • Promise&lt;TransferResultInfo&gt;

    Chrome 116 dan yang lebih baru

    Promise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.

findDevices()

Janji
chrome.usb.findDevices(
  options: EnumerateDevicesAndRequestAccessOptions,
  callback?: function,
)

Menemukan perangkat USB yang ditentukan oleh vendor, produk, dan ID antarmuka (secara opsional) serta jika izin mengizinkan, perangkat tersebut akan dapat digunakan.

Jika permintaan akses ditolak atau perangkat gagal dibuka, handle koneksi tidak akan dibuat atau dikembalikan.

Memanggil metode ini sama dengan memanggil getDevices diikuti dengan openDevice untuk setiap perangkat.

Parameter

Hasil

  • Promise&lt;ConnectionHandle[]&gt;

    Chrome 116 dan yang lebih baru

    Promise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.

getConfiguration()

Janji
chrome.usb.getConfiguration(
  handle: ConnectionHandle,
  callback?: function,
)

Mendapatkan deskriptor konfigurasi untuk konfigurasi yang saat ini dipilih.

Parameter

Hasil

  • Promise&lt;ConfigDescriptor&gt;

    Chrome 116 dan yang lebih baru

    Promise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.

getConfigurations()

Janji Chrome 47 dan yang lebih baru
chrome.usb.getConfigurations(
  device: Device,
  callback?: function,
)

Menampilkan kumpulan lengkap deskriptor konfigurasi perangkat.

Parameter

Hasil

  • Promise&lt;ConfigDescriptor[]&gt;

    Chrome 116 dan yang lebih baru

    Promise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.

getDevices()

Janji
chrome.usb.getDevices(
  options: EnumerateDevicesOptions,
  callback?: function,
)

Menghitung perangkat USB yang terhubung.

Parameter

  • Properti yang akan ditelusuri pada perangkat target.

  • callback

    fungsi opsional

    Parameter callback terlihat seperti ini:

    (devices: Device[]) => void

Hasil

  • Promise<Device[]>

    Chrome 116 dan yang lebih baru

    Promise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.

getUserSelectedDevices()

Janji
chrome.usb.getUserSelectedDevices(
  options: DevicePromptOptions,
  callback?: function,
)

Menampilkan pemilih perangkat kepada pengguna dan menampilkan Device yang dipilih. Jika pengguna membatalkan, perangkat pemilih akan kosong. Gestur pengguna diperlukan agar dialog ditampilkan. Tanpa gestur pengguna, callback akan berjalan seolah-olah pengguna membatalkan.

Parameter

  • Konfigurasi kotak dialog pemilih perangkat.

  • callback

    fungsi opsional

    Parameter callback terlihat seperti ini:

    (devices: Device[]) => void

Hasil

  • Promise<Device[]>

    Chrome 116 dan yang lebih baru

    Promise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.

interruptTransfer()

Janji
chrome.usb.interruptTransfer(
  handle: ConnectionHandle,
  transferInfo: GenericTransferInfo,
  callback?: function,
)

Melakukan transfer interupsi pada perangkat yang ditentukan.

Parameter

Hasil

  • Promise&lt;TransferResultInfo&gt;

    Chrome 116 dan yang lebih baru

    Promise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.

isochronousTransfer()

Janji
chrome.usb.isochronousTransfer(
  handle: ConnectionHandle,
  transferInfo: IsochronousTransferInfo,
  callback?: function,
)

Melakukan transfer isokronos pada perangkat tertentu.

Parameter

Hasil

  • Promise&lt;TransferResultInfo&gt;

    Chrome 116 dan yang lebih baru

    Promise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.

listInterfaces()

Janji
chrome.usb.listInterfaces(
  handle: ConnectionHandle,
  callback?: function,
)

Mencantumkan semua antarmuka pada perangkat USB.

Parameter

Hasil

  • Promise&lt;InterfaceDescriptor[]&gt;

    Chrome 116 dan yang lebih baru

    Promise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.

openDevice()

Janji
chrome.usb.openDevice(
  device: Device,
  callback?: function,
)

Membuka perangkat USB yang ditampilkan oleh getDevices.

Parameter

Hasil

  • Promise&lt;ConnectionHandle&gt;

    Chrome 116 dan yang lebih baru

    Promise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.

releaseInterface()

Janji
chrome.usb.releaseInterface(
  handle: ConnectionHandle,
  interfaceNumber: number,
  callback?: function,
)

Merilis antarmuka yang diklaim.

Parameter

  • Koneksi terbuka ke perangkat.

  • interfaceNumber

    angka

    Antarmuka yang akan dirilis.

  • callback

    fungsi opsional

    Parameter callback terlihat seperti ini:

    () => void

Hasil

  • Janji<void>

    Chrome 116 dan yang lebih baru

    Promise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.

requestAccess()

Janji Tidak digunakan lagi
chrome.usb.requestAccess(
  device: Device,
  interfaceId: number,
  callback?: function,
)

Fungsi ini bersifat khusus Chrome OS dan memanggilnya di platform lain akan gagal. Operasi ini sekarang secara implisit dilakukan sebagai bagian dari openDevice dan fungsi ini akan menampilkan true di semua platform.

Meminta akses dari broker izin ke perangkat yang diklaim oleh Chrome OS jika antarmuka tertentu pada perangkat tidak diklaim.

Parameter

  • perangkat

    Device yang akan diminta aksesnya.

  • interfaceId

    angka

    Antarmuka tertentu yang diminta.

  • callback

    fungsi opsional

    Parameter callback terlihat seperti ini:

    (success: boolean) => void

    • berhasil

      boolean

Hasil

  • Promise&lt;boolean&gt;

    Chrome 116 dan yang lebih baru

    Promise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.

resetDevice()

Janji
chrome.usb.resetDevice(
  handle: ConnectionHandle,
  callback?: function,
)

Mencoba mereset perangkat USB. Jika reset gagal, handle koneksi yang diberikan akan ditutup dan perangkat USB akan terlihat terputus lalu dihubungkan kembali. Dalam hal ini, getDevices atau findDevices harus dipanggil lagi untuk mendapatkan perangkat.

Parameter

  • Tuas koneksi untuk direset.

  • callback

    fungsi opsional

    Parameter callback terlihat seperti ini:

    (success: boolean) => void

    • berhasil

      boolean

Hasil

  • Promise&lt;boolean&gt;

    Chrome 116 dan yang lebih baru

    Promise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.

setConfiguration()

Janji
chrome.usb.setConfiguration(
  handle: ConnectionHandle,
  configurationValue: number,
  callback?: function,
)

Pilih konfigurasi perangkat.

Fungsi ini mereset perangkat secara efektif dengan memilih salah satu konfigurasi yang tersedia untuk perangkat. Hanya nilai konfigurasi yang lebih besar dari 0 yang valid. Namun, beberapa perangkat yang memiliki bug memiliki konfigurasi 0 yang berfungsi sehingga nilai ini diizinkan.

Parameter

  • Koneksi terbuka ke perangkat.

  • configurationValue

    angka

  • callback

    fungsi opsional

    Parameter callback terlihat seperti ini:

    () => void

Hasil

  • Janji<void>

    Chrome 116 dan yang lebih baru

    Promise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.

setInterfaceAlternateSetting()

Janji
chrome.usb.setInterfaceAlternateSetting(
  handle: ConnectionHandle,
  interfaceNumber: number,
  alternateSetting: number,
  callback?: function,
)

Memilih setelan alternatif di antarmuka yang telah diklaim sebelumnya.

Parameter

  • Koneksi terbuka ke perangkat tempat antarmuka ini diklaim.

  • interfaceNumber

    angka

    Antarmuka yang akan dikonfigurasi.

  • alternateSetting

    angka

    Setelan alternatif yang akan dikonfigurasi.

  • callback

    fungsi opsional

    Parameter callback terlihat seperti ini:

    () => void

Hasil

  • Janji<void>

    Chrome 116 dan yang lebih baru

    Promise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.

Acara

onDeviceAdded

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

Peristiwa yang dihasilkan saat perangkat ditambahkan ke sistem. Acara hanya disiarkan ke aplikasi dan ekstensi yang memiliki izin untuk mengakses perangkat. Izin mungkin telah diberikan saat penginstalan, saat pengguna menerima izin opsional (lihat permissions.request), atau melalui getUserSelectedDevices.

Parameter

  • callback

    fungsi

    Parameter callback terlihat seperti ini:

    (device: Device) => void

onDeviceRemoved

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

Peristiwa yang dihasilkan saat perangkat dihapus dari sistem. Lihat onDeviceAdded untuk mengetahui peristiwa yang ditayangkan.

Parameter

  • callback

    fungsi

    Parameter callback terlihat seperti ini:

    (device: Device) => void