SET_CUR/GET_CUR
设置请求SET_CUR
设置请求用于设置视频功能的相关属性,这些属性一般由相关的端点、接口来实现。
bmRequestType(1) | bRequest(1) | wValue(2) | wIndex(2) | wLength(2) | Data(0~N) |
---|---|---|---|---|---|
00100001(接口或实体) ————— 00100010(端点) |
SET_CUR | 见解释 | 实体ID(高字节)、接口(低字节) ————— 端点(低字节) |
参数长度 | 参数块 |
获取请求GET_CUR
获取请求用于视频功能的相关属性.
bmRequestType(1) | bRequest(1) | wValue(2) | wIndex(2) | wLength(2) | Data(0~N) |
---|---|---|---|---|---|
10100001(接口或实体) ————— 10100010(端点) |
GET_CUR GET_MIN GET_MAX GET_RES GET_LEN GET_INFO GET_DEF |
见解释 | 实体ID(高字节)、接口(低字节) ————— 端点(低字节) |
参数长度 | 参数块 |
bmRequestType字段(1字节)
D7,下一步数据的传输方向
0 = 主机到设备(SET请求)
1 = 设备到主机(GET请求)
D6-D5,命令的类型
00 = 标准请求命令
01 = 类请求命令(UVC规范中的请求属于类请求命令)
10 = 用户定义的请求命令
11 = 保留
D4-D0,命令接受者的类型
00000 = 接受者为设备(UVC无此值)
00001 = 接收者为接口(UVC规范中可以理解为VC,VS中拓扑结构中的端子,单元等)
00010 = 接受者为端点(UVC规范中为视频流接口VS的端点)
00011 = 其他接受者
其他值保留。
当接收者为接口时,本教程提供了相关的实例分析。详见:处理单元特定类请求示例和视频流接口控制请求示例。
bRequest字段(1)
请求命令,包括设置和获取。
- SET_CUR 设置性
- GET_CUR 获取当前属性
- GET_MIN 获取最小设置属性
- GET_MAX 获取最大设置属性
- GET_RES 获取分辨率属性
- GET_LEN 获取数据长度属性
- GET_INFO 获取设备支持的特定类请求属性
- GET_DEF 获取默认属性
wIndex字段(2字节)
Entity ID(高字节),接口或端点(低字节)。Entity ID是由UVC设备开发者指定的,该ID号能标识具体唯一的特定的功能单元,便于Host端的驱动能依次对设备内的不同功能单元进行配置与操作。
wValue字段(2字节)
UVC中大多数情况下wValue的取值都为控制选择器CS(高字节),低字节为零。
CS的取值受限于wIndex字段中的Entity ID。当Entity ID取不同值时则wValue字段取值也会有所不同。
wValue主要取值如下:
1)、当Entity ID值为VC Interface时:
选择子 | 值 |
---|---|
VC_CONTROL_UNDEFINED | 0x00 |
VC_VIDEO_POWER_MODE_CONTROL | 0x01 |
VC_REQUEST_ERROR_CODE_CONTROL | 0x02 |
Reserved | 0x03 |
2)当Entity ID值为Teminal时:
Control Selector | Value |
---|---|
TE_CONTROL_UNDEFINED | 0x00 |
3)当Entity ID值为Selector Unit时
Control Selector | Value |
---|---|
SU_CONTROL_UNDEFINED | 0x00 |
SU_INPUT_SELECT_CONTROL | 0x01 |
4)当Entity ID值为Processing Unit时:
Control Selector | Value |
---|---|
PU_CONTROL_UNDEFINED | 0x00 |
PU_BACKLIGHT_COMPENSATION_CONTROL | 0x01 |
PU_BRIGHTNESS_CONTROL | 0x02 |
PU_CONTRAST_CONTROL | 0x03 |
PU_GAIN_CONTROL | 0x04 |
PU_POWER_LINE_FREQUENCY_CONTROL | 0x05 |
PU_HUE_CONTROL | 0x06 |
PU_SATURATION_CONTROL | 0x07 |
PU_SHARPNESS_CONTROL | 0x08 |
PU_GAMMA_CONTROL | 0x09 |
PU_WHITE_BALANCE_TEMPERATURE_CONTROL | 0x0A |
PU_WHITE_BALANCE_TEMPERATURE_AUTO_CONTROL | 0x0B |
PU_WHITE_BALANCE_COMPONENT_CONTROL | 0x0C |
PU_WHITE_BALANCE_COMPONENT_AUTO_CONTROL | 0x0D |
PU_DIGITAL_MULTIPLIER_CONTROL | 0x0E |
PU_DIGITAL_MULTIPLIER_LIMIT_CONTROL | 0x0F |
PU_HUE_AUTO_CONTROL | 0x10 |
PU_ANALOG_VIDEO_STANDARD_CONTROL | 0x11 |
PU_ANALOG_LOCK_STATUS_CONTROL | 0x12 |
PU_CONTRAST_AUTO_CONTROL | 0x13 |
5)当Entity ID值为Camera Terminal时:
ControlSelector | Value |
---|---|
CT_CONTROL_UNDEFINED | 0x00 |
CT_SCANNING_MODE_CONTROL | 0x01 |
CT_AE_MODE_CONTROL | 0x02 |
CT_AE_PRIORITY_CONTROL | 0x03 |
CT_EXPOSURE_TIME_ABSOLUTE_CONTROL | 0x04 |
CT_EXPOSURE_TIME_RELATIVE_CONTROL | 0x05 |
CT_FOCUS_ABSOLUTE_CONTROL | 0x06 |
CT_FOCUS_RELATIVE_CONTROL | 0x07 |
CT_FOCUS_AUTO_CONTROL | 0x08 |
CT_IRIS_ABSOLUTE_CONTROL | 0x09 |
CT_IRIS_RELATIVE_CONTROL | 0x0A |
CT_ZOOM_ABSOLUTE_CONTROL | 0x0B |
CT_ZOOM_RELATIVE_CONTROL | 0x0C |
CT_PANTILT_ABSOLUTE_CONTROL | 0x0D |
CT_PANTILT_RELATIVE_CONTROL | 0x0E |
CT_ROLL_ABSOLUTE_CONTROL | 0x0F |
CT_ROLL_RELATIVE_CONTROL | 0x10 |
CT_PRIVACY_CONTROL | 0x11 |
CT_FOCUS_SIMPLE_CONTROL | 0x12 |
CT_WINDOW_CONTROL | 0x13 |
CT_REGION_OF_INTEREST_CONTROL | 0x14 |
6)当Entity ID值为Extension Unit时:
Control Selector | Value |
---|---|
XU_CONTROL_UNDEFINED | 0x00 |
7)当Entity ID值为VS Interface时:
ControlSelector | Value |
---|---|
VS_CONTROL_UNDEFINED | 0x00 |
VS_PROBE_CONTROL | 0x01 |
VS_COMMIT_CONTROL | 0x02 |
VS_STILL_PROBE_CONTROL | 0x03 |
VS_STILL_COMMIT_CONTROL | 0x04 |
VS_STILL_IMAGE_TRIGGER_CONTROL | 0x05 |
VS_STREAM_ERROR_CODE_CONTROL | 0x06 |
VS_GENERATE_KEY_FRAME_CONTROL | 0x07 |
VS_UPDATE_FRAME_SEGMENT_CONTROL | 0x08 |
VS_SYNCH_DELAY_CONTROL | 0x09 |
wLenth字段(2字节)
传输的数据大小。该字段表示在控制传输中传输数据的大小。主机—>设备时,该字段的值是实际的数据大小,设备—>主机时,wLenth为设备能够发送的最大数据包大小。