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

UVC SET_CUR/GET_CUR

admin1个月前 (05-06)电子326

设置请求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为设备能够发送的最大数据包大小。


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

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

本文链接:http://www.cqroom.cn/post/150.html

返回列表

上一篇:【干货】电感饱和怎么判断

没有最新的文章了...

“UVC SET_CUR/GET_CUR” 的相关文章

物联网 WIFI 一键配置原理(smartconfig) ESP8266/QCA4004

物联网 WIFI 一键配置原理(smartconfig) ESP8266/QCA4004

物联网 WIFI 一键配置原理(smartconfig) ESP8266/QCA4004 自从物联网问世以来,如何使得物 能够联网有了很多的方式,目前运用非常广的WIFI,今天就总结下自这个方面,也对于有需要的盆友也希望有抛砖引玉之效果。 来看个知乎...

SmartLink原理

SmartLink原理

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

内存堆和栈的区别

内存堆和栈的区别

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

ESP8266发送HTTP请求GET请求POST请求

ESP8266发送HTTP请求GET请求POST请求

一、ESP8266简介   ESP8266 是深圳安信可科技有限公司开发的基于乐鑫ESP8266的超低功耗的UART-WIFI模块的模组,可以方便进行二次元开发,接入云端服务,实现手机3/4G全球随时随地的控制,加速产品原型设计。  &em...

正点原子阿波罗ST32F767试用

正点原子阿波罗ST32F767试用

一、             硬件整体介绍 1.       底板  &nb...

linux系统 硬盘自动挂载 自动格式化 脚本

mkdir /data1 mkdir /data2 mkdir /data3 mkdir /data4  mkfs.xfs /dev/sdb1 echo "/dev/sdb...

发表评论

访客

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