在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

鴻蒙開發設備管理:ohos.usb USB管理

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-07-05 17:34 ? 次閱讀

USB管理

本模塊主要提供管理USB設備的相關功能,包括查詢USB設備列表、批量數據傳輸、控制命令傳輸、權限控制等。

說明:
開發前請熟悉鴻蒙開發指導文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]
本模塊首批接口從API version 8開始支持。后續版本的新增接口,采用上角標單獨標記接口的起始版本。

導入模塊

import usb from "@ohos.usb";

usb.getDevices

getDevices(): Array>

獲取USB設備列表。

系統能力: SystemCapability.USB.USBManager

返回值:

類型說明
Array>設備信息列表。

示例:

let devicesList = usb.getDevices();
console.log(`devicesList = ${JSON.stringify(devicesList)}`);
//devicesList  返回的數據結構
//此處提供一個簡單的示例,如下
[
  {
    name: "1-1",
    serial: "",
    manufacturerName: "",
    productName: "",
    version: "",
    vendorId: 7531,
    productId: 2,
    clazz: 9,
    subclass: 0,
    protocol: 1,
    devAddress: 1,
    busNum: 1,
    configs: [
      {
        id: 1,
        attributes: 224,
        isRemoteWakeup: true,
        isSelfPowered: true,
        maxPower: 0,
        name: "1-1",
        interfaces: [
          {
            id: 0,
            protocol: 0,
            clazz: 9,
            subclass: 0,
            alternateSetting: 0,
            name: "1-1",
            endpoints: [
              {
                address: 129,
                attributes: 3,
                interval: 12,
                maxPacketSize: 4,
                direction: 128,
                number: 1,
                type: 3,
                interfaceId: 0,
              },
            ],
          },
        ],
      },
    ],
  },
]

usb.connectDevice

connectDevice(device: USBDevice): Readonly

打開USB設備。

需要調用[usb.getDevices]獲取設備信息以及device;再調用[usb.requestRight]獲取設備請求權限。

系統能力: SystemCapability.USB.USBManager

參數:

參數名類型必填說明
device[USBDevice]USB設備信息。

返回值:

類型說明
Readonly<[USBDevicePipe]>指定的傳輸通道對象。

示例:

let devicepipe= usb.connectDevice(device);
console.log(`devicepipe = ${JSON.stringify(devicepipe)}`);

usb.hasRight

hasRight(deviceName: string): boolean

判斷是否有權訪問該設備。

系統能力: SystemCapability.USB.USBManager

參數:

參數名類型必填說明
deviceNamestring設備名稱。

返回值:

類型說明
booleantrue表示有訪問設備的權限,false表示沒有訪問設備的權限。

示例:

let devicesName="1-1";
let bool = usb.hasRight(devicesName);
console.log(bool);

usb.requestRight

requestRight(deviceName: string): Promise

請求軟件包的臨時權限以訪問設備。

系統能力: SystemCapability.USB.USBManager

參數:

參數名類型必填說明
deviceNamestring設備名稱。

返回值:

類型說明
Promise獲取到true則表示軟件包的臨時權限已訪問成功, 獲取到false則表示軟件包的臨時權限已訪問失敗。

示例:

let devicesName="1-1";
usb.requestRight(devicesName).then((ret) = > {
  console.log(`requestRight = ${JSON.stringify(ret)}`);
});

usb.claimInterface

claimInterface(pipe: USBDevicePipe, iface: USBInterface, force?: boolean): number

注冊通信接口

需要調用[usb.getDevices]獲取設備信息以及interfaces;調用[usb.requestRight]獲取設備請求權限;調用[usb.connectDevice]接口得到devicepipe作為參數。

系統能力: SystemCapability.USB.USBManager

參數:

參數名類型必填說明
pipe[USBDevicePipe]用于確定總線號和設備地址。
iface[USBInterface]用于確定需要獲取接口的索引
forceboolean可選參數,是否強制獲取。默認值false ,表示不強制獲取。

返回值:

類型說明
number注冊通信接口成功返回0;注冊通信接口失敗返回其他錯誤碼。

示例:

let ret = usb.claimInterface(devicepipe, interfaces);
console.log(`claimInterface = ${ret}`);

usb.releaseInterface

releaseInterface(pipe: USBDevicePipe, iface: USBInterface): number

釋放注冊過的通信接口。

需要調用[usb.claimInterface]先獲取接口,才能使用此方法釋放接口。

系統能力: SystemCapability.USB.USBManager

