UVC 状态中断端点
2023-07-11
1106
0
UVC视频控制接口VC可以选择性地支持中断端点,用于通知主机其相机拓扑结构内部各个终端、实例的状态- bStatusType:。所以如果中断端点存在,整个UVC视频控制接口中的所有拓扑单元状态信息的改变,都需要通过该中断端点来通知主机。
上面所说的UVC控制接口中的中断端点是可选的,但在以下的三种情况下,这个中断端点是必须存在的:
- 该设备支持通过硬件触发静态图像的抓取。
- 设备实现任何自动更新控制(支持设备初始化时的更改的控制)。
- 该设备实现异步控制
中断端点包的大小是可变的,其包的大小取决于向主机上报中断状信息的数据大小,所以也就是中断源的产生者。
状态中断端点数据包的格式分为2种:数据源为视频控制接口或数据源为视频流接口。
当数据源为视频控制接口时:
typedef struct _VIDOE_CONTROL_INTERFACE_ENDPOINT_STATUS
{
UINT8 bStatusType;
UINT8 bOriginator;
UINT8 bEvent;
UINT8 bSelector;
UINT8 bAttribute;
UINT8 bValue[N];
}VIDOE_CONTROL_INTERFACE_ENDPOINT_STATUS;
- bStatusType:Bitmap/Number
- D7..4: 保留
- D3..0: 中断源
- 0:保留
- 1:视频控制接口
- 2:视频流接口
- bOriginator:报告中断的终端、单元或接口的ID
- bEvent
- 0x00:控制改变
- 0x01-0xff:保留
- bSelector:控制改变。发出中断控制的选择子
- bAttribute: 控制改变的类型
- 0x00:控制值改变
- 0x01:控制信息改变
- 0x02:控制失败更改
- 0x03:控制最小改变
- 0x04:控制最大改变
- 0x05~0xff:保留
- bValue:
当数据源为视频流接口时:
typedef struct _VIDOE_STREAM_INTERFACE_ENDPOINT_STATUS
{
UINT8 bStatusType;
UINT8 bOriginator;
UINT8 bEvent;
UINT8 bValue[N];
}VIDOE_STREAM__INTERFACE_ENDPOINT_STATUS;
- bEvent
- 0x00:控钮(硬件静态抓图)
- 0x01~0xff:保留
- bValue:N=1
- 0x00:按钮接下
- 0x01: 按钮抬起
HID人机交互QQ群:564808376
UAC音频QQ群:218581009
UVC相机QQ群:331552032
BOT&UASP大容量存储QQ群:258159197
STC-USB单片机QQ群:315457461
USB技术交流QQ群2:580684376
USB技术交流QQ群:952873936