嵌入式案例:Sony Camera Remote SDK API编写设计

嵌入式案例:Sony Camera Remote SDK API编写设计,第1张

嵌入式案例:Sony class="superseo">Camera Remote SDK API编写设计

使用Sony相机最快乐的一点就是开放SDK,所以让相机用作工业用途有了可以实现的软件基础,但是我C++写的太恶心了,只能先看API的参考,对SDK有大致的了解后,开始编写App

最后就是我小相机了

一般是搭配嵌入式的平台一起,ESP32估计是没有戏了

注意要先准备好设备的回调函数,相当于一个后台的线程来管理相机和主机的连接状态。而且这个回调函数也会调用别的回调函数,完成提醒等工作。

连接过程是异步的,这个图的左边的线是,用户的线程,中间这个线是SDK的API,右边是SDK和相机内部的线程。

这个远程识别的常数是300,是固定的

这个是初始化的函数,init方法里面的0参数是固定的

这个是释放资源,气死我了后面括号没有成对!!!

在相机断开连接以后执行这个函数是正确的

枚举设别到的相机

返回的info函数里面包含了有的相机的列表,GetCameraObjecTInfo这个函数是会反映相机的详细信息。最后不用的时候释放资源。

看下面这个连接的函数,第一个参数是要连接的相机对象,就是上文检测到的函数对象。接着参数是一个回调函数,用来通知SDK的通信事件,第三个参数是控制远程模式的。

具体使用的时候是这样的

SDK连接状态的变化

连接多个相机时候,每一个handle都可以控制一个相机

这个可能看的更清晰一些

上面是连接,下面是控制

获得相机属性,三参数:第一个是设备的handle,第二个是指向属性的指针,第三个是这个属性列表的大小。

成功接收的属性列表:

都在此处保存

这个函数可以改变相机的属性,而且这个函数不是同步的调用,执行后是送入发送队列的。

属性不会因为状态而改变,SDK也不通知你干啥,所以应该延时读取属性,然后读取状态,进行页面状态更新,也就是说,这个过程需要开发者自己处理。

 SDK::SendCommand(m_device_handle, SDK::CrCommandId::CrCommandId_Release, SDK::CrCommandParam_Down);

命令的发送方法

按下和松开

一个简单的demo

索引的命令ID,第一个是盛开,第二个是影片录制,取消对焦,媒体格式,媒体快速格式,取消内容传输等。

这个发送函数的优先级很高,所以我个人建议是经常的使用。

实时的获取试图,这个可能是一个很重要的事情

函数在这里

不解释了,Mac截图麻烦死了,后面是得到预览的图像信息

一个图像是一个类封装的,也有帧的大小,内部有图像大小

内部也简单的对数据类型进行了重构,32和64

这个是一个数据块的获取,Data回来的是一个数据指针,Size是一个数据的大小

一个小的demo,线获取一帧,得到数据内存的大小,接着把它复制过来。

传输的时候每一帧都会给一个增量的数字,用来判断要不要复制缓冲区,一看数字,复制过,就可以不工作了。

这个函数可以选择保存的位置

更改的保存路径

编辑:黄飞

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2418893.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-01
下一篇 2022-08-01

发表评论

登录后才能评论

评论列表(0条)

保存