I explored several methods to trigger a 35mm camera connected via USB:
1- ICCameraDevice: Unable to make it work with Canon cameras (details).
2- Canon's EDSDK: Works but is complex to implement.
3- gPhoto2 (command-line): Simple to use but requires gPhoto2 to be installed.
In your opinion, what is the most efficient way to trigger and download images via USB from Canon cameras?
Post
Replies
Boosts
Views
Activity
I am currently renovating an application for macOS Sonoma (14.4) which triggers a Canon 60D via USB cable. Unlike what happened before in MacOS 10.6, the camera (ICCameraDevice) has description that contains only 2 capabilities:
{
UUIDString = "00000000-0000-0000-0000-000004A93215";
autolaunchApplicationPath = "";
capabilities = (
ICCameraDeviceCanDeleteOneFile,
ICCameraDeviceCanAcceptPTPCommands
);
class = ICCameraDevice;
connectionID = 0xffff0001;
delegate = "<0x600003157ac0>";
deviceID = 0xffff0001;
deviceRef = 0xffff0001;
iconPath = "(null)";
locationDescription = ICDeviceLocationDescriptionUSB;
moduleExecutableArchitecture = 0;
modulePath = "/System/Library/Image Capture/Devices/PTPCamera.app";
moduleVersion = "1.0";
name = "Canon EOS 60D";
persistentIDString = "00000000-0000-0000-0000-000004A93215";
shared = NO;
softwareInstallPercentDone = "0.000000";
transportType = ICTransportTypeUSB;
type = 0x00000101;
} timeOffset : 0.000000
hasConfigurableWiFiInterface : N/A
isAccessRestrictedAppleDevice : NO
As you can see, ICCameraDeviceCanTakePicture is not present now, and so I cannot take a picture with requestTakePicture.
Do I need to do anything special to regain these capabilities, like in older versions of macOS?
Is my only option to use PTP commands?
Thanks!