參數:

參數名類型必填說明
pipe[USBDevicePipe]用于確定總線號和設備地址。
iface[USBInterface]用于確定需要釋放接口的索引。

返回值:

類型說明
number釋放接口成功返回0;釋放接口失敗返回其他錯誤碼。

示例:

let ret = usb.releaseInterface(devicepipe, interfaces);
console.log(`releaseInterface = ${ret}`);

usb.setConfiguration

setConfiguration(pipe: USBDevicePipe, config: USBConfig): number

設置設備配置。

需要調用[usb.getDevices]獲取設備信息以及config;調用[usb.requestRight]獲取設備請求權限;調用[usb.connectDevice]得到devicepipe作為參數。

系統能力: SystemCapability.USB.USBManager

參數:

參數名類型必填說明
pipe[USBDevicePipe]用于確定總線號和設備地址。
config[USBConfig]用于確定需要設置的配置。

返回值:

類型說明
number設置設備配置成功返回0;設置設備配置失敗返回其他錯誤碼。

示例:

let ret = usb.setConfiguration(devicepipe, config);
console.log(`setConfiguration = ${ret}`);

usb.setInterface

setInterface(pipe: USBDevicePipe, iface: USBInterface): number

設置設備接口。

需要調用[usb.getDevices]獲取設備列表以及interfaces;調用[usb.requestRight]獲取設備請求權限;調用[usb.connectDevice]得到devicepipe作為參數;調用[usb.claimInterface]注冊通信接口。

系統能力: SystemCapability.USB.USBManager

參數:

參數名類型必填說明
pipe[USBDevicePipe]用于確定總線號和設備地址。
iface[USBInterface]用于確定需要設置的接口。

返回值:

類型說明
number設置設備接口成功返回0;設置設備接口失敗返回其他錯誤碼。

示例:

let ret = usb.setInterface(devicepipe, interfaces);
console.log(`setInterface = ${ret}`);

usb.getRawDescriptor

getRawDescriptor(pipe: USBDevicePipe): Uint8Array

獲取原始的USB描述符。

需要調用[usb.getDevices]獲取設備列表;調用[usb.requestRight]獲取設備請求權限;調用[usb.connectDevice]接口得到devicepipe作為參數。

系統能力: SystemCapability.USB.USBManager

參數:

參數名類型必填說明
pipe[USBDevicePipe]用于確定總線號和設備地址。

返回值:

類型說明
Uint8Array返回獲取的原始數據;失敗返回undefined。

示例:

let ret = usb.getRawDescriptor(devicepipe);

usb.getFileDescriptor

getFileDescriptor(pipe: USBDevicePipe): number

獲取文件描述符。

需要調用[usb.getDevices]獲取設備列表;調用[usb.requestRight]獲取設備請求權限;調用[usb.connectDevice]接口得到devicepipe作為參數。

系統能力: SystemCapability.USB.USBManager

參數:

參數名類型必填說明
pipe[USBDevicePipe]用于確定總線號和設備地址。

返回值:

類型說明
number返回設備對應的文件描述符;失敗返回-1。

示例:

let ret = usb.getFileDescriptor(devicepipe);

usb.controlTransfer

controlTransfer(pipe: USBDevicePipe, contrlparam: USBControlParams, timeout?: number): Promise

控制傳輸。

需要調用[usb.getDevices]獲取設備列表;調用[usb.requestRight]獲取設備請求權限;調用[usb.connectDevice]接口得到devicepipe作為參數。

系統能力: SystemCapability.USB.USBManager

參數:

參數名類型必填說明
pipe[USBDevicePipe]用于確定設備。
contrlparam[USBControlParams]控制傳輸參數。
timeoutnumber超時時間,可選參數,默認為0不超時。

返回值:

類型說明
Promise獲取傳輸或接收到的數據塊大小, 獲取到-1則表示異常。

示例:

usb.controlTransfer(devicepipe, USBControlParams).then((ret) = > {
 console.log(`controlTransfer = ${JSON.stringify(ret)}`);
})

usb.bulkTransfer

bulkTransfer(pipe: USBDevicePipe, endpoint: USBEndpoint, buffer: Uint8Array, timeout?: number): Promise

批量傳輸。

需要調用[usb.getDevices]獲取設備信息列表以及endpoint;再調用[usb.requestRight]獲取設備請求權限;然后調用[usb.connectDevice]接口得到返回數據devicepipe之后,再次獲取接口[usb.claimInterface];再調用usb.bulkTransfer接口。

