UsbdClient

概述

USB驱动客户端类。

起始版本: 3.0

相关模块:USB

汇总

Public 成员函数

名称 描述
OpenDevice (const UsbDev &dev) 打开设备,建立连接。
CloseDevice (const UsbDev &dev) 关闭设备,释放与设备相关的所有系统资源。
GetDeviceDescriptor (const UsbDev &dev, std::vector< uint8_t > &descriptor) 获取设备描述符。
GetStringDescriptor (const UsbDev &dev, uint8_t descId, std::vector< uint8_t > &descriptor) 根据String ID获取设备的字符串描述符。
GetConfigDescriptor (const UsbDev &dev, uint8_t descId, std::vector< uint8_t > &descriptor) 根据config ID获取设备的配置描述符config。
GetRawDescriptor (const UsbDev &dev, std::vector< uint8_t > &descriptor) 获取原始描述符。
GetFileDescriptor (const UsbDev &dev, int32_t &fd) 获取文件描述符。
SetConfig (const UsbDev &dev, uint8_t configIndex) 设置当前的config信息。
GetConfig (const UsbDev &dev, uint8_t &configIndex) 获取当前的config信息。
ClaimInterface (const UsbDev &dev, uint8_t interfaceid, uint8_t force) 打开接口,并声明独占接口,必须在数据传输前执行。
ReleaseInterface (const UsbDev &dev, uint8_t interfaceid) 关闭接口,释放接口的占用,在停止数据传输后执行。
SetInterface (const UsbDev &dev, uint8_t interfaceid, uint8_t altIndex) 设置指定接口的备选设置,用于在具有相同ID但不同备用设置的两个接口之间进行选择。
BulkTransferRead (const UsbDev &dev, const UsbPipe &pipe, int32_t timeout, std::vector< uint8_t > &data) 在给定端点上执行批量数据读取,返回读取的数据和长度,端点方向必须为数据读取,可以设置超时时间。
BulkTransferWrite (const UsbDev &dev, const UsbPipe &pipe, int32_t timeout, const std::vector< uint8_t > &data) 在给定端点上执行批量数据写入, 返回读取的数据和长度,端点方向必须为数据写入。
ControlTransfer (const UsbDev &dev, const UsbCtrlTransfer &ctrl, std::vector< uint8_t > &data) 对此设备执行端点零的控制事务,传输方向由请求类型决定。 如果requestType& USB_ENDPOINT_DIR_MASK是USB_DIR_OUT ,则传输是写入,如果是USB_DIR_IN ,则传输是读取。
InterruptTransferRead (const UsbDev &dev, const UsbPipe &pipe, int32_t timeout, std::vector< uint8_t > &data) 在给定端点上执行中断数据读取, 返回读取的数据和长度,端点方向必须为数据读取。
InterruptTransferWrite (const UsbDev &dev, const UsbPipe &pipe, int32_t timeout, std::vector< uint8_t > &data) 在给定端点上执行中断数据写入, 返回读取的数据和长度,端点方向必须为数据写入。
IsoTransferRead (const UsbDev &dev, const UsbPipe &pipe, int32_t timeout, std::vector< uint8_t > &data) 在给定端点上执行等时数据读取, 返回读取的数据和长度,端点方向必须为数据读取。
IsoTransferWrite (const UsbDev &dev, const UsbPipe &pipe, int32_t timeout, std::vector< uint8_t > &data) 在给定端点上执行等时数据写入, 返回读取的数据和长度,端点方向必须为数据写入。
RequestQueue (const UsbDev &dev, const UsbPipe &pipe, const std::vector< uint8_t > &clientData, const std::vector< uint8_t > &buffer) 将指定的端点进行异步数据发送或者接收请求,数据传输方向由端点方向决定。
RequestWait (const UsbDev &dev, std::vector< uint8_t > &clientData, std::vector< uint8_t > &buffer, int32_t timeout) 等待RequestQueue异步请求的操作结果。
RequestCancel (const UsbDev &dev, const UsbPipe &pipe) 取消待处理的数据请求。
GetCurrentFunctions (int32_t &funcs) 获取从设备支持的功能列表(按位域表示)(从设备)。
SetCurrentFunctions (int32_t funcs) 设置从设备支持的功能列表(按位域表示)(从设备)。
SetPortRole (int32_t portId, int32_t powerRole, int32_t dataRole) 设置port端口的角色。
QueryPort (int32_t &portId, int32_t &powerRole, int32_t &dataRole, int32_t &mode) 查询port端口的当前设置。
BindUsbdSubscriber (const sptr< UsbdSubscriber > &subscriber) 绑定订阅者。
UnbindUsbdSubscriber (const sptr< UsbdSubscriber > &subscriber) 解绑订阅者。
RegBulkCallback (const UsbDev &dev, const UsbPipe &pipe, const sptr< IRemoteObject > &cb) 注册批量传输异步回调函数。
UnRegBulkCallback (const UsbDev &dev, const UsbPipe &pipe) 注销批量传输异步回调函数。
BulkRead (const UsbDev &dev, const UsbPipe &pipe, sptr< Ashmem > &ashmem) 批量传输异步读数据。
BulkWrite (const UsbDev &dev, const UsbPipe &pipe, sptr< Ashmem > &ashmem) 批量传输异步写数据。
BulkCancel (const UsbDev &dev, const UsbPipe &pipe) 批量传输异步取消接口,用于取消当前接口的异步批量读写操作。

