Search code examples
c#.netsdkcanon-sdk

Retrieving supported ImageQuality values from the Canon EOS SDK


I have a WinForms application that uses the Canon EOS SDK to control various EOS series DSLR cameras. There is a screen dedicated to camera settings that does the following:

  • Opens a session
  • Retrieve supported values for a particular property
  • Setting the value from the enumeration

This works for most properties but I am not able to retrieve supported values for ImageQuality. As a result, I have to use all values from the ImageQuality enumeration (most of which are not supported on most models).

If I hard-code known values, it works of course but this is not scalable to newer models. Any suggestions would be appreciated.

UPDATE: I also tried setting all possible values to each camera to see which ones throw exceptions. This somewhat works but leaves the camera in an inconsistent state (requires restart) so is not an option.


Solution

  • So far, the documentation does not provide a workaround for this. I ended up referring to the manufacturer's docs and built a configuration file of which models support which modes. This file is now updated upon release of new models and/or firmware.