Question

I've got following problem: I have two EOS550D cameras connected to my pc. In my program I have QThread-based class, that sends commands to cameras. There is no problem in distinguishing two cameras and both can be controlled, but though commands are sent in parallel - second camera start working only after first have focused and done shooting. Is it SDK limitation or am I doing something wrong? I knew, that this task can be done by using two pc's and client\server architecture, but I want to try it on one pc)

EDSDK and cameras are initialized in control class, sessions for cameras are managed in thread class objects. Call for thread:

void CameraController::testShot()
{
//some variable checks and path set-ups
leftCameraThread->setPath(path1);
leftCameraThread->start();
rightCameraThread->setPath(path2);
rightCameraThread->start();
}

Thread run() function:

void CameraControlThread::run()
{
EdsSendCommand(_camera, kEdsCameraCommand_TakePicture , 0);
}

EDSDK v2.10

Était-ce utile?

La solution

You can control more than one camera in the SDK 2.11. pag 26

Autres conseils

Read the EDSDK documentation, it statement that you can open only one session at time and this is a SDK limitation (2.10, page 25)

The EDSDK documentation (version 2.15, EDSDK_API.pdf, section 2.10) states that "Note that EDSDK does not support opening sessions with more than one camera at once"

But this is probably incorrect, as the original poster states, it is very possible to OpenSession with many cameras, issue commands, take pictures, retrieve the images, etc.

The OP's question is about triggering multiple cameras simultaneously. Each call to kEdsCameraCommand_TakePicture will send the trigger to a single camera, and that call takes some time. So if you iterate all cameras and send kEdsCameraCommand_TakePicture to each, the cameras will not fire in sync. As an example, with 16 EOS 1dx for example, it is taking 4 seconds to take all images. I have not found a way to send the trigger simultaneously to multiple cameras in the SDK. (anyone?) Other than software limitations in the SDK, it may be impossible to achieve perfect sync via the USB connection. The recommended way to achieve sync on multiple cameras is to use an external sync signal with the camera's trigger connector.

However this question is a bit old, i found a solution for controlling multiple camera's at once, the limitation is just about controlling more than one camera in single process, however Its possible controlling multiple camera's from multiple processes (each process one camera).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top