系統能力: SystemCapability.USB.USBManager

參數:

參數名類型必填說明
pipe[USBDevicePipe]用于確定設備。
endpoint[USBEndpoint]用于確定傳輸的端口
bufferUint8Array用于寫入或讀取的緩沖區。
timeoutnumber超時時間,可選參數,默認為0不超時。

返回值:

類型說明
Promise獲取傳輸或接收到的數據塊大小, 獲取到-1則表示異常。

示例:

//usb.getDevices 接口返回數據集合,取其中一個設備對象,并獲取權限 。
//把獲取到的設備對象作為參數傳入usb.connectDevice;當usb.connectDevice接口成功返回之后;
//才可以調用第三個接口usb.claimInterface.當usb.claimInterface 調用成功以后,再調用該接口。
usb.bulkTransfer(devicepipe, endpoint, buffer).then((ret) = > {
 console.log(`bulkTransfer = ${JSON.stringify(ret)}`);
});

usb.closePipe

closePipe(pipe: USBDevicePipe): number

關閉設備消息控制通道。

需要調用[usb.getDevices]獲取設備列表;調用[usb.requestRight]獲取設備請求權限;調用[usb.connectDevice]得到devicepipe作為參數。

系統能力: SystemCapability.USB.USBManager

參數:

參數名類型必填說明
pipe[USBDevicePipe]用于確定USB設備消息控制通道。

返回值:

類型說明
number關閉設備消息控制通道成功返回0;關閉設備消息控制通道失敗返回其他錯誤碼。

示例:

let ret = usb.closePipe(devicepipe);
console.log(`closePipe = ${ret}`);

USBEndpoint

通過USB發送和接收數據的端口。通過[USBInterface]獲取。

系統能力 :以下各項對應的系統能力均為 SystemCapability.USB.USBManager。

名稱參數類型說明
addressnumber端點地址。
attributesnumber端點屬性。
intervalnumber端點間隔。
maxPacketSizenumber端點最大數據包大小。
direction[USBRequestDirection]端點的方向。
numbernumber端點號。
typenumber端點類型。
interfaceIdnumber端點所屬的接口的唯一標識。

USBInterface

一個[USBConfig]中可以含有多個USBInterface,每個USBInterface提供一個功能。

系統能力 :以下各項對應的系統能力均為 SystemCapability.USB.USBManager。

名稱參數類型說明
idnumber接口的唯一標識。
protocolnumber接口的協議。
clazznumber設備類型。
subClassnumber設備子類。
alternateSettingnumber在同一個接口中的多個描述符中進行切換設置。
namestring接口名稱。
endpointsArray<[USBEndpoint]>當前接口所包含的端點。

USBConfig

USB配置,一個[USBDevice]中可以含有多個配置。

系統能力 :以下各項對應的系統能力均為 SystemCapability.USB.USBManager。

名稱參數類型說明
idnumber配置的唯一標識。
attributesnumber配置的屬性。
maxPowernumber最大功耗,以毫安為單位。
namestring配置的名稱,可以為空。
isRemoteWakeupboolean檢查當前配置是否支持遠程喚醒。
isSelfPoweredboolean檢查當前配置是否支持獨立電源
interfacesArray <[USBInterface]>配置支持的接口屬性。

USBDevice

USB設備信息。

系統能力 :以下各項對應的系統能力均為 SystemCapability.USB.USBManager。

名稱參數類型說明
busNumnumber總線地址。
devAddressnumber設備地址。
serialstring序列號。
namestring設備名字。
manufacturerNamestring產商信息。
productNamestring產品信息。
versionstring版本。
vendorIdnumber廠商ID。
productIdnumber產品ID。
clazznumber設備類。
subClassnumber設備子類。
protocolnumber設備協議碼。
configsArray<[USBConfig]>設備配置描述符信息。

USBDevicePipe

USB設備消息傳輸通道,用于確定設備。

系統能力 :以下各項對應的系統能力均為 SystemCapability.USB.USBManager。

名稱參數類型說明
busNumnumber總線地址。
devAddressnumber設備地址。

USBControlParams

控制傳輸參數。

系統能力 :以下各項對應的系統能力均為 SystemCapability.USB.USBManager。

名稱參數類型說明
requestnumber請求類型。
target[USBRequestTargetType]請求目標類型。
reqType[USBControlRequestType]請求控制類型。
valuenumber請求參數。
indexnumber請求參數value對應的索引值。
dataUint8Array用于寫入或讀取的緩沖區。

