c++edsdk

Parallel control of canon cameras through EDSDK


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


Solution

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