Search code examples
c#canon-sdk

Canon SDK - Downloading images from memory without the DirItemRequestTransfer event


In the Canon SDK documentation it says the following about the JobStatusChanged status event:

Notifies of whether or not there are objects waiting to be transferred to a host computer. This is useful when ensuring all shot images have been transferred when the application is closed.

The data returned with this event is a simple 1 or 0 indicating that there are or are not items to be transferred. This event is working great.

There is also an Object event triggered by DirItemRequestTransfer which indicates that an image is available to download, and gives you the pointer to the image so you can download it. This event occasionally doesn't fire for me. So it seems that am left with no way of downloading the image in memory.

If I then try to turn off the camera, it sits spinning for ages (ever?) with "Saving. Remaining images: 1" on the screen. I usually have to remove the power to get it to shut down.

I am operating the camera without a memory card, connected to a computer, controlled by the SDK; and I am downloading still images, not EVF images.

I've been up and down the documentation, and I cannot see any way to get at these images if the DirItemRequestTransfer object even doesn't fire.

Am I missing something in the documentation? Is there a way to get at these undownloaded images without the DirItemRequestTransfer event?


Solution

  • Having spoken to Canon about this, the unfortunate answer is it's just not possible to get the handle any other way than via the event, so if the event doesn't fire then tough luck!

    This is for version 13 of the Canon SDK, 13.17.0 being the latest one I've tried that works this way.