大家英文好的話直接看文檔了,這裏只摘要些重要的部分.
一、與相機工作流程
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);