Since version 2.12 - it seems like the Canon EDSDK no longer supports getting the camera serial numbers from connected cameras via kEdsPropID_BodyIDEx. This means it's impossible to tell which physical camera is which.
For instance, if you wanted to connect to 2 cameras and set settings1 for camera1 and settings2 for camera2, you have no way of knowing which camera is camera1 and which is camera2 from inside your application and therefore no way of knowing which settings to apply to each camera.
This seems like a reasonable thing to want to do if say camera1 was located in a dark room and camera2 was in a brightly lit room and you wanted to apply specific settings to each?
I did see this post: Canon SDK: Download latest picture taken by two devices to host
Unless I'm misunderstanding something, this allows you to differentiate between cameras inside your application once you've connected, but does not let you differentiate between physical cameras.
Anyone found a way around this issue?
Cheers!
using 2.15 here and BodyIDEx working fine. Are you sure you are using it as a string and not as an uint?
Other than that there are at least two other ways to distinguish a camera, both without even opening a session.
Both of those alternative values are only valid while you run the software. Once you restart or plug in the camera somewhere else those values will change.