USB服务子系统使用指导

下面使用步骤以bulktransfer为例。

使用步骤

  1. 获取usb service实例
static OHOS::USB::UsbSrvClient &g_usbClient = OHOS::USB::UsbSrvClient::GetInstance();
  1. 获取usb设备列表
std::vector<OHOS::USB::UsbDevice> deviceList;
int32_t ret = g_usbClient.GetDevices(deviceList);
  1. 申请设备权限
int32_t ret = g_usbClient.RequestRight(device.GetName());
  1. 打开设备
USBDevicePipe pip;
int32_t et = g_usbClient.OpenDevice(device, pip);
  1. 配置设备接口
ret = g_usbClient.ClaimInterface(pip, interface, true);
interface为deviceList中device的interface。
  1. 数据传输
srvClient.BulkTransfer(pipe, endpoint, vdata, timeout);

pipe为打开设备后的数据传输通道,endpoint为device中数据传输的端点,vdata是需要传输或读取的二进制数据块,timeout为传输超时时长.

  1. 关闭设备
ret = g_usbClient.Close(pip);