佳能单反SDK 步骤
EdsInitializeSDK();
EdsGetCameraList(&eclr);//获取相机列表
EdsGetChildCount(eclr, &camCount); //获取相机数量
edsError = EdsGetChildAtIndex(eclr, 0, &camera); //获取相机句柄,存储在camera里
EdsSetCameraStateEventHandler(camera, kEdsStateEvent_All, handleSateEvent, NULL); //设置处理相机“状态”事件的函数
EdsSetObjectEventHandler(camera, kEdsObjectEvent_All, handleObjectEvent, NULL); //设置处理相机 事件的函数
EdsOpenSession(camera); //打开相机会话
EdsGetDeviceInfo(camera, &outDeviceInfo); //获取相机设备信息 outDeviceInfo
EdsSetPropertyData(camera, kEdsPropID_SaveTo, 0, sizeof(EdsUInt32), &saveTo); //设置相机照片存储路径
EdsCapacity capacity = { 0x7FFFFFFF, 0x1000, 1 };
EdsSetCapacity(camera, capacity); //设置相机属性
EdsSendCommand(camera, kEdsCameraCommand_TakePicture, 0); //发送拍照指令
EdsCloseSession(camera);//关闭相机会话 和Open对应
EdsTerminateSDK 释放SDK 一般最后做
EdsRetain(object);//增加现有对象的引用计数器
事件捕获:
kEdsStateEvent_CaptureError
kEdsStateEvent_JobStatusChanged
一些常见错误:
疑难:
state event 错误: OX311不知道是啥 出现这个stat的时候, take picture 一般是0X81 0X311是和相机失去连接了,需要重新拔插数据线?
EdsError 错误 : EDS_ERR_DEVICE_BUSY 0X81发生在 EdsSetPropertyData 估计是哪里没有释放造成的?
回调函数无法调用解决: ---- 好像下面方法也无法解决 麻蛋。。
If you're using the EDSDK on Windows, you have to have a Windows message loop in your main thread, otherwise callbacks won't happen. (This is because the EDSDK uses the obsolete COM STA threading model instead of real threads.)
while(GetMessage(&msg, NULL, NULL, NULL))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
bool bPhotoTaken = false;
main()
{
// Initialize EDSDK, start session with camera, change SaveTo property
// register ObjectEventHandler
// send kEdsCameraCommand_TakePicture
while((bRet = GetMessage(&msg, NULL, 0, 0)) != 0)
{
if(bRet == -1 || bPhotoTaken)
{
break;
}
else
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
// Cleanup EDSDK
}
handlePropertyEvent :
0X101 kEdsPropertyEvent_PropertyChanged - 这个参数说明参数发生了改变
0X102 kEdsPropertyEvent_PropertyChanged - 这个参数说明参数发生了改变
err = EdsDownloadEvfImage(theCamera, evfImage); 这里偶尔会出现 bug : EDS_ERR_OBJECT_NOTREADY ; 如果要获取流的话 就要不断去查询才可以,查询到object准备好了 就获取里面的数据。
佳能单反SDK 步骤的更多相关文章
- 佳能mp288拆解步骤--绝对原创
http://itbbs.pconline.com.cn/office/50663206.html 佳能mp288拆解步骤--绝对原创 gotobug Lv1太平洋舰队新兵 楼主 2013-10-13 ...
- Eclipse配置Lifery SDK步骤与错误解决。
第一步.我们先去官网下载我们要用的东西 1.Eclipse 2.SDK 3.Tomcat 这是官网下载地址-->https://www.liferay.com/zh/downloads 下面是图 ...
- 阿里云移动推送 ios项目添加SDK步骤
添加阿里云Pods仓库和各产品SDK Pod依赖,配置步骤如下: 1. CocoaPods集成添加阿里云Pods仓库,Podfile添加: source 'https://github.com/ali ...
- 阿里云移动推送 安卓项目添加SDK步骤
Gradle的Emas服务插件会加载您下载的 aliyun-emas-services.json 文件.请修改工程的build.gradle使用该插件.配置步骤如下: 1. 修改项目级目录下build ...
- iOS开发之App间账号共享与SDK封装
上篇博客<iOS逆向工程之KeyChain与Snoop-it>中已经提到了,App间的数据共享可以使用KeyChian来实现.本篇博客就实战一下呢.开门见山,本篇博客会封装一个登录用的SD ...
- android开发环境 eclipse + android sdk配置笔记
本开发环境为:eclipse + android sdk,步骤说明的顺序,没有特别要求,看个人爱好了 步骤说明: 1.安装eclipse 2.配置jdk 3.安装android sdk 4.安装ADT ...
- Unity 集成联通SDK
我相信Unity程序员都会遇到加入SDK的问题,我相信如果你不会android编程,我相信你的CPU当场计算过快而爆炸! 这里也写笔记希望能帮助大家 如果有讲错的地方,希望大家能回复并且提供答案! ...
- 01.ubuntu14.04安装HI3518EV200 SDK的过程
转载,侵删 1.海思SDK安装编译 Hi3518EV200_SDK是基于Hi3518EV200_DMEB的软件开发包,包含了在Linux相关应用开发时使用的各种工具及其源代码,是用户开发中最基本的软件 ...
- 转载 -- iOS中SDK的简单封装与使用
一.功能总述 在博客开始的第一部分,我们先来看一下我们最终要实现的效果.下图中所表述的就是我们今天博客中要做的事情,下方的App One和App Two都植入了我们将要封装的LoginSDK, 两个A ...
随机推荐
- div固定在浏览器的最上方,不随滚动条滚动
#topDIV { position: fixed; ; ; width: 100%; height: 35px; border-bottom: 1px solid #eee; background- ...
- 一百一十:CMS系统之剩余菜单栏的页面和视图
增加所有剩余菜单的页面,并用视图渲染,方便后面调试权限控制 {% extends 'cms/cms_base.html' %} {% block title %}板块管理{% endblock %} ...
- Python2.7 threading模块学习
主要学习一下python的多线程编程,使用threading模块,threading 包括:Thread.conditions.event.rlock.semaphore等类. Thread对象可以实 ...
- Fiddler抓取https设置详解(图文)
本文主要说明了自己在设置fiddler抓取https过程中所遇到的问题及解决步骤,特别是fiddler在设置证书的环节遇到的各种奇葩问题,特此分享! 声明:本文为原创文章,转载请注明来源:https: ...
- Linux开机启动过程分析
开机过程指的是从打开计算机电源直到LINUX显示用户登录画面的全过程.分析LINUX开机过程也是深入了解LINUX核心工作原理的一个很好的途径. 启动第一步--加载BIOS 当 你打开计算机电源,计算 ...
- maven创建分model的工程
创建parentmvn archetype:generate -DgroupId=com.hikvision -DartifactId=aocp-parent -DarchetypeArtifactI ...
- Python 的内置函数__import__
我们知道import语句是用来导入外部模块的,当然还有from...import...也可以,但是其实import实际上是使用builtin函数__import__来工作的. 在一些程序中,我 ...
- Linux系统封装成iso文件
#安装所需软件包yum -y install createrepo mkisofs anaconda-runtime 根据root下的install.log文件,得到安装的软件包awk '/Insta ...
- python列表展开的方法
只有一层嵌套的常见方法: # 普通方法 list_1 = [[1, 2], [3, 4, 5], [6, 7], [8], [9]] list_2 = [] for _ in list_1: list ...
- 无监督异常检测之LSTM组成的AE
我本来就是处理时间序列异常检测的,之前用了全连接层以及CNN层组成的AE去拟合原始时间序列,发现效果不佳.当利用LSTM组成AE去拟合时间序列时发现,拟合的效果很好.但是,利用重构误差去做异常检测这条 ...