大家英文好的话直接看文档了,这里只摘要些重要的部分.
一、与相机工作流程
1.SDK初始化:EDSDK.EdsInitializeSDK();
2.与相机建立会话通道:EDSDK.EdsOpenSession(IntPtr camera);
3.工作处理...
4.结束与相机的会话:EDSDK.EdsCloseSession(IntPtr camera);
5.注销SDK:EDSDK.EdsTerminateSDK();
*在应用程序周期中应保持SDK加载,及与相机的会话通道畅通.只在程序结束时注销SDK,或特殊处理时关闭到某个相机的会话通道.
二、API返回
正常状态均返回‘0’,即EDSDK.EDS_ERR_OK
三、实件处理
1、事件代理声明
private event EDSDK.EdsPropertyEventHandler PropertyEventHandler;
2、回调
PropertyEventHandler += new EDSDK.EdsPropertyEventHandler(I_PropertyEventHandler);
void I_PropertyEventHandler(uint inEvent, uint inPropertyID, uint inParam, IntPtr inContext)
{
//throw new NotImplementedException();
}
3、绑定
EDSDK.EdsSetObjectEventHandler(camera, EDSDK.ObjectEvent_All, ObjectEventHandler, IntPtr.Zero);
四、获取、设置相机属性
1、获取相机属性:属性都以uint表示,根据获取的值对应文档中的属性说明或获取属性的DESCRIBE
uint _data;
EDSDK.EdsDataType _dataType;
int _dataSize;
//获取相机当前的存储位置属性(1-相机;2-PC;3-同时)
_hr = EDSDK.EdsGetPropertySize(camera, Example:EDSDK.PropID_SaveTo, 0, out _dataType, out _dataSize);
_hr = EDSDK.EdsGetPropertyData(camera, Example:EDSDK.PropID_SaveTo, 0, out _data);
return _data;
2、设置相机属性:
IntPtr _data=new IntPtr(2);
EDSDK.EdsSetPropertyData(camera, EDSDK.PropID_SaveTo, 0, Marshal.SizeOf(_data), _data);