静态 Public 成员函数

名称 描述
GetInstance () USB驱动类获取实例。

成员函数说明

BindUsbdSubscriber()

int32_t UsbdClient::BindUsbdSubscriber (const sptr< UsbdSubscriber > & subscriber)

描述

绑定订阅者。

起始版本: 3.0

参数:

名称 描述
subscriber 输入参数,订阅者信息,详见UsbdSubscriber

返回:

0 表示操作成功。

非零值 表示操作失败。

BulkCancel()

int32_t UsbdClient::BulkCancel (const UsbDev & dev, const UsbPipe & pipe )

描述

批量传输异步取消接口,用于取消当前接口的异步批量读写操作。

起始版本: 3.0

参数:

名称 描述
dev 输入参数,USB设备地址信息,详见UsbDev
pipe 输入参数,USB设备pipe信息,详见UsbPipe

返回:

0 表示操作成功。

非零值 表示操作失败。

BulkRead()

int32_t UsbdClient::BulkRead (const UsbDev & dev, const UsbPipe & pipe, sptr< Ashmem > & ashmem )

描述

批量传输异步读数据。

起始版本: 3.0

参数:

名称 描述
dev 输入参数,USB设备地址信息,详见UsbDev
pipe 输入参数,USB设备pipe信息,详见UsbPipe
ashmem 输出参数,为共享内存,用于存放读取的数据。

返回:

0 表示操作成功。

非零值 表示操作失败。

BulkTransferRead()

int32_t UsbdClient::BulkTransferRead (const UsbDev & dev, const UsbPipe & pipe, int32_t timeout, std::vector< uint8_t > & data )

描述

在给定端点上执行批量数据读取,返回读取的数据和长度,端点方向必须为数据读取,可以设置超时时间。

起始版本: 3.0

参数:

名称 描述
dev 输入参数,USB设备地址信息,详见UsbDev
pipe 输入参数,USB设备pipe信息,详见UsbPipe
timeout 输入参数,超时时间。
data 输出参数,获取写入的数据。

返回:

0 表示操作成功。

非零值 表示操作失败。

BulkTransferWrite()

int32_t UsbdClient::BulkTransferWrite (const UsbDev & dev, const UsbPipe & pipe, int32_t timeout, const std::vector< uint8_t > & data )

描述

在给定端点上执行批量数据写入, 返回读取的数据和长度,端点方向必须为数据写入。

起始版本: 3.0

参数:

名称 描述
dev 输入参数,USB设备地址信息,详见UsbDev
pipe 输入参数,USB设备pipe信息,详见UsbPipe
timeout 输入参数,超时时间。
data 输入参数,写入的数据。

返回:

0 表示操作成功。

非零值 表示操作失败。

BulkWrite()

int32_t UsbdClient::BulkWrite (const UsbDev & dev, const UsbPipe & pipe, sptr< Ashmem > & ashmem )

描述

批量传输异步写数据。

起始版本: 3.0

参数:

名称 描述
dev 输入参数,USB设备地址信息,详见UsbDev
pipe 输入参数,USB设备pipe信息,详见UsbPipe
ashmem 输入参数,为共享内存,用于存放需要写入的数据。

返回:

0 表示操作成功。

