2 概览(Overview)


2.1 EDSDK 的功能概述(Functions of EDSDK)

markdown 复制代码
## 2.1 EDSDK 的功能概述(Functions of EDSDK)

EDSDK 主要提供以下功能:
markdown 复制代码
- 连接并控制 Canon 数码相机
- 控制相机的拍摄操作
- 设置和获取相机属性
- 获取相机状态
- 下载相机中保存的图像文件
- 接收并处理来自相机的事件通知

2.2 远程连接协议(Remote Connection Protocol)

markdown 复制代码
## 2.2 远程连接协议(Remote Connection Protocol)

EDSDK 使用 PTP(Picture Transfer Protocol,图片传输协议) 与相机进行通信。

markdown 复制代码
- PTP 是一种标准化的图像设备通信协议
- Canon 在标准 PTP 的基础上扩展了专有命令
- EDSDK 封装了这些 Canon 扩展命令,供应用程序调用

通过 EDSDK,开发者无需直接实现 PTP 协议,即可控制相机并访问其数据。


2.3 系统结构(System Architecture)

markdown 复制代码
## 2.3 系统结构(System Architecture)

EDSDK 系统结构由以下组件构成:

markdown 复制代码
- 应用程序(Client Application)
- EDSDK 库
- 操作系统的设备驱动
- Canon 数码相机

工作流程说明

markdown 复制代码
1. 应用程序调用 EDSDK API
2. EDSDK 将 API 请求转换为相机可识别的命令
3. 命令通过操作系统和设备驱动发送至相机
4. 相机返回结果
5. EDSDK 将结果转换为 API 返回值并返回给应用程序

2.4 EDSDK 的对象模型(Object Model)

markdown 复制代码
## 2.4 EDSDK 的对象模型(Object Model)

EDSDK 采用 对象模型(Object-Oriented Model) 来表示相机及其资源。

markdown 复制代码
EDSDK 中的所有资源都以"对象"的形式进行管理,
并通过句柄(Handle)在应用程序中进行访问。

主要对象类型

markdown 复制代码
- 相机对象(Camera)
- 卷对象(Volume)
- 文件夹对象(Directory)
- 文件对象(File)
- 流对象(Stream)

所有对象都继承自 EdsBaseRef 类型。


2.5 会话管理(Session Management)

markdown 复制代码
## 2.5 会话管理(Session Management)

在使用 EDSDK 控制相机之前,必须先打开一个 会话(Session)。

markdown 复制代码
基本流程如下:

1. 获取相机对象
2. 调用 `EdsOpenSession` 打开会话
3. 通过会话控制相机
4. 调用 `EdsCloseSession` 关闭会话

注意:

  • 同一时间只能有一个会话与相机保持连接
  • 如果会话未正确关闭,可能导致相机无法再次连接

2.6 事件处理(Event Handling)

markdown 复制代码
## 2.6 事件处理(Event Handling)

EDSDK 提供了事件通知机制,用于通知应用程序相机状态的变化。

事件类型

markdown 复制代码
- 对象事件(Object Event)
- 属性事件(Property Event)
- 状态事件(State Event)

事件处理方式

markdown 复制代码
- 应用程序需要注册回调函数
- 当事件发生时,EDSDK 会调用对应的回调函数
- 应用程序在回调中处理相应逻辑

2.7 错误处理(Error Handling)

markdown 复制代码
## 2.7 错误处理(Error Handling)

EDSDK 的所有 API 都会返回一个 错误码(EdsError)。

markdown 复制代码
- 返回值为 `EDS_ERR_OK` 表示调用成功
- 其他返回值表示发生错误

应用程序必须检查每一次 API 调用的返回值,以确保程序的稳定性。

相关推荐
遇码2 天前
不用转场引擎做幻灯片转场:相机滑动、黑场淡入与真全屏的完整做法
人工智能·数码相机·ai·rust·大模型·agent
光电的一只菜鸡2 天前
相机里面的AON模式是什么
数码相机
峥嵘life3 天前
Android16 Camera2录像中拍照后预览模糊问题分析与解决总结
人工智能·数码相机·wireshark
疯狂的维修3 天前
工业相机的镜头如何分辨景深
数码相机·自动化
峥嵘life3 天前
Android16 开机后立即打开相机闪退问题分析与解决总结
android·开发语言·数码相机·策略模式
中达瑞和-高光谱·多光谱3 天前
光谱相机如何守护月饼食品安全?
数码相机·高光谱·多光谱·高光谱相机
LabVIEW开发3 天前
LabVIEW 接住 800 Mbps 在轨视频流
数码相机·计算机视觉·labview·labview知识·labview功能·labview程序
把我格子衫拿来3 天前
相机标定误差很小,为什么测量仍不准?从 OpenCV 重投影误差到独立验证
python·数码相机·opencv·计算机视觉·相机标定
moonsims3 天前
面向高危现场作业空间安全智能节点AiBrainBox-S:多模态空间融合、动态风险区、身份-视觉轨迹关联、设备级实时安全推理
人工智能·数码相机·无人机
福大大架构师每日一题4 天前
ComfyUI v0.40.0发布:资产系统、原生 LoRA 堆栈、Qwen 3.5、3D 输出、相机节点与多项合作节点全面更新
数码相机·3d