תיאור
שימוש ב-API של chrome.usb
לאינטראקציה עם התקני USB מחוברים. ה-API הזה מספק גישה לפעולות USB מהקשר של אפליקציה. באמצעות ה-API הזה, אפליקציות יכולות לפעול כמנהלי התקנים למכשירי חומרה. כדי לדווח על שגיאות שנוצרו על ידי ה-API הזה, מגדירים את runtime.lastError
ומפעילים את פונקציית ה-callback הרגילה של הפונקציה. במקרה כזה, הפרמטרים הרגילים של קריאת החזרה (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"
). -
index
number
השדה
wIndex
, ראו Ibid. -
length
מספר אופציונלי
המספר המקסימלי של בייטים לקבל (נדרש רק על ידי העברת קלט).
-
מקבל המתנה
יעד ההעברה. צריך לטעון בעלות על היעד שצוין ב-
index
אם"interface"
או"endpoint"
. -
בקשה
number
השדה
bRequest
, ראו Universal Serial Bus Specification Revision 1.1 § 9.3. -
requestType
סוג הבקשה.
-
פסק זמן
מספר אופציונלי
Chrome 43 ואילךהזמן הקצוב לתפוגה של הבקשה (באלפיות השנייה). ערך ברירת המחדל
0
מציין שאין זמן קצוב לתפוגה. -
ערך
number
השדה
wValue
, ראו Ibid.
Device
מאפיינים
-
מכשיר
number
מזהה אטום להתקן ה-USB. הכרטיס נשאר ללא שינוי עד שהמכשיר מנותק מהחשמל.
-
manufacturerName
מחרוזת
Chrome מגרסה 46 ואילךמחרוזת iManufacturer שנקראה מהמכשיר, אם היא זמינה.
-
productId
number
מזהה המוצר
-
productName
מחרוזת
Chrome 46 ואילךמחרוזת iProduct שנקראה מהמכשיר, אם היא זמינה.
-
serialNumber
מחרוזת
Chrome מגרסה 46 ואילךמחרוזת ה-iSeriesNumber שנקראה מהמכשיר, אם היא זמינה.
-
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
כתובת נקודת הקצה.
-
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)
נקודות קצה זמינות.
-
extra_data
ArrayBuffer
נתוני מתאר נוספים שמשויכים לממשק הזה.
-
interfaceClass
number
סיווג ממשק ה-USB.
-
interfaceNumber
number
מספר הממשק.
-
interfaceProtocol
number
פרוטוקול הממשק של USB.
-
interfaceSubclass
number
מחלקה משנית של ממשק USB.
IsochronousTransferInfo
מאפיינים
-
packetLength
number
האורך של כל אחד מהחבילות בהעברה הזו.
-
חבילות
number
המספר הכולל של החבילות בהעברה הזו.
-
transferInfo
העברת פרמטרים. אורך ההעברה או מאגר הנתונים הזמני שצוינו בבלוק הפרמטרים הזה מחולקים לאורך הגבולות של
packetLength
כדי ליצור את החבילות הנפרדות של ההעברה.
Recipient
Enum
"other"
RequestType
Enum
"standard"
"reserved"
SynchronizationType
במצבים של השהיה ושל איסוכרוניות, השדות SynchronizationType ו-UsageType ממפים לשדות בעלי השמות התואמים במפרט USB.
Enum
"adaptive"
TransferResultInfo
מאפיינים
-
נתונים
ArrayBuffer אופציונלי
הנתונים שמוחזרים על ידי העברת קלט.
undefined
להעברות של פלט. -
resultCode
מספר אופציונלי
הערך
0
מציין שההעברה בוצעה בהצלחה. ערכים אחרים מצביעים על כשל.
TransferType
Enum
"control"
"interrupt"
"isochronous"
"bulk"
UsageType
Enum
"data"
"explicitFeedback"
"notification"
שיטות
bulkTransfer()
chrome.usb.bulkTransfer(
handle: ConnectionHandle,
transferInfo: GenericTransferInfo,
callback?: function,
)
ביצוע העברה בכמות גדולה במכשיר שצוין.
פרמטרים
-
נקודת אחיזה
חיבור פתוח למכשיר.
-
transferInfo
הפרמטרים של ההעברה.
-
קריאה חוזרת (callback)
פונקציה אופציונלי
הפרמטר
callback
נראה כך:(info: TransferResultInfo) => void
-
מידע
-
החזרות
-
Promise<TransferResultInfo>
Chrome מגרסה 116 ואילךיש תמיכה ב-Promises רק ב-Manifest V3 ואילך. בפלטפורמות אחרות צריך להשתמש ב-callbacks.
claimInterface()
chrome.usb.claimInterface(
handle: ConnectionHandle,
interfaceNumber: number,
callback?: function,
)
טוען ממשק במכשיר USB. כדי שאפשר יהיה להעביר נתונים לממשק או לנקודות קצה משויכות, צריך לתבוע בעלות על הממשק. רק כינוי חיבור אחד יכול להצהיר בעלות על ממשק בכל רגע נתון. אם כבר נתבעה בעלות על הממשק, השיחה תיכשל.
צריך לקרוא לפונקציה releaseInterface
כשאין יותר צורך בממשק.
פרמטרים
-
נקודת אחיזה
חיבור פתוח למכשיר.
-
interfaceNumber
number
הממשק שרוצים לתבוע עליו בעלות.
-
קריאה חוזרת (callback)
פונקציה אופציונלית
הפרמטר
callback
נראה כך:() => void
החזרות
-
הבטחה<Empty>
Chrome מגרסה 116 ואילךיש תמיכה ב-Promises רק ב-Manifest V3 ואילך. בפלטפורמות אחרות צריך להשתמש ב-callbacks.
closeDevice()
chrome.usb.closeDevice(
handle: ConnectionHandle,
callback?: function,
)
סגירת הטיפול בהתחברות. הפעלת פעולות על כינוי אחרי שהוא נסגר היא פעולה בטוחה, אבל לא גורמת לכך שלא תתבצע שום פעולה.
פרמטרים
-
נקודת אחיזה
ConnectionHandle
לסגירה. -
קריאה חוזרת (callback)
פונקציה אופציונלי
הפרמטר
callback
נראה כך:() => void
החזרות
-
הבטחה<Empty>
Chrome 116 ואילךיש תמיכה ב-Promises רק ב-Manifest V3 ואילך. בפלטפורמות אחרות צריך להשתמש ב-callbacks.
controlTransfer()
chrome.usb.controlTransfer(
handle: ConnectionHandle,
transferInfo: ControlTransferInfo,
callback?: function,
)
מבצע העברת בקרה במכשיר שצוין.
העברות של אמצעי בקרה מתייחסות למכשיר, לממשק או לנקודת קצה. כדי לבצע העברות לממשק או לנקודת קצה, צריך להצהיר על הבעלות על הממשק.
פרמטרים
-
נקודת אחיזה
חיבור פתוח למכשיר.
-
transferInfo
-
קריאה חוזרת (callback)
פונקציה אופציונלית
הפרמטר
callback
נראה כך:(info: TransferResultInfo) => void
-
מידע
-
החזרות
-
Promise<TransferResultInfo>
Chrome מגרסה 116 ואילךהבטחות נתמכות רק במניפסט מגרסה V3 ואילך, בפלטפורמות אחרות צריך להשתמש בקריאות חוזרות (callback).
findDevices()
chrome.usb.findDevices(
options: EnumerateDevicesAndRequestAccessOptions,
callback?: function,
)
הפונקציה מאתרת מכשירי USB שצוינו לפי מזהי הספק, המוצר (אופציונלי) והממשק, ואם ההרשאות מאפשרות, פותחת אותם לשימוש.
אם בקשת הגישה נדחית או אם אי אפשר לפתוח את המכשיר, המערכת לא תיצור ולא תוחזר.
קריאה ל-method הזה שקולה לקריאה ל-getDevices
ואז ל-openDevice
לכל מכשיר.
פרמטרים
-
המאפיינים שצריך לחפש במכשירי היעד.
-
קריאה חוזרת (callback)
פונקציה אופציונלית
הפרמטר
callback
נראה כך:(handles: ConnectionHandle[]) => void
-
כינויים
-
החזרות
-
Promise<ConnectionHandle[]>
Chrome 116 ואילךיש תמיכה ב-Promises רק ב-Manifest V3 ואילך. בפלטפורמות אחרות צריך להשתמש ב-callbacks.
getConfiguration()
chrome.usb.getConfiguration(
handle: ConnectionHandle,
callback?: function,
)
קבלת מתאר התצורה של התצורה שנבחרה כעת.
פרמטרים
-
נקודת אחיזה
חיבור פתוח למכשיר.
-
קריאה חוזרת (callback)
פונקציה אופציונלי
הפרמטר
callback
נראה כך:(config: ConfigDescriptor) => void
-
config
-
החזרות
-
Promise<ConfigDescriptor>
Chrome 116 ואילךיש תמיכה ב-Promises רק ב-Manifest V3 ואילך. בפלטפורמות אחרות צריך להשתמש ב-callbacks.
getConfigurations()
chrome.usb.getConfigurations(
device: Device,
callback?: function,
)
הפונקציה מחזירה את הקבוצה המלאה של מתארי תצורת המכשיר.
פרמטרים
-
מכשיר
Device
שממנו יש לאחזר תיאורים. -
קריאה חוזרת (callback)
פונקציה אופציונלי
הפרמטר
callback
נראה כך:(configs: ConfigDescriptor[]) => void
-
configs
-
החזרות
-
Promise<ConfigDescriptor[]>
Chrome 116 ואילךיש תמיכה ב-Promises רק ב-Manifest V3 ואילך. בפלטפורמות אחרות צריך להשתמש ב-callbacks.
getDevices()
chrome.usb.getDevices(
options: EnumerateDevicesOptions,
callback?: function,
)
מציגה את רשימת התקני ה-USB המחוברים.
פרמטרים
החזרות
-
Promise<Device[]>
Chrome מגרסה 116 ואילךהבטחות נתמכות רק במניפסט מגרסה V3 ואילך, בפלטפורמות אחרות צריך להשתמש בקריאות חוזרות (callback).
getUserSelectedDevices()
chrome.usb.getUserSelectedDevices(
options: DevicePromptOptions,
callback?: function,
)
מציגה למשתמש בורר מכשירים ומחזירה את המכשירים Device
שנבחרו. אם המשתמש יבטל את הבחירה, המכשירים בבורר יהיו ריקים. נדרשת תנועת משתמש כדי שתיבת הדו-שיח תוצג. ללא תנועת משתמש, הקריאה החוזרת תפעל כאילו המשתמש ביטל.
פרמטרים
החזרות
-
Promise<Device[]>
גרסה 116 ואילך של Chromeיש תמיכה ב-Promises רק ב-Manifest V3 ואילך. בפלטפורמות אחרות צריך להשתמש ב-callbacks.
interruptTransfer()
chrome.usb.interruptTransfer(
handle: ConnectionHandle,
transferInfo: GenericTransferInfo,
callback?: function,
)
מבצע העברת הפרעות במכשיר שצוין.
פרמטרים
-
נקודת אחיזה
חיבור פתוח למכשיר.
-
transferInfo
פרמטרים של העברה.
-
קריאה חוזרת (callback)
פונקציה אופציונלית
הפרמטר
callback
נראה כך:(info: TransferResultInfo) => void
-
מידע
-
החזרות
-
Promise<TransferResultInfo>
Chrome מגרסה 116 ואילךיש תמיכה ב-Promises רק ב-Manifest V3 ואילך. בפלטפורמות אחרות צריך להשתמש ב-callbacks.
isochronousTransfer()
chrome.usb.isochronousTransfer(
handle: ConnectionHandle,
transferInfo: IsochronousTransferInfo,
callback?: function,
)
ביצוע העברה איסוכרונית במכשיר הספציפי.
פרמטרים
-
נקודת אחיזה
חיבור פתוח למכשיר.
-
transferInfo
-
קריאה חוזרת (callback)
פונקציה אופציונלי
הפרמטר
callback
נראה כך:(info: TransferResultInfo) => void
-
מידע
-
החזרות
-
Promise<TransferResultInfo>
Chrome מגרסה 116 ואילךהבטחות נתמכות רק במניפסט מגרסה V3 ואילך, בפלטפורמות אחרות צריך להשתמש בקריאות חוזרות (callback).
listInterfaces()
chrome.usb.listInterfaces(
handle: ConnectionHandle,
callback?: function,
)
רשימה של כל הממשקים במכשיר USB.
פרמטרים
-
נקודת אחיזה
חיבור פתוח למכשיר.
-
קריאה חוזרת (callback)
פונקציה אופציונלית
הפרמטר
callback
נראה כך:(descriptors: InterfaceDescriptor[]) => void
-
מתארים
-
החזרות
-
Promise<InterfaceDescriptor[]>
Chrome 116 ואילךהבטחות נתמכות רק במניפסט מגרסה V3 ואילך, בפלטפורמות אחרות צריך להשתמש בקריאות חוזרות (callback).
openDevice()
chrome.usb.openDevice(
device: Device,
callback?: function,
)
פתיחת התקן USB שהוחזר על ידי getDevices
.
פרמטרים
-
מכשיר
Device
לפתיחה. -
קריאה חוזרת (callback)
פונקציה אופציונלי
הפרמטר
callback
נראה כך:(handle: ConnectionHandle) => void
-
נקודת אחיזה
-
החזרות
-
Promise<ConnectionHandle>
Chrome 116 ואילךהבטחות נתמכות רק במניפסט מגרסה V3 ואילך, בפלטפורמות אחרות צריך להשתמש בקריאות חוזרות (callback).
releaseInterface()
chrome.usb.releaseInterface(
handle: ConnectionHandle,
interfaceNumber: number,
callback?: function,
)
משיקים ממשק שהוצהרה עליו בעלות.
פרמטרים
-
נקודת אחיזה
חיבור פתוח למכשיר.
-
interfaceNumber
number
הממשק להשקה.
-
קריאה חוזרת (callback)
פונקציה אופציונלי
הפרמטר
callback
נראה כך:() => void
החזרות
-
הבטחה<Empty>
Chrome 116 ואילךיש תמיכה ב-Promises רק ב-Manifest V3 ואילך. בפלטפורמות אחרות צריך להשתמש ב-callbacks.
requestAccess()
chrome.usb.requestAccess(
device: Device,
interfaceId: number,
callback?: function,
)
הפונקציה הזו הייתה ספציפית ל-Chrome OS ולכן הפעלתה בפלטפורמות אחרות תיכשל. הפעולה הזו מתבצעת עכשיו באופן משתמע כחלק מ-openDevice
, והפונקציה הזו תחזיר את הערך true
בכל הפלטפורמות.
מבקש מברוקר ההרשאות גישה למכשיר ש-Chrome OS תבע עליו בעלות, אם לא נתבעה בעלות על הממשק הנתון במכשיר.
פרמטרים
-
מכשיר
Device
שאליו צריך לבקש גישה. -
interfaceId
number
הממשק הספציפי המבוקש.
-
קריאה חוזרת (callback)
פונקציה אופציונלית
הפרמטר
callback
נראה כך:(success: boolean) => void
-
הצלחה
בוליאני
-
החזרות
-
Promise<boolean>
Chrome 116 ואילךהבטחות נתמכות רק במניפסט מגרסה V3 ואילך, בפלטפורמות אחרות צריך להשתמש בקריאות חוזרות (callback).
resetDevice()
chrome.usb.resetDevice(
handle: ConnectionHandle,
callback?: function,
)
המערכת מנסה לאפס את מכשיר ה-USB. אם האיפוס נכשל, נקודת האחיזה הנתונה של החיבור תיסגר והתקן ה-USB ייראה מנותק ואז יתחבר מחדש. במקרה כזה, צריך לבצע קריאה חוזרת ל-getDevices
או ל-findDevices
כדי לקבל את המכשיר.
פרמטרים
-
נקודת אחיזה
נקודת אחיזה לחיבור לאיפוס.
-
קריאה חוזרת (callback)
פונקציה אופציונלית
הפרמטר
callback
נראה כך:(success: boolean) => void
-
הצלחה
בוליאני
-
החזרות
-
Promise<boolean>
Chrome מגרסה 116 ואילךהבטחות נתמכות רק במניפסט מגרסה V3 ואילך, בפלטפורמות אחרות צריך להשתמש בקריאות חוזרות (callback).
setConfiguration()
chrome.usb.setConfiguration(
handle: ConnectionHandle,
configurationValue: number,
callback?: function,
)
בוחרים הגדרת מכשיר.
הפונקציה הזו מאפסת את המכשיר ביעילות על ידי בחירה באחת מההגדרות הזמינות במכשיר. רק ערכי תצורה שגדולים מ-0
תקפים, אבל במכשירים מסוימים עם באגים יש הגדרת תצורה שפועלת עם הערך 0
, ולכן הערך הזה מותר.
פרמטרים
-
נקודת אחיזה
חיבור פתוח למכשיר.
-
configurationValue
number
-
קריאה חוזרת (callback)
פונקציה אופציונלית
הפרמטר
callback
נראה כך:() => void
החזרות
-
הבטחה<Empty>
גרסה 116 ואילך של Chromeהבטחות נתמכות רק במניפסט מגרסה V3 ואילך, בפלטפורמות אחרות צריך להשתמש בקריאות חוזרות (callback).
setInterfaceAlternateSetting()
chrome.usb.setInterfaceAlternateSetting(
handle: ConnectionHandle,
interfaceNumber: number,
alternateSetting: number,
callback?: function,
)
בחירת הגדרה חלופית בממשק שצוין בעבר.
פרמטרים
-
נקודת אחיזה
חיבור פתוח למכשיר שבו נתבעה בעלות על הממשק הזה.
-
interfaceNumber
number
הממשק שרוצים להגדיר.
-
alternateSetting
number
ההגדרה החלופית שצריך להגדיר.
-
קריאה חוזרת (callback)
פונקציה אופציונלית
הפרמטר
callback
נראה כך:() => void
החזרות
-
הבטחה<Empty>
Chrome 116 ואילךהבטחות נתמכות רק במניפסט מגרסה V3 ואילך, בפלטפורמות אחרות צריך להשתמש בקריאות חוזרות (callback).
אירועים
onDeviceAdded
chrome.usb.onDeviceAdded.addListener(
callback: function,
)
אירוע שנוצר כשמכשיר נוסף למערכת. אירועים משודרים רק לאפליקציות ולתוספים שיש להם הרשאת גישה למכשיר. יכול להיות שההרשאה ניתנה בזמן ההתקנה, כשהמשתמש אישר הרשאה אופציונלית (ראו permissions.request
), או דרך getUserSelectedDevices
.
פרמטרים
-
קריאה חוזרת (callback)
פונקציה
הפרמטר
callback
נראה כך:(device: Device) => void
-
מכשיר
-
onDeviceRemoved
chrome.usb.onDeviceRemoved.addListener(
callback: function,
)
אירוע שנוצר כשמכשיר מוסר מהמערכת. ראו onDeviceAdded
לגבי אילו אירועים נשלחים.