非零值 表示操作失败。

ClaimInterface()

int32_t UsbdClient::ClaimInterface (const UsbDev & dev, uint8_t interfaceid, uint8_t force )

描述

打开接口,并声明独占接口,必须在数据传输前执行。

起始版本: 3.0

参数:

名称 描述
dev 输入参数,USB设备地址信息,详见UsbDev
interfaceid 输入参数,USB设备interface ID。
force 输入参数,是否强制: 1强制 0不强制。

返回:

0 表示操作成功。

非零值 表示操作失败。

CloseDevice()

int32_t UsbdClient::CloseDevice (const UsbDev & dev)

描述

关闭设备,释放与设备相关的所有系统资源。

起始版本: 3.0

参数:

名称 描述
dev 输入参数,USB设备地址信息,详见UsbDev

返回:

0 表示操作成功。

非零值 表示操作失败。

ControlTransfer()

int32_t UsbdClient::ControlTransfer (const UsbDev & dev, const UsbCtrlTransfer & ctrl, std::vector< uint8_t > & data )

描述

对此设备执行端点零的控制事务,传输方向由请求类型决定。 如果requestType& USB_ENDPOINT_DIR_MASK是USB_DIR_OUT ,则传输是写入,如果是USB_DIR_IN ,则传输是读取。

起始版本: 3.0

参数:

名称 描述
dev 输入参数,USB设备地址信息,详见UsbDev
ctrl 输入参数,USB设备控制数据包结构,详见UsbCtrlTransfer
data 输入/输出参数,读取/写入的数据。

返回:

0 表示操作成功。

非零值 表示操作失败。

GetConfig()

int32_t UsbdClient::GetConfig (const UsbDev & dev, uint8_t & configIndex )

描述

获取当前的config信息。

起始版本: 3.0

参数:

名称 描述
dev 输入参数,USB设备地址信息,详见UsbDev
configIndex 输出参数,USB设备config信息。

返回:

0 表示操作成功。

非零值 表示操作失败。

GetConfigDescriptor()

int32_t UsbdClient::GetConfigDescriptor (const UsbDev & dev, uint8_t descId, std::vector< uint8_t > & descriptor )

描述

根据config ID获取设备的配置描述符config。

起始版本: 3.0

参数:

名称 描述
dev 输入参数,USB设备地址信息,详见UsbDev
descId 输入参数,USB的config ID。
descriptor 输出参数,获取USB设备config信息。

返回:

0 表示操作成功。

非零值 表示操作失败。

GetCurrentFunctions()

int32_t UsbdClient::GetCurrentFunctions (int32_t & funcs)

描述

获取从设备支持的功能列表(按位域表示)(从设备)。

起始版本: 3.0

参数:

名称 描述
funcs 输出参数,获取当前设备的function的值。

返回:

0 表示操作成功。

非零值 表示操作失败。

GetDeviceDescriptor()

int32_t UsbdClient::GetDeviceDescriptor (const UsbDev & dev, std::vector< uint8_t > & descriptor )

描述

获取设备描述符。

起始版本: 3.0

参数:

名称 描述
dev 输入参数,USB设备地址信息,详见UsbDev
descriptor 输出参数,USB设备描述符信息。

返回:

0 表示操作成功。

非零值 表示操作失败。

GetFileDescriptor()

int32_t UsbdClient::GetFileDescriptor (const UsbDev & dev, int32_t & fd )

描述

获取文件描述符。

起始版本: 3.0

参数:

名称 描述
dev 输入参数,USB设备地址信息,详见UsbDev
fd 输出参数,USB设备文件描述符。

返回:

0 表示操作成功。

非零值 表示操作失败。

GetInstance()

static UsbdClient & UsbdClient::GetInstance ()

描述

USB驱动类获取实例。

起始版本: 3.0

GetRawDescriptor()

int32_t UsbdClient::GetRawDescriptor (const UsbDev & dev, std::vector< uint8_t > & descriptor )

描述

获取原始描述符。

起始版本: 3.0

参数:

名称 描述
dev 输入参数,USB设备地址信息,详见UsbDev
descriptor 输出参数,USB设备原始描述符。

返回:

0 表示操作成功。

非零值 表示操作失败。

GetStringDescriptor()

int32_t UsbdClient::GetStringDescriptor (const UsbDev & dev, uint8_t descId, std::vector< uint8_t > & descriptor )