USBRequestTargetType

請求目標類型。

系統能力 :以下各項對應的系統能力均為 SystemCapability.USB.USBManager。

名稱默認值說明
USB_REQUEST_TARGET_DEVICE0設備。
USB_REQUEST_TARGET_INTERFACE1接口。
USB_REQUEST_TARGET_ENDPOINT2端點。
USB_REQUEST_TARGET_OTHER3其他。

USBControlRequestType

控制請求類型。

系統能力 :以下各項對應的系統能力均為 SystemCapability.USB.USBManager。

名稱默認值說明
USB_REQUEST_TYPE_STANDARD0標準。
USB_REQUEST_TYPE_CLASS1類。
USB_REQUEST_TYPE_VENDOR2廠商。HarmonyOSOpenHarmony鴻蒙文檔籽料:mau123789是v直接拿

搜狗高速瀏覽器截圖20240326151450.png

USBRequestDirection

請求方向。

系統能力 :以下各項對應的系統能力均為 SystemCapability.USB.USBManager。

名稱默認值說明
USB_REQUEST_DIR_TO_DEVICE0寫數據,主設備往從設備。
USB_REQUEST_DIR_FROM_DEVICE0x80讀數據,從設備往主設備。

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • usb
    usb
    +關注

    關注

    60

    文章

    8053

    瀏覽量

    269076
  • 鴻蒙
    +關注

    關注

    57

    文章

    2464

    瀏覽量

    43586
