Spock
Spock

Reputation: 261

EDSDK Camera seems "Locked" with Message "Recording... Remaining Images"

I'm remote controlling a Canon EOS 1000D using EDSDK 3.6.1 and C#.

Sometimes after (successfully) taking a photo and downloading the images (RAW+L) the camera seems to "hang". Live view doesn't work any more and/or the camera seems unresponsive via EDSDK. When I try to turn off the camera its display shows:

Recording...
Remaining images :2

This normally means: the camera is busy writing data to the card. However it seems the camera endlessly writes data in these cases.

Do I need to tell the camera that I finished downloading the images or something similar?

However, it seems to work when remote controlling the camera w/o card.

UPDATE 1:

Just had this issue without any card in the camera.

UPDATE 2:

The EdsDownloadComplete command will be called after each download. However, I get still get this error randomly: sometimes after the 2nd or 3rd photo/download, sometimes later. Quite strange... :-(

EdsRelease returns always 0, meaning there are no further reference counters on this file/object.

Is there probably a way to check the download state before taking a photo/starting live view and cancel all remaining?

Upvotes: 0

Views: 1853

Answers (2)

Spock
Spock

Reputation: 261

I'm guessing that there is something happening in parallel when downloading the images and that's never good with the Canon SDK. I think if you put a lock around the DownloadReady event handling it should work.

This answer was written by Johannes Bildstein as a comment and works fine for me.

Upvotes: 0

JBildstein
JBildstein

Reputation: 1079

This message means that the camera thinks that the images haven't been saved yet. i.e. the taken images are still in the buffer. This only happens if you have set SaveTo to Host (possibly also with Both), because then the images aren't written to the memory card.

You have to call EdsDownloadComplete (with the file pointer from the DownloadReady object event) after you have downloaded the file. Or if you don't want to download it, call EdsDownloadCancel (again, with the file pointer).

Upvotes: 1

Related Questions