当前位置:首页 > 电子 > 正文内容

UVC SET_CUR/GET_CUR

admin7个月前 (05-06)电子1703

设置请求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 0x01 设置

  • GET_CUR 0x81 获取当前属性

  • GET_MIN 0x82 获取最小设置属性

  • GET_MAX 0x83 获取最大设置属性

  • GET_RES 0x84 获取分辨率属性

  • GET_LEN 0x85 获取数据长度属性

  • GET_INFO 0x86 获取设备支持的特定类请求属性

  • GET_DEF 0x87 获取默认属性

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_UNDEFINED0x00
VC_VIDEO_POWER_MODE_CONTROL0x01
VC_REQUEST_ERROR_CODE_CONTROL0x02
Reserved0x03

2)当Entity ID值为Teminal时:

Control SelectorValue
TE_CONTROL_UNDEFINED0x00

3)当Entity ID值为Selector Unit时

Control SelectorValue
SU_CONTROL_UNDEFINED0x00
SU_INPUT_SELECT_CONTROL0x01

4)当Entity ID值为Processing Unit时:

Control SelectorValue
PU_CONTROL_UNDEFINED0x00
PU_BACKLIGHT_COMPENSATION_CONTROL0x01
PU_BRIGHTNESS_CONTROL0x02
PU_CONTRAST_CONTROL0x03
PU_GAIN_CONTROL0x04
PU_POWER_LINE_FREQUENCY_CONTROL0x05
PU_HUE_CONTROL0x06
PU_SATURATION_CONTROL0x07
PU_SHARPNESS_CONTROL0x08
PU_GAMMA_CONTROL0x09
PU_WHITE_BALANCE_TEMPERATURE_CONTROL0x0A
PU_WHITE_BALANCE_TEMPERATURE_AUTO_CONTROL0x0B
PU_WHITE_BALANCE_COMPONENT_CONTROL0x0C
PU_WHITE_BALANCE_COMPONENT_AUTO_CONTROL0x0D
PU_DIGITAL_MULTIPLIER_CONTROL0x0E
PU_DIGITAL_MULTIPLIER_LIMIT_CONTROL0x0F
PU_HUE_AUTO_CONTROL0x10
PU_ANALOG_VIDEO_STANDARD_CONTROL0x11
PU_ANALOG_LOCK_STATUS_CONTROL0x12
PU_CONTRAST_AUTO_CONTROL0x13

5)当Entity ID值为Camera Terminal时:

ControlSelectorValue
CT_CONTROL_UNDEFINED0x00
CT_SCANNING_MODE_CONTROL0x01
CT_AE_MODE_CONTROL0x02
CT_AE_PRIORITY_CONTROL0x03
CT_EXPOSURE_TIME_ABSOLUTE_CONTROL0x04
CT_EXPOSURE_TIME_RELATIVE_CONTROL0x05
CT_FOCUS_ABSOLUTE_CONTROL0x06
CT_FOCUS_RELATIVE_CONTROL0x07
CT_FOCUS_AUTO_CONTROL0x08
CT_IRIS_ABSOLUTE_CONTROL0x09
CT_IRIS_RELATIVE_CONTROL0x0A
CT_ZOOM_ABSOLUTE_CONTROL0x0B
CT_ZOOM_RELATIVE_CONTROL0x0C
CT_PANTILT_ABSOLUTE_CONTROL0x0D
CT_PANTILT_RELATIVE_CONTROL0x0E
CT_ROLL_ABSOLUTE_CONTROL0x0F
CT_ROLL_RELATIVE_CONTROL0x10
CT_PRIVACY_CONTROL0x11
CT_FOCUS_SIMPLE_CONTROL0x12
CT_WINDOW_CONTROL0x13
CT_REGION_OF_INTEREST_CONTROL0x14

6)当Entity ID值为Extension Unit时:

Control SelectorValue
XU_CONTROL_UNDEFINED0x00

7)当Entity ID值为VS Interface时:

ControlSelectorValue
VS_CONTROL_UNDEFINED0x00
VS_PROBE_CONTROL0x01
VS_COMMIT_CONTROL0x02
VS_STILL_PROBE_CONTROL0x03
VS_STILL_COMMIT_CONTROL0x04
VS_STILL_IMAGE_TRIGGER_CONTROL0x05
VS_STREAM_ERROR_CODE_CONTROL0x06
VS_GENERATE_KEY_FRAME_CONTROL0x07
VS_UPDATE_FRAME_SEGMENT_CONTROL0x08
VS_SYNCH_DELAY_CONTROL0x09

wLenth字段(2字节)

传输的数据大小。该字段表示在控制传输中传输数据的大小。主机—>设备时,该字段的值是实际的数据大小,设备—>主机时,wLenth为设备能够发送的最大数据包大小。


扫描二维码推送至手机访问。

版权声明:本文由视觉博客发布,如需转载请注明出处。

本文链接:https://feelsight.cn/post/150.html

“UVC SET_CUR/GET_CUR” 的相关文章

SmartLink原理

SmartLink原理

智能家居/家电现阶段还处于普及阶段,由于家庭wifi网络的普及,目前普遍采用wifi与路由器完成连接,与手机/云端进行数据交互. 智能硬件,如智能插座,智能空调,智能空气净化器由于不具备人机交互界面,不能像电脑一样的搜索/选择指定路由器,输入连接密码的界面,所以必须先解决正确连接路...

内存堆和栈的区别

内存堆和栈的区别

在计算机领域,堆栈是一个不容忽视的概念,我们编写的C语言程序基本上都要用到。但对于很多的初学着来说,堆栈是一个很模糊的概念。 堆栈:一种数据结构、一个在程序运行时用于存放的地方,这可能是很多初学者的认识,因为我曾经就是这么想的和汇编语言中的堆栈一词混为一谈。我身边的一些编程的朋友以...

单片机时钟周期,机器周期,指令周期的区别

单片机时钟周期,机器周期,指令周期的区别

时钟周期        时钟周期也称为振荡周期,定义为时钟脉冲的倒数(时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时钟周期就是1/12us),是计算机中的最基本的、最小的时间单位。       在一...

如何看懂电路图(一)--基本的电路符号

如何看懂电路图(一)--基本的电路符号

电子设备中有各种各样的图。能够说明它们工作原理的是电原理图,简称电路图。 电路图有两种,一种是说明模拟电子电路工作原理的。它用各种图形符号表示电阻器、电容器、开关、晶体管等实物,用线条把元器件和单元电路按工作原理的关系连接起来。这种图长期以来就一直被叫做电路图。 另一种...

如何看懂电路图(二)-电源电路

如何看懂电路图(二)-电源电路

前 面介绍了电路图中的元器件的作用和符号。一张电路图通常有几十乃至几百个,它们的连线纵横交叉,形式变化多端,初学者往往不知道该从什么地方开始, 怎样才能读懂它。其实电子电路本身有很强的规律性,不管多复杂的电路,经过分析可以发现,它是由少数几个单元电路组成的。好象孩子们玩的积木,虽然只有十 来...

电源模块中隔离电压3000VDC有什么用?

电源模块中隔离电压3000VDC有什么用?

随着嵌入式行业的快速发展,在各种行业应用中电源要求也越来越高,为保证系统的稳定性,隔离电源应运而生。但隔离电源中关键指标——隔离电压指的是什么?与爬电距离有什么关系?本文将从隔离电源的原理为你揭晓。 微电子行业的高速发展,产品使用场合的电磁环境也越来越复杂,产品的稳定性也受到很大的...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。