收藏 人收藏

    評論

    相關推薦

    設備管理系統新范式:區塊鏈存證+動態權限管理

    企業面對數字化轉型挑戰,設備管理面臨安全與靈活性問題。傳統設備管理方案漏洞頻出,數據易遭篡改,權限管理僵化。企業需構建區塊鏈存證+動態權限管理方案,提升
    的頭像 發表于 03-13 10:41 ?241次閱讀
    <b class='flag-5'>設備管理</b>系統新范式:區塊鏈存證+動態權限<b class='flag-5'>管理</b>

    設備管理系統,終結設備管理難題

    設備管理系統已突破傳統工具定位,進化為企業資產管理的數字神經中樞。通過"物聯感知-智能分析-決策優化"的閉環體系,實現設備管理從被動響應到主動預防、從經驗驅動到數據驅動的根本轉變。
    的頭像 發表于 03-04 10:51 ?249次閱讀
    <b class='flag-5'>設備管理</b>系統,終結<b class='flag-5'>設備管理</b>難題

    物聯網 + 設備管理,讓管理觸手可及

    物聯網技術快速發展,設備管理面臨三大挑戰:分散、數據孤島、安全隱患。中設智控采用分層架構和智能維護模式,提高設備管理效率和安全性。物聯網設備管理“三板斧”包括分布式管理、智能維護和數據
    的頭像 發表于 02-28 10:08 ?509次閱讀
    物聯網 + <b class='flag-5'>設備管理</b>,讓<b class='flag-5'>管理</b>觸手可及

    傳統 VS 智能,這款設備管理系統讓管理大不同

    本文探討了傳統設備管理與智能設備管理的對比及中設智控的實踐案例,揭示了設備管理系統的未來圖景。智能設備管理通過實時監控與預測性維護、全生命周期閉環
    的頭像 發表于 02-26 10:56 ?283次閱讀
    傳統 VS 智能,這款<b class='flag-5'>設備管理</b>系統讓<b class='flag-5'>管理</b>大不同

    設備管理體系實施指南

    設備管理體系在保障生產運營基石、搭建交流學習平臺以及助力打造標桿典范等方面具有重要意義。組織應全面實施設備管理體系,提高設備管理效率和效果。
    的頭像 發表于 12-18 10:38 ?508次閱讀
    <b class='flag-5'>設備管理</b>體系實施指南

    TSW14J56EVM無論是上電后,還是上電前將usb線與電腦連接,設備管理器都無法找到該設備,為什么?

    TSW14J56EVM無論是上電后,還是上電前將usb線與電腦連接,設備管理器都無法找到該設備,打開HSDC軟件顯示沒有設備。但是換成新采購的同樣的
    發表于 12-13 06:42

    基于物聯網的設備管理

    物聯網設備管理的重要性日益凸顯,設備數量激增帶來數據泄露風險。加強設備安全性、軟件升級與修復、身份驗證和互操作性是關鍵。物聯網設備管理需要跨異構設備
    的頭像 發表于 09-10 11:04 ?819次閱讀
    基于物聯網的<b class='flag-5'>設備管理</b>

    設備管理流程優化的優勢

    設備管理對企業生產效率、產品質量、成本控制和安全生產起著關鍵作用。但設備管理面臨挑戰,如種類繁多、數量龐大、位置分散等。因此,企業應采用科學的設備管理方法,建立設備管理系統,跟蹤
    的頭像 發表于 09-05 10:34 ?506次閱讀
    <b class='flag-5'>設備管理</b>流程優化的優勢

    設備管理系統:是什么、誰需要、推薦設備管理系統

    設備管理系統(EMS)在企業管理中愈發重要。中設智控設備管理系統以全生命周期管理為主,涵蓋預算、采購、維護等功能,支持移動端應用,降低備件儲備,提高
    的頭像 發表于 08-01 11:23 ?1159次閱讀
    <b class='flag-5'>設備管理</b>系統:是什么、誰需要、推薦<b class='flag-5'>設備管理</b>系統

    鴻蒙開發設備管理ohos.thermal 熱管理

    該模塊提供熱管理相關的接口,包括熱檔位查詢及注冊回調等功能。
    的頭像 發表于 07-05 09:53 ?524次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b><b class='flag-5'>設備管理</b>:<b class='flag-5'>ohos</b>.thermal 熱<b class='flag-5'>管理</b>

    鴻蒙開發設備管理ohos.multimodalInput.inputDevice 輸入設備

    輸入設備管理模塊,用于監聽輸入設備連接、斷開和變化,并查看輸入設備相關信息。比如監聽鼠標插拔,并獲取鼠標的id、name和指針移動速度等信息。
    的頭像 發表于 07-01 09:19 ?645次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b><b class='flag-5'>設備管理</b>:<b class='flag-5'>ohos</b>.multimodalInput.inputDevice 輸入<b class='flag-5'>設備</b>

    鴻蒙原生應用元服務開發-設備管理USB服務開發概覽

    基本概念 USB服務是應用訪問底層的一種設備抽象概念。開發者根據提供的USB API,可以獲取設備列表、控制
    發表于 06-11 10:26

    鴻蒙原生應用元服務開發-設備管理USB服務開發場景與接口

    場景介紹 Host模式下,可以獲取到已經連接的USB設備列表,并根據需要打開和關閉設備、控制設備權限、進行數據傳輸等。 接口說明 USB服務
    發表于 06-07 14:40

    鴻蒙原生應用元服務開發-設備管理USB服務開發步驟

    開發步驟 USB設備可作為Host設備連接Device設備進行數據傳輸。開發示例如下: 1.獲取
    發表于 06-06 15:50

    鴻蒙開發接口定制管理:【@ohos.enterpriseDeviceManager (企業設備管理)】

    以異步方法根據給定的包名和類名激活設備管理員應用,使用Callback形式返回是否激活成功。
    的頭像 發表于 06-05 09:24 ?671次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b>接口定制<b class='flag-5'>管理</b>:【@<b class='flag-5'>ohos</b>.enterpriseDeviceManager (企業<b class='flag-5'>設備管理</b>)】
    主站蜘蛛池模板: 一级免费片 | 1024手机看片国产 | 亚洲午夜在线视频 | 男人日女人视频免费看 | 日本不卡视频在线播放 | 亚洲第一中文字幕 | 操操操综合网 | 美国69bj| 日本免费色网站 | 亚洲乱码卡一卡二卡三永久 | 美女黄色在线看 | 日本久本草精品 | 亚洲国产成人久久一区久久 | 国产美女在线观看 | 天堂网www中文在线 天堂网传媒 | 亚洲精品美女 | 四虎影院精品在线观看 | 毛片不卡一区二区三区 | 中文字幕乱码人成乱码在线视频 | 四虎在线观看免费永久 | 欧美日本俄罗斯一级毛片 | 五月花综合| 午夜啪 | 中文在线最新版天堂 | 欧美日韩生活片 | 欧美黄色免费网站 | 国产精品午夜久久 | 久久99色 | 红怡院欧洲 | 丁香在线 | 好爽好黄的视频 | 天堂资源在线官网资源 | 色屁屁www影院免费观看视频 | 美女扒开尿囗给男生桶爽 | 色香影视| 人人艹人人插 | 欧美天天综合 | 天堂中文在线网 | 国产一区二区三区四卡 | 天天操夜夜操视频 | 色婷婷5月精品久久久久 |