SOLVED v4l2函数获取曝光值,为什么不行
-
struct v4l2_control ctrl;
//得到曝光模式
ctrl.id =V4L2_CID_EXPOSURE_AUTO;
if (ioctl(m_fd, VIDIOC_G_CTRL, &ctrl) == -1)
{
std::cout<<"get ExposureTime failed"<<std::endl;
}
返回值为-1 -
@lin 你好,现在我们驱动没有实现这个接口,因为我们用了direct register access的模式。请参考不同型号相机对应的脚本进行直接的寄存器读写。
-
@veye_xumm 通过i2c直接读寄存器可以读到曝光值,但是无法写入是为什么
-
@lin 请问一下你直接用我们提供的脚本是否可以正常读写?
-
@veye_xumm 我换了0xC10就可以写了,请问一下,更改相机的帧率为什么media-ctl拓扑图中没变化,
-
@lin said in v4l2函数获取曝光值,为什么不行:
我换了0xC10就可以写了,请问一下,更改相机的帧率为什么media-ctl拓扑图中没变化,
分辨率和帧率你最好用media-ctl去改。嵌入式主板系统启动的时候会询问相机,后面只有media-ctl改动的时候才改驱动中的配置,并下发相机。
你用mv_mipi_i2c.sh直接改了相机寄存器,嵌入式主板中的驱动部分并不会获得通知。 -
@veye_xumm media-ctl的设置功能能不能通过函数实现?有参考代码吗?
-
@lin 这个我没有,建议你直接代码中调用media-ctl就行。
-
@veye_xumm 如果只修改帧率,这个语句怎么改写media-ctl -d /dev/media0 --set-v4l2 '"m00_b_mvcam 7-003b":0[fmt:Y8_1X8/1456x1088@1/60 field:none]'
-
@lin
1/60
表示的就是60fps -
@veye_xumm media-ctl -d /dev/media0 --set-v4l2 '"m00_b_mvcam 7-003b":0[1/60 field:none]'这样吗?还是类型参数和大小都要写上才行?
-