1**USB HDI API 接口** 2 3| C++接口申明 | C++接口描述 | 4| ------------------------------------------------------------ | ------------------------------------------------------------ | 5| int32_t OpenDevice(const UsbDev &dev); | 打开设备,建立连接 | 6| int32_t CloseDevice(const UsbDev &dev); | 关闭设备,释放与设备相关的所有系统资源 | 7| int32_t GetDeviceDescriptor(const UsbDev &dev, std::vector<uint8_t> &decriptor); | 获取设备描述符 | 8| int32_t GetConfigDescriptor(const UsbDev &dev, uint8_t descId, std::vector<uint8_t> &decriptor); | 获取设备的配置描述符 | 9| int32_t GetStringDescriptor(const UsbDev &dev, uint8_t descId, std::vector<uint8_t> &decriptor); | 获取设备的字符串描述符 | 10| int32_t SetConfig(const UsbDev &dev, uint8_t configIndex); | 设置设备当前使用的配置,通过配置值进行指定 | 11| int32_t GetConfig(const UsbDev &dev, uint8_t &configIndex); | 获取当前生效的配置值 | 12| int32_t ClaimInterface(const UsbDev &dev, uint8_t interfaceid); | 打开接口,并申明独占接口,必须在数据传输前执行 | 13| int32_t ReleaseInterface(const UsbDev &dev, uint8_t interfaceid); | 关闭接口,释放接口的占用,在停止数据传输后执行 | 14| int32_t SetInterface(const UsbDev &dev, uint8_t interfaceid, uint8_t altIndex); | 设置指定接口的备选设置,用于在具有相同ID但不同备用设置的两个接口之间进行选择 | 15| int32_t BulkTransferRead(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout, std::vector<uint8_t> &data); | 在给定端点上执行批量数据读取, 返回读取的数据和长度,端点方向必须为数据读取 | 16| int32_t BulkTransferWrite(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout, const std::vector<uint8_t> &data); | 在给定端点上执行批量数据写入, 返回读取的数据和长度,端点方向必须为数据写入 | 17| int32_t ControlTransfer(const UsbDev &dev, const UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data); | 对此设备执行端点零的控制事务,传输方向由请求类型决定。 如果requestType& USB_ENDPOINT_DIR_MASK是USB_DIR_OUT ,则传输是写入,如果是USB_DIR_IN ,则传输是读取。 | 18| int32_t InterruptTransferRead(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout, <br/> std::vector<uint8_t> &data); | 在给定端点上执行中断数据读取, 返回读取的数据和长度,端点方向必须为数据读取 | 19| int32_t InterruptTransferWrite(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout, <br/> std::vector<uint8_t> &data); | 在给定端点上执行中断数据写入, 返回读取的数据和长度,端点方向必须为数据写入 | 20| int32_t IsoTransferRead(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout, std::vector<uint8_t> &data); | 在给定端点上执行等时数据读取, 返回读取的数据和长度,端点方向必须为数据读取 | 21| int32_t IsoTransferWrite(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout, std::vector<uint8_t> &data); | 在给定端点上执行等时数据写入, 返回读取的数据和长度,端点方向必须为数据写入 | 22| int32_t RequestQueue(const UsbDev &dev, const UsbPipe &pipe, const std::vector<uint8_t> &clientData, <br/> const std::vector<uint8_t> &buffer); | 将指定的端点进行异步数据发送或者接收请求,数据传输方向由端点方向决定 | 23| int32_t<br/> RequestWait(const UsbDev &dev, std::vector<uint8_t> &clientData, std::vector<uint8_t> &buffer, int32_t timeout); | 等待RequestQueue异步请求的操作结果 | 24| int32_t RequestCancel(const UsbDev &dev, const UsbPipe &pipe); | 取消待处理的数据请求 | 25| int32_t SetPortRole(int32_t portId, int32_t powerRole, int32_t dataRole); | 设置端口工作模式(从设备) | 26| int32_t GetCurrentFunctions(int32_t &funcs); | 获取从设备支持的功能列表(按位域表示)(从设备) | 27| int32_t SetCurrentFunctions(int32_t funcs); | 设置从设备支持的功能列表(按位域表示)(从设备) | 28| int32_t QueryPort(int32_t &portId, int32_t &powerRole, int32_t &dataRole, int32_t &mode); | 查询端口的当前设置(从设备) | 29| int32_t BindUsbdSubscriber(const sptr<UsbdSubscriber> &subscriber); | 绑定订阅者 | 30| int32_t UnbindUsbdSubscriber(); | 解绑订阅者 | 31