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 baruApakah 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 baruWaktu 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 baruString iManufacturer dibaca dari perangkat, jika tersedia.
-
productId
angka
ID produk.
-
productName
string
Chrome 46 dan yang lebih baruString iProduct dibaca dari perangkat, jika tersedia.
-
serialNumber
string
Chrome 46 dan yang lebih baruString iSerialNumber dibaca dari perangkat, jika tersedia.
-
vendorId
angka
ID vendor perangkat.
-
versi
angka
Chrome 51 dan yang lebih baruVersi 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
SynchronizationType opsional
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 lagiSetara dengan setelan
DeviceFilter.productId
. -
vendorId
angka opsional
Tidak digunakan lagiSetara 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 baruWaktu 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()
chrome.usb.bulkTransfer(
handle: ConnectionHandle,
transferInfo: GenericTransferInfo,
callback?: function,
)
Melakukan transfer massal di perangkat yang ditentukan.
Parameter
-
handle
Koneksi terbuka ke perangkat.
-
transferInfo
Parameter transfer.
-
callback
fungsi opsional
Parameter
callback
terlihat seperti ini:(info: TransferResultInfo) => void
-
info
-
Hasil
-
Promise<TransferResultInfo>
Chrome 116 dan yang lebih baruPromise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.
claimInterface()
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
-
handle
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 baruPromise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.
closeDevice()
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
-
handle
ConnectionHandle
yang akan ditutup. -
callback
fungsi opsional
Parameter
callback
terlihat seperti ini:() => void
Hasil
-
Janji<void>
Chrome 116 dan yang lebih baruPromise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.
controlTransfer()
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
-
handle
Koneksi terbuka ke perangkat.
-
transferInfo
-
callback
fungsi opsional
Parameter
callback
terlihat seperti ini:(info: TransferResultInfo) => void
-
info
-
Hasil
-
Promise<TransferResultInfo>
Chrome 116 dan yang lebih baruPromise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.
findDevices()
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
-
Properti yang akan ditelusuri pada perangkat target.
-
callback
fungsi opsional
Parameter
callback
terlihat seperti ini:(handles: ConnectionHandle[]) => void
-
nama sebutan channel
-
Hasil
-
Promise<ConnectionHandle[]>
Chrome 116 dan yang lebih baruPromise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.
getConfiguration()
chrome.usb.getConfiguration(
handle: ConnectionHandle,
callback?: function,
)
Mendapatkan deskriptor konfigurasi untuk konfigurasi yang saat ini dipilih.
Parameter
-
handle
Koneksi terbuka ke perangkat.
-
callback
fungsi opsional
Parameter
callback
terlihat seperti ini:(config: ConfigDescriptor) => void
-
config
-
Hasil
-
Promise<ConfigDescriptor>
Chrome 116 dan yang lebih baruPromise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.
getConfigurations()
chrome.usb.getConfigurations(
device: Device,
callback?: function,
)
Menampilkan kumpulan lengkap deskriptor konfigurasi perangkat.
Parameter
-
perangkat
Device
untuk mengambil deskriptor. -
callback
fungsi opsional
Parameter
callback
terlihat seperti ini:(configs: ConfigDescriptor[]) => void
-
konfigurasi
-
Hasil
-
Promise<ConfigDescriptor[]>
Chrome 116 dan yang lebih baruPromise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.
getDevices()
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
-
perangkat
-
Hasil
-
Promise<Device[]>
Chrome 116 dan yang lebih baruPromise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.
getUserSelectedDevices()
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
-
opsi
Konfigurasi kotak dialog pemilih perangkat.
-
callback
fungsi opsional
Parameter
callback
terlihat seperti ini:(devices: Device[]) => void
-
perangkat
-
Hasil
-
Promise<Device[]>
Chrome 116 dan yang lebih baruPromise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.
interruptTransfer()
chrome.usb.interruptTransfer(
handle: ConnectionHandle,
transferInfo: GenericTransferInfo,
callback?: function,
)
Melakukan transfer interupsi pada perangkat yang ditentukan.
Parameter
-
handle
Koneksi terbuka ke perangkat.
-
transferInfo
Parameter transfer.
-
callback
fungsi opsional
Parameter
callback
terlihat seperti ini:(info: TransferResultInfo) => void
-
info
-
Hasil
-
Promise<TransferResultInfo>
Chrome 116 dan yang lebih baruPromise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.
isochronousTransfer()
chrome.usb.isochronousTransfer(
handle: ConnectionHandle,
transferInfo: IsochronousTransferInfo,
callback?: function,
)
Melakukan transfer isokronos pada perangkat tertentu.
Parameter
-
handle
Koneksi terbuka ke perangkat.
-
transferInfo
-
callback
fungsi opsional
Parameter
callback
terlihat seperti ini:(info: TransferResultInfo) => void
-
info
-
Hasil
-
Promise<TransferResultInfo>
Chrome 116 dan yang lebih baruPromise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.
listInterfaces()
chrome.usb.listInterfaces(
handle: ConnectionHandle,
callback?: function,
)
Mencantumkan semua antarmuka pada perangkat USB.
Parameter
-
handle
Koneksi terbuka ke perangkat.
-
callback
fungsi opsional
Parameter
callback
terlihat seperti ini:(descriptors: InterfaceDescriptor[]) => void
-
deskriptor
-
Hasil
-
Promise<InterfaceDescriptor[]>
Chrome 116 dan yang lebih baruPromise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.
openDevice()
chrome.usb.openDevice(
device: Device,
callback?: function,
)
Membuka perangkat USB yang ditampilkan oleh getDevices
.
Parameter
-
perangkat
Device
yang akan dibuka. -
callback
fungsi opsional
Parameter
callback
terlihat seperti ini:(handle: ConnectionHandle) => void
-
handle
-
Hasil
-
Promise<ConnectionHandle>
Chrome 116 dan yang lebih baruPromise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.
releaseInterface()
chrome.usb.releaseInterface(
handle: ConnectionHandle,
interfaceNumber: number,
callback?: function,
)
Merilis antarmuka yang diklaim.
Parameter
-
handle
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 baruPromise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.
requestAccess()
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<boolean>
Chrome 116 dan yang lebih baruPromise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.
resetDevice()
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
-
handle
Tuas koneksi untuk direset.
-
callback
fungsi opsional
Parameter
callback
terlihat seperti ini:(success: boolean) => void
-
berhasil
boolean
-
Hasil
-
Promise<boolean>
Chrome 116 dan yang lebih baruPromise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.
setConfiguration()
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
-
handle
Koneksi terbuka ke perangkat.
-
configurationValue
angka
-
callback
fungsi opsional
Parameter
callback
terlihat seperti ini:() => void
Hasil
-
Janji<void>
Chrome 116 dan yang lebih baruPromise hanya didukung untuk Manifes V3 dan yang lebih baru, platform lain perlu menggunakan callback.
setInterfaceAlternateSetting()
chrome.usb.setInterfaceAlternateSetting(
handle: ConnectionHandle,
interfaceNumber: number,
alternateSetting: number,
callback?: function,
)
Memilih setelan alternatif di antarmuka yang telah diklaim sebelumnya.
Parameter
-
handle
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 baruPromise 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
-
perangkat
-
onDeviceRemoved
chrome.usb.onDeviceRemoved.addListener(
callback: function,
)
Peristiwa yang dihasilkan saat perangkat dihapus dari sistem. Lihat onDeviceAdded
untuk mengetahui peristiwa yang ditayangkan.