佳能EDSDK设备忙无法取消一半完成的图像传输

时间:2012-10-08 14:25:38

标签: usb edsdk canon-sdk

在EDSDK中,如果在图像传输过程中出现错误 (即连接丢失,应用程序错误,...)应用程序重新启动并重新连接 设备是不可能拍摄新照片的原因 EdsSendCommand(hdev,kEdsCameraCommand_TakePicture,0)总是返回 EDS_ERR_DEVICE_BUSY。

这是因为以前的图像数据都在相机存储器中,即使我关闭了 相机。唯一的解决方案是推迟电池! 有没有人有更好的解决方案(sofwtare)发送一种RESET和 释放内存中等待传输的所有图像数据,让相机进入正常操作状态。

我在以下模式下运行SDK 我首先将属性设置为 EdsdkWrapper.PropID_SaveTo:EdsdkWrapper.EdsSaveTo.Host

EdsSendCommand EdsdkWrapper.CameraCommand_TakePicture

问题:如何在突然终止后重置相机,以便忘记所有半完成的传输?请注意,突然终止后我没有IntPtr引用。 (即我不能调用EdsdkWrapper.EdsDownloadComplete(imageReference))

1 个答案:

答案 0 :(得分:1)

这可能是因为您的程序在EdsTerminate()函数执行之前退出。您应确保在程序终止之前执行此功能。或者更粗略的解决方案是让另一个程序只使用EdsTerminate函数。如果发生突然终止,您可以在再次运行应用程序之前运行此程序。