描述

根据String ID获取设备的字符串描述符。

起始版本: 3.0

参数:

名称 描述
dev 输入参数,USB设备地址信息,详见UsbDev
descId 输入参数,USB的string ID。
descriptor 输出参数,获取USB设备config信息。

返回:

0 表示操作成功。

非零值 表示操作失败。

InterruptTransferRead()

int32_t UsbdClient::InterruptTransferRead (const UsbDev & dev, const UsbPipe & pipe, int32_t timeout, std::vector< uint8_t > & data )

描述

在给定端点上执行中断数据读取, 返回读取的数据和长度,端点方向必须为数据读取。

起始版本: 3.0

参数:

名称 描述
dev 输入参数,USB设备地址信息,详见UsbDev
pipe 输入参数,USB设备pipe信息,详见UsbPipe
timeout 输入参数,超时时间。
data 输出参数,读取的数据。

返回:

0 表示操作成功。

非零值 表示操作失败。

InterruptTransferWrite()

int32_t UsbdClient::InterruptTransferWrite (const UsbDev & dev, const UsbPipe & pipe, int32_t timeout, std::vector< uint8_t > & data )

描述

在给定端点上执行中断数据写入, 返回读取的数据和长度,端点方向必须为数据写入。

起始版本: 3.0

参数:

名称 描述
dev 输入参数,USB设备地址信息,详见UsbDev
pipe 输入参数,USB设备pipe信息,详见UsbPipe
timeout 输入参数,超时时间。
data 输入参数,写入的数据。

返回:

0 表示操作成功。

非零值 表示操作失败。

IsoTransferRead()

int32_t UsbdClient::IsoTransferRead (const UsbDev & dev, const UsbPipe & pipe, int32_t timeout, std::vector< uint8_t > & data )

描述

在给定端点上执行等时数据读取, 返回读取的数据和长度,端点方向必须为数据读取。

起始版本: 3.0

参数:

名称 描述
dev 输入参数,USB设备地址信息,详见UsbDev
pipe 输入参数,USB设备pipe信息,详见UsbPipe
timeout 输入参数,超时时间。
data 输出参数,读取的数据。

返回:

0 表示操作成功。

非零值 表示操作失败。

IsoTransferWrite()

int32_t UsbdClient::IsoTransferWrite (const UsbDev & dev, const UsbPipe & pipe, int32_t timeout, std::vector< uint8_t > & data )

描述

在给定端点上执行等时数据写入, 返回读取的数据和长度,端点方向必须为数据写入。

起始版本: 3.0

参数:

名称 描述
dev 输入参数,USB设备地址信息,详见UsbDev
pipe 输入参数,USB设备pipe信息,详见UsbPipe
timeout 输入参数,超时时间。
data 输入参数,读取的数据。

返回:

0 表示操作成功。

非零值 表示操作失败。

OpenDevice()

int32_t UsbdClient::OpenDevice (const UsbDev & dev)

描述

打开设备,建立连接。

起始版本: 3.0

参数:

名称 描述
dev 输入参数,USB设备地址信息,详见UsbDev

返回:

0 表示操作成功。

非零值 表示操作失败。

QueryPort()

int32_t UsbdClient::QueryPort (int32_t & portId, int32_t & powerRole, int32_t & dataRole, int32_t & mode )

描述

查询port端口的当前设置。

起始版本: 3.0

参数:

名称 描述
portId 输出参数,port接口ID。
powerRole 输出参数,电源角色的值。
dataRole 输出参数,数据角色的值。
mode 输出参数,模式的值。

返回:

0 表示操作成功。

非零值 表示操作失败。

RegBulkCallback()

int32_t UsbdClient::RegBulkCallback (const UsbDev & dev, const UsbPipe & pipe, const sptr< IRemoteObject > & cb )

描述

注册批量传输异步回调函数。

起始版本: 3.0

参数:

名称 描述
dev 输入参数,USB设备地址信息,详见UsbDev
pipe 输入参数,USB设备pipe信息,详见UsbPipe
cb 输入参数,回调函数对象的引用。

返回:

0 表示操作成功。

非零值 表示操作失败。

ReleaseInterface()

int32_t UsbdClient::ReleaseInterface (const UsbDev & dev, uint8_t interfaceid )

描述

