У меня следующая проблема: у меня есть две камеры EOS550D, подключенные к моему компьютеру. В моей программе есть класс на основе QThread, который отправляет команды камерам. Различить две камеры не составляет труда, обеими можно управлять, но хоть команды и идут параллельно - вторая камера начинает работать только после того, как первая сфокусировалась и сделала снимок. Это ограничение SDK или я что-то не так делаю? Я знал, что эту задачу можно решить, используя два компьютера и клиент-серверную архитектуру, но я хочу попробовать это на одном компьютере)
EDSDK и камеры инициализируются в классе управления, сеансы для камер управляются в объектах класса потока. Призыв к треду:
void CameraController::testShot()
{
//some variable checks and path set-ups
leftCameraThread->setPath(path1);
leftCameraThread->start();
rightCameraThread->setPath(path2);
rightCameraThread->start();
}
Функция запуска потока():
void CameraControlThread::run()
{
EdsSendCommand(_camera, kEdsCameraCommand_TakePicture , 0);
}
ЭСДК v2.10