תיאור
משתמשים ב-API של chrome.usb כדי לתקשר עם התקני USB מחוברים. ה-API הזה מספק גישה לפעולות USB מתוך ההקשר של אפליקציה. באמצעות ה-API הזה, אפליקציות יכולות לפעול כמנהלי התקנים של מכשירי חומרה. שגיאות שנוצרות על ידי ה-API הזה מדווחות על ידי הגדרת runtime.lastError והפעלת פונקציית ה-callback הרגילה. במקרה כזה, הפרמטרים הרגילים של הקריאה החוזרת לא יוגדרו.
הרשאות
usbזמינות
סוגים
ConfigDescriptor
מאפיינים
-
פעיל
בוליאני
Chrome 47 ואילךהאם זו ההגדרה הפעילה?
-
configurationValue
number
מספר ההגדרה.
-
תיאור
מחרוזת אופציונלי
תיאור ההגדרה.
-
extra_data
ArrayBuffer
נתוני מתאר נוספים שמשויכים להגדרה הזו.
-
ממשקים
ממשקים זמינים.
-
maxPower
number
ההספק המקסימלי שהמכשיר צריך במיליאמפר (mA).
-
remoteWakeup
בוליאני
המכשיר תומך בהפעלה מרחוק.
-
selfPowered
בוליאני
המכשיר מופעל באמצעות סוללה.
ConnectionHandle
מאפיינים
-
נקודת אחיזה
number
מזהה אטום שמייצג את החיבור הזה להתקן ה-USB ואת כל הממשקים המשויכים שנתבעו וההעברות בהמתנה. נוצר נקודת אחיזה חדשה בכל פעם שהמכשיר נפתח. מזהה החיבור שונה מ-
Device.device. -
productId
number
מזהה המוצר.
-
vendorId
number
מזהה הספק של המכשיר.
ControlTransferInfo
מאפיינים
-
נתונים
ArrayBuffer אופציונלי
הנתונים שצריך להעביר (נדרש רק בהעברות פלט).
-
direction
כיוון ההעברה (
"in"או"out"). -
אינדקס
number
השדה
wIndex, ראו שם. -
length
מספר אופציונלי
מספר הבייטים המקסימלי לקבלה (נדרש רק בהעברות קלט).
-
מקבל המתנה
היעד להעברה. אם
"interface"או"endpoint", צריך לתבוע בעלות על היעד שצוין על ידיindex. -
בקשה
number
השדה
bRequest, ראו מפרט של אפיק טורי אוניברסלי (USB), גרסה 1.1, סעיף 9.3. -
requestType
סוג הבקשה.
-
פסק זמן
מספר אופציונלי
Chrome 43 ואילךהזמן הקצוב לתפוגת הבקשה (באלפיות השנייה). ערך ברירת המחדל
0מציין שאין זמן קצוב לתפוגה. -
ערך
number
השדה
wValue, ראו שם.
Device
מאפיינים
-
מכשיר
number
מזהה אטום של התקן ה-USB. הוא לא משתנה עד שמנתקים את המכשיר.
-
manufacturerName
מחרוזת
Chrome מגרסה 46 ואילךהמחרוזת iManufacturer שנקראה מהמכשיר, אם היא זמינה.
-
productId
number
מזהה המוצר.
-
productName
מחרוזת
Chrome מגרסה 46 ואילךמחרוזת iProduct שנקראה מהמכשיר, אם היא זמינה.
-
serialNumber
מחרוזת
Chrome מגרסה 46 ואילךהמחרוזת iSerialNumber שנקראה מהמכשיר, אם היא זמינה.
-
vendorId
number
מזהה הספק של המכשיר.
-
גרסה
number
Chrome 51 ואילךגרסת המכשיר (השדה bcdDevice).
DeviceFilter
מאפיינים
-
interfaceClass
מספר אופציונלי
מחלקה של ממשק USB, תואמת לכל ממשק במכשיר.
-
interfaceProtocol
מספר אופציונלי
פרוטוקול ממשק USB, נבדק רק אם מחלקת המשנה של הממשק תואמת.
-
interfaceSubclass
מספר אופציונלי
תת-מחלקה של ממשק USB, נבדקת רק אם מחלקת הממשק תואמת.
-
productId
מספר אופציונלי
מזהה המוצר של המכשיר, נבדק רק אם מזהה הספק תואם.
-
vendorId
מספר אופציונלי
מזהה ספק המכשיר.
DevicePromptOptions
מאפיינים
-
מסננים
DeviceFilter[] אופציונלי
סינון רשימת המכשירים שמוצגת למשתמש. אם מציינים כמה מסננים, יוצגו מכשירים שתואמים לאחד מהמסננים.
-
יותר מאחת
בוליאני אופציונלי
המשתמש יכול לבחור כמה מכשירים.
Direction
השדות Direction, Recipient, RequestType ו-TransferType ממופים לשדות בעלי אותו שם במפרט ה-USB.
טיפוסים בני מנייה (enum)
"in"
"out"
EndpointDescriptor
מאפיינים
-
כתובת
number
כתובת נקודת הקצה (endpoint).
-
direction
כיוון ההעברה.
-
extra_data
ArrayBuffer
נתוני מתאר נוספים שמשויכים לנקודת הקצה הזו.
-
maximumPacketSize
number
גודל החבילה המקסימלי.
-
pollingInterval
מספר אופציונלי
מרווח דגימה (הפרעה ואיזוכרוני בלבד).
-
סנכרון
SynchronizationType אופציונלי
מצב סנכרון של העברה (איזוכרוני בלבד).
-
סוג
סוג ההעברה.
-
שימוש
UsageType אופציונלי
רמז לשימוש בנקודת קצה.
EnumerateDevicesAndRequestAccessOptions
מאפיינים
-
interfaceId
מספר אופציונלי
מזהה הממשק שרוצים לבקש גישה אליו. התכונה זמינה רק ב-ChromeOS. אין להגדרה הזו השפעה על פלטפורמות אחרות.
-
productId
number
מזהה המוצר.
-
vendorId
number
מזהה הספק של המכשיר.
EnumerateDevicesOptions
מאפיינים
-
מסננים
DeviceFilter[] אופציונלי
יוחזר מכשיר שתואם לאחד מהמסננים שצוינו. אם רשימת המסננים ריקה, יוצגו כל המכשירים שלאפליקציה יש הרשאה לגשת אליהם.
-
productId
מספר אופציונלי
הוצא משימוששווה ערך להגדרה
DeviceFilter.productId. -
vendorId
מספר אופציונלי
הוצא משימוששווה ערך להגדרה
DeviceFilter.vendorId.
GenericTransferInfo
מאפיינים
-
נתונים
ArrayBuffer אופציונלי
הנתונים שצריך להעביר (נדרש רק בהעברות פלט).
-
direction
כיוון ההעברה (
"in"או"out"). -
נקודת קצה (endpoint)
number
כתובת נקודת הקצה (endpoint) של היעד. צריך לתבוע בעלות על הממשק שמכיל את נקודת הקצה הזו.
-
length
מספר אופציונלי
מספר הבייטים המקסימלי לקבלה (נדרש רק בהעברות קלט).
-
פסק זמן
מספר אופציונלי
Chrome 43 ואילךהזמן הקצוב לתפוגת הבקשה (באלפיות השנייה). ערך ברירת המחדל
0מציין שאין זמן קצוב לתפוגה.
InterfaceDescriptor
מאפיינים
-
alternateSetting
number
מספר ההגדרה החלופית של הממשק (ברירת המחדל היא
0 -
תיאור
מחרוזת אופציונלי
תיאור הממשק.
-
נקודות קצה (endpoints)
thought EndpointDescriptor[]
נקודות קצה זמינות.
-
extra_data
ArrayBuffer
נתוני מתאר נוספים שמשויכים לממשק הזה.
-
interfaceClass
number
ממשק ה-USB.
-
interfaceNumber
number
מספר הממשק.
-
interfaceProtocol
number
פרוטוקול ממשק ה-USB.
-
interfaceSubclass
number
ממשק המשנה של ממשק ה-USB.
IsochronousTransferInfo
מאפיינים
-
packetLength
number
האורך של כל אחת מחבילות הנתונים בהעברה הזו.
-
מנות
number
המספר הכולל של חבילות הנתונים בהעברה הזו.
-
transferInfo
פרמטרים של העברה. אורך ההעברה או מאגר הנתונים הזמני שצוינו בבלוק הפרמטרים הזה מפוצלים לאורך גבולות של
packetLengthכדי ליצור את החבילות הנפרדות של ההעברה.
Recipient
טיפוסים בני מנייה (enum)
"device"
"interface"
"endpoint"
"other"
RequestType
טיפוסים בני מנייה (enum)
"standard"
"class"
"vendor"
"reserved"
SynchronizationType
במצבים של פסיקה ואיזוכרוני, SynchronizationType ו-UsageType ממופים לשמות שלהם במפרט ה-USB.
טיפוסים בני מנייה (enum)
"asynchronous"
"adaptive"
"synchronous"
TransferResultInfo
מאפיינים
-
נתונים
ArrayBuffer אופציונלי
הנתונים שמוחזרים על ידי העברת קלט.
undefinedלהעברות פלט. -
resultCode
מספר אופציונלי
הערך
0מציין שההעברה בוצעה בהצלחה. ערכים אחרים מציינים שהפעולה נכשלה.
TransferType
טיפוסים בני מנייה (enum)
"control"
"interrupt"
"isochronous"
"bulk"
UsageType
טיפוסים בני מנייה (enum)
"data"
"feedback"
"explicitFeedback"
"periodic"
"notification"
Methods
bulkTransfer()
chrome.usb.bulkTransfer(
handle: ConnectionHandle,
transferInfo: GenericTransferInfo,
callback?: function,
): Promise<TransferResultInfo>
מבצעת העברה בכמות גדולה במכשיר שצוין.
פרמטרים
-
נקודת אחיזה
חיבור פתוח למכשיר.
-
transferInfo
הפרמטרים של ההעברה.
-
callback
function optional
הפרמטר
callbackנראה כך:(info: TransferResultInfo) => void
-
מידע
-
החזרות
-
thought Promise<TransferResultInfo>
Chrome מגרסה 116 ואילךהבטחות נתמכות רק ב-Manifest V3 ואילך, בפלטפורמות אחרות צריך להשתמש בקריאות חוזרות (callbacks).
claimInterface()
chrome.usb.claimInterface(
handle: ConnectionHandle,
interfaceNumber: number,
callback?: function,
): Promise<void>
תובע ממשק בהתקן USB. כדי להעביר נתונים לממשק או לנקודות קצה משויכות, צריך לתבוע בעלות על הממשק. רק נקודת אחיזה אחת של חיבור יכולה לתבוע בעלות על ממשק בכל זמן נתון. אם כבר נתבעה בעלות על הממשק, הקריאה הזו תיכשל.
צריך להפעיל את releaseInterface כשכבר לא צריך את הממשק.
פרמטרים
-
נקודת אחיזה
חיבור פתוח למכשיר.
-
interfaceNumber
number
הממשק שרוצים לתבוע בעלות עליו.
-
callback
function optional
הפרמטר
callbackנראה כך:() => void
החזרות
-
Promise<void>
Chrome מגרסה 116 ואילךהבטחות נתמכות רק ב-Manifest V3 ואילך, בפלטפורמות אחרות צריך להשתמש בקריאות חוזרות (callbacks).
closeDevice()
chrome.usb.closeDevice(
handle: ConnectionHandle,
callback?: function,
): Promise<void>
סגירת נקודת אחיזה לחיבור. הפעלת פעולות על נקודת אחיזה אחרי שהיא נסגרה היא פעולה בטוחה, אבל לא תגרום לביצוע פעולה כלשהי.
פרמטרים
-
נקודת אחיזה
ConnectionHandleכדי לסגור. -
callback
function optional
הפרמטר
callbackנראה כך:() => void
החזרות
-
Promise<void>
Chrome מגרסה 116 ואילךהבטחות נתמכות רק ב-Manifest V3 ואילך, בפלטפורמות אחרות צריך להשתמש בקריאות חוזרות (callbacks).
controlTransfer()
chrome.usb.controlTransfer(
handle: ConnectionHandle,
transferInfo: ControlTransferInfo,
callback?: function,
): Promise<TransferResultInfo>
מבצעת העברת בקרה במכשיר שצוין.
העברות בקרה מתייחסות למכשיר, לממשק או לנקודת קצה. כדי להעביר לממשק או לנקודת קצה, צריך לתבוע בעלות על הממשק.
פרמטרים
-
נקודת אחיזה
חיבור פתוח למכשיר.
-
transferInfo
-
callback
function optional
הפרמטר
callbackנראה כך:(info: TransferResultInfo) => void
-
מידע
-
החזרות
-
thought Promise<TransferResultInfo>
Chrome מגרסה 116 ואילךהבטחות נתמכות רק ב-Manifest V3 ואילך, בפלטפורמות אחרות צריך להשתמש בקריאות חוזרות (callbacks).
findDevices()
chrome.usb.findDevices(
options: EnumerateDevicesAndRequestAccessOptions,
callback?: function,
): Promise<ConnectionHandle[]>
הפונקציה מוצאת התקני USB שצוינו על ידי הספק, המוצר ומזהי הממשק (אופציונלי), ואם ההרשאות מאפשרות זאת, פותחת אותם לשימוש.
אם בקשת הגישה נדחית או שהמכשיר לא נפתח, לא נוצר או מוחזר נקודת אחיזה לחיבור.
הפעלת ה-method הזו מקבילה להפעלת getDevices ואחריה openDevice לכל מכשיר.
פרמטרים
-
המאפיינים שצריך לחפש במכשירי היעד.
-
callback
function optional
הפרמטר
callbackנראה כך:(handles: ConnectionHandle[]) => void
-
כינויים
-
החזרות
-
Promise<ConnectionHandle[]>
Chrome מגרסה 116 ואילךהבטחות נתמכות רק ב-Manifest V3 ואילך, בפלטפורמות אחרות צריך להשתמש בקריאות חוזרות (callbacks).
getConfiguration()
chrome.usb.getConfiguration(
handle: ConnectionHandle,
callback?: function,
): Promise<ConfigDescriptor>
מקבל את מתאר ההגדרות של ההגדרה שנבחרה כרגע.
פרמטרים
-
נקודת אחיזה
חיבור פתוח למכשיר.
-
callback
function optional
הפרמטר
callbackנראה כך:(config: ConfigDescriptor) => void
-
config
-
החזרות
-
Promise<ConfigDescriptor>
Chrome מגרסה 116 ואילךהבטחות נתמכות רק ב-Manifest V3 ואילך, בפלטפורמות אחרות צריך להשתמש בקריאות חוזרות (callbacks).
getConfigurations()
chrome.usb.getConfigurations(
device: Device,
callback?: function,
): Promise<ConfigDescriptor[]>
הפונקציה מחזירה את קבוצת התיאורים המלאה של תצורת המכשיר.
פרמטרים
-
מכשיר
ה-
Deviceשממנו מאחזרים את התיאורים. -
callback
function optional
הפרמטר
callbackנראה כך:(configs: ConfigDescriptor[]) => void
-
הגדרות אישיות
-
החזרות
-
Promise<ConfigDescriptor[]>
Chrome מגרסה 116 ואילךהבטחות נתמכות רק ב-Manifest V3 ואילך, בפלטפורמות אחרות צריך להשתמש בקריאות חוזרות (callbacks).
getDevices()
chrome.usb.getDevices(
options: EnumerateDevicesOptions,
callback?: function,
): Promise<Device[]>
מציג את התקני ה-USB המחוברים.
פרמטרים
החזרות
-
Promise<Device[]>
Chrome מגרסה 116 ואילךהבטחות נתמכות רק ב-Manifest V3 ואילך, בפלטפורמות אחרות צריך להשתמש בקריאות חוזרות (callbacks).
getUserSelectedDevices()
chrome.usb.getUserSelectedDevices(
options: DevicePromptOptions,
callback?: function,
): Promise<Device[]>
מציג למשתמש בורר מכשירים ומחזיר את ה-Device שנבחרו. אם המשתמש יבטל את הבחירה, רשימת המכשירים תהיה ריקה. כדי שתיבת הדו-שיח תוצג, נדרשת תנועה של המשתמש. בלי תנועה של המשתמש, הקריאה החוזרת תפעל כאילו המשתמש ביטל.
פרמטרים
החזרות
-
Promise<Device[]>
Chrome מגרסה 116 ואילךהבטחות נתמכות רק ב-Manifest V3 ואילך, בפלטפורמות אחרות צריך להשתמש בקריאות חוזרות (callbacks).
interruptTransfer()
chrome.usb.interruptTransfer(
handle: ConnectionHandle,
transferInfo: GenericTransferInfo,
callback?: function,
): Promise<TransferResultInfo>
מבצעת העברת פסיקה במכשיר שצוין.
פרמטרים
-
נקודת אחיזה
חיבור פתוח למכשיר.
-
transferInfo
הפרמטרים של ההעברה.
-
callback
function optional
הפרמטר
callbackנראה כך:(info: TransferResultInfo) => void
-
מידע
-
החזרות
-
thought Promise<TransferResultInfo>
Chrome מגרסה 116 ואילךהבטחות נתמכות רק ב-Manifest V3 ואילך, בפלטפורמות אחרות צריך להשתמש בקריאות חוזרות (callbacks).
isochronousTransfer()
chrome.usb.isochronousTransfer(
handle: ConnectionHandle,
transferInfo: IsochronousTransferInfo,
callback?: function,
): Promise<TransferResultInfo>
מבצעת העברה איזוכרונית במכשיר הספציפי.
פרמטרים
-
נקודת אחיזה
חיבור פתוח למכשיר.
-
transferInfo
-
callback
function optional
הפרמטר
callbackנראה כך:(info: TransferResultInfo) => void
-
מידע
-
החזרות
-
thought Promise<TransferResultInfo>
Chrome מגרסה 116 ואילךהבטחות נתמכות רק ב-Manifest V3 ואילך, בפלטפורמות אחרות צריך להשתמש בקריאות חוזרות (callbacks).
listInterfaces()
chrome.usb.listInterfaces(
handle: ConnectionHandle,
callback?: function,
): Promise<InterfaceDescriptor[]>
מציגה את כל הממשקים בהתקן USB.
פרמטרים
-
נקודת אחיזה
חיבור פתוח למכשיר.
-
callback
function optional
הפרמטר
callbackנראה כך:(descriptors: InterfaceDescriptor[]) => void
-
תיאורים
-
החזרות
-
Promise<InterfaceDescriptor[]>
Chrome מגרסה 116 ואילךהבטחות נתמכות רק ב-Manifest V3 ואילך, בפלטפורמות אחרות צריך להשתמש בקריאות חוזרות (callbacks).
openDevice()
chrome.usb.openDevice(
device: Device,
callback?: function,
): Promise<ConnectionHandle>
פתיחת התקן USB שהוחזר על ידי getDevices.
פרמטרים
-
מכשיר
ה-
Deviceשרוצים לפתוח. -
callback
function optional
הפרמטר
callbackנראה כך:(handle: ConnectionHandle) => void
-
נקודת אחיזה
-
החזרות
-
Promise<ConnectionHandle>
Chrome מגרסה 116 ואילךהבטחות נתמכות רק ב-Manifest V3 ואילך, בפלטפורמות אחרות צריך להשתמש בקריאות חוזרות (callbacks).
releaseInterface()
chrome.usb.releaseInterface(
handle: ConnectionHandle,
interfaceNumber: number,
callback?: function,
): Promise<void>
משחרר ממשק שנתפס.
פרמטרים
-
נקודת אחיזה
חיבור פתוח למכשיר.
-
interfaceNumber
number
הממשק שצריך לשחרר.
-
callback
function optional
הפרמטר
callbackנראה כך:() => void
החזרות
-
Promise<void>
Chrome מגרסה 116 ואילךהבטחות נתמכות רק ב-Manifest V3 ואילך, בפלטפורמות אחרות צריך להשתמש בקריאות חוזרות (callbacks).
requestAccess()
chrome.usb.requestAccess(
device: Device,
interfaceId: number,
callback?: function,
): Promise<boolean>
הפונקציה הזו הייתה ספציפית ל-ChromeOS, וקריאה לה בפלטפורמות אחרות הייתה נכשלת. הפעולה הזו מתבצעת עכשיו באופן משתמע כחלק מ-openDevice, והפונקציה הזו תחזיר את הערך true בכל הפלטפורמות.
מבקשת גישה ממתווך ההרשאות למכשיר שנתבע על ידי Chrome OS, אם הממשק הנתון במכשיר לא נתבע.
פרמטרים
-
מכשיר
ה-
Deviceשרוצים לבקש גישה אליו. -
interfaceId
number
הממשק הספציפי שנכלל בבקשה.
-
callback
function optional
הפרמטר
callbackנראה כך:(success: boolean) => void
-
הצלחה
בוליאני
-
החזרות
-
Promise<boolean>
Chrome מגרסה 116 ואילךהבטחות נתמכות רק ב-Manifest V3 ואילך, בפלטפורמות אחרות צריך להשתמש בקריאות חוזרות (callbacks).
resetDevice()
chrome.usb.resetDevice(
handle: ConnectionHandle,
callback?: function,
): Promise<boolean>
מנסה לאפס את התקן ה-USB. אם האיפוס נכשל, נקודת האחיזה של החיבור שניתנה תיסגר והתקן ה-USB ייראה כאילו הוא נותק ואז חובר מחדש. במקרה כזה, צריך לקרוא שוב ל-getDevices או ל-findDevices כדי לקבל את המכשיר.
פרמטרים
-
נקודת אחיזה
מזהה חיבור לאיפוס.
-
callback
function optional
הפרמטר
callbackנראה כך:(success: boolean) => void
-
הצלחה
בוליאני
-
החזרות
-
Promise<boolean>
Chrome מגרסה 116 ואילךהבטחות נתמכות רק ב-Manifest V3 ואילך, בפלטפורמות אחרות צריך להשתמש בקריאות חוזרות (callbacks).
setConfiguration()
chrome.usb.setConfiguration(
handle: ConnectionHandle,
configurationValue: number,
callback?: function,
): Promise<void>
בוחרים תצורת מכשיר.
הפונקציה הזו מאפסת את המכשיר על ידי בחירה באחת מההגדרות הזמינות של המכשיר. רק ערכי הגדרה שגדולים מ-0 הם תקינים, אבל במכשירים מסוימים עם באגים יש הגדרה תקינה של 0, ולכן הערך הזה מותר.
פרמטרים
-
נקודת אחיזה
חיבור פתוח למכשיר.
-
configurationValue
number
-
callback
function optional
הפרמטר
callbackנראה כך:() => void
החזרות
-
Promise<void>
Chrome מגרסה 116 ואילךהבטחות נתמכות רק ב-Manifest V3 ואילך, בפלטפורמות אחרות צריך להשתמש בקריאות חוזרות (callbacks).
setInterfaceAlternateSetting()
chrome.usb.setInterfaceAlternateSetting(
handle: ConnectionHandle,
interfaceNumber: number,
alternateSetting: number,
callback?: function,
): Promise<void>
בוחר הגדרה חלופית בממשק שהוקצה קודם.
פרמטרים
-
נקודת אחיזה
חיבור פתוח למכשיר שבו הממשק הזה נתפס.
-
interfaceNumber
number
הממשק שצריך להגדיר.
-
alternateSetting
number
ההגדרה החלופית שרוצים לקבוע.
-
callback
function optional
הפרמטר
callbackנראה כך:() => void
החזרות
-
Promise<void>
Chrome מגרסה 116 ואילךהבטחות נתמכות רק ב-Manifest V3 ואילך, בפלטפורמות אחרות צריך להשתמש בקריאות חוזרות (callbacks).
אירועים
onDeviceAdded
chrome.usb.onDeviceAdded.addListener(
callback: function,
)
אירוע שנוצר כשמכשיר נוסף למערכת. האירועים משודרים רק לאפליקציות ולתוספים שיש להם הרשאת גישה למכשיר. יכול להיות שההרשאה ניתנה בזמן ההתקנה, כשהמשתמש אישר הרשאה אופציונלית (ראו permissions.request), או דרך getUserSelectedDevices.
onDeviceRemoved
chrome.usb.onDeviceRemoved.addListener(
callback: function,
)
אירוע שנוצר כשמכשיר מוסר מהמערכת. במאמר onDeviceAdded מפורטים האירועים שנשלחים.