关闭接口,释放接口的占用,在停止数据传输后执行。

起始版本: 3.0

参数:

名称 描述
dev 输入参数,USB设备地址信息,详见UsbDev
interfaceid 输入参数,USB设备interface ID。

返回:

0 表示操作成功。

非零值 表示操作失败。

RequestCancel()

int32_t UsbdClient::RequestCancel (const UsbDev & dev, const UsbPipe & pipe )

描述

取消待处理的数据请求。

起始版本: 3.0

参数:

名称 描述
dev 输入参数,USB设备地址信息,详见UsbDev
pipe 输入参数,USB设备pipe信息,详见UsbPipe

返回:

0 表示操作成功。

非零值 表示操作失败。

RequestQueue()

int32_t UsbdClient::RequestQueue (const UsbDev & dev, const UsbPipe & pipe, const std::vector< uint8_t > & clientData, const std::vector< uint8_t > & buffer )

描述

将指定的端点进行异步数据发送或者接收请求,数据传输方向由端点方向决定。

起始版本: 3.0

参数:

名称 描述
dev 输入参数,USB设备地址信息,详见UsbDev
pipe 输入参数,USB设备pipe信息,详见UsbPipe
clientData 输入参数,用户数据。
buffer 输入参数,传输的数据。

返回:

0 表示操作成功。

非零值 表示操作失败。

RequestWait()

int32_t UsbdClient::RequestWait (const UsbDev & dev, std::vector< uint8_t > & clientData, std::vector< uint8_t > & buffer, int32_t timeout )

描述

等待RequestQueue异步请求的操作结果。

起始版本: 3.0

参数:

名称 描述
dev 输入参数,USB设备地址信息,详见UsbDev
clientData 输入参数,用户数据。
buffer 输入参数,传输数据。
timeout 输入参数,超时时间。

返回:

0 表示操作成功。

非零值 表示操作失败。

SetConfig()

int32_t UsbdClient::SetConfig (const UsbDev & dev, uint8_t configIndex )

描述

设置当前的config信息。

起始版本: 3.0

参数:

名称 描述
dev 输入参数,USB设备地址信息,详见UsbDev
configIndex 输入参数,USB设备config信息。

返回:

0 表示操作成功。

非零值 表示操作失败。

SetCurrentFunctions()

int32_t UsbdClient::SetCurrentFunctions (int32_t funcs)

描述

设置从设备支持的功能列表(按位域表示)(从设备)。

起始版本: 3.0

参数:

名称 描述
funcs 输入参数,传入设备支持的function的值。

返回:

0 表示操作成功。

非零值 表示操作失败。

SetInterface()

int32_t UsbdClient::SetInterface (const UsbDev & dev, uint8_t interfaceid, uint8_t altIndex )

描述

设置指定接口的备选设置,用于在具有相同ID但不同备用设置的两个接口之间进行选择。

起始版本: 3.0

参数:

名称 描述
dev 输入参数,USB设备地址信息,详见UsbDev
interfaceid 输入参数,USB设备interface ID。
altIndex 输入参数,interface的AlternateSetting信息。

返回:

0 表示操作成功。

非零值 表示操作失败。

SetPortRole()

int32_t UsbdClient::SetPortRole (int32_t portId, int32_t powerRole, int32_t dataRole )

描述

设置port端口的角色。

起始版本: 3.0

参数:

名称 描述
portId 输入参数,port接口ID。
powerRole 输入参数,电源角色的值。
dataRole 输入参数,数据角色的值。

返回:

0 表示操作成功。

非零值 表示操作失败。

UnbindUsbdSubscriber()

int32_t UsbdClient::UnbindUsbdSubscriber (const sptr< UsbdSubscriber > & subscriber)

描述

解绑订阅者。

起始版本: 3.0

参数:

名称 描述
subscriber 输入参数,订阅者信息,详见UsbdSubscriber

返回:

0 表示操作成功。

非零值 表示操作失败。

UnRegBulkCallback()

int32_t UsbdClient::UnRegBulkCallback (const UsbDev & dev, const UsbPipe & pipe )

描述

注销批量传输异步回调函数。

起始版本: 3.0

参数:

名称 描述
dev 输入参数,USB设备地址信息,详见UsbDev
pipe 输入参数,USB设备pipe信息,详见UsbPipe

返回:

0 表示操作成功。

非零值 表示操作失败。