diff --git a/src/cameras.cpp b/src/cameras.cpp index 33d4ef8..647685b 100644 --- a/src/cameras.cpp +++ b/src/cameras.cpp @@ -72,9 +72,26 @@ bool Cameras::addCamera(const cam::Camera::Description& desc) std::shared_ptr camera = cameras_.back(); camera->cam()->setTriggerMode(cam::Camera::TRIGGER_FREE); camera->cam()->setAcquisitionMode(cam::Camera::MODE_FREE); - camera->cam()->setFrameRate(7); + camera->cam()->setFrameRate(10); camera->cam()->startAcquisition(); - QTimer::singleShot(10000, [camera, this](){finishAddCamera(camera);}); + struct timespec tv = {0, 200000000}; + nanosleep(&tv, nullptr); + camera->cam()->stopAcquisition(); + cameras_.pop_back(); + camera = nullptr; + cameras_.push_back(std::shared_ptr(new Camera(desc))); + if(!cameras_.back()->cam()->isOpen()) + { + cameras_.pop_back(); + return false; + } + camera = cameras_.back(); + cameraAdded(camera); + camera->cam()->setTriggerMode(cam::Camera::TRIGGER_FREE); + camera->cam()->setAcquisitionMode(cam::Camera::MODE_FREE); + camera->cam()->setFrameRate(10); + camera->cam()->startAcquisition(); + QTimer::singleShot(5000, [camera, this](){finishAddCamera(camera);}); } else { @@ -90,7 +107,6 @@ void Cameras::finishAddCamera(std::shared_ptr camera) setFree(free_); connect(camera.get(), &Camera::newImage, this, &Cameras::imageRecived); qDebug()<<"Using camera"<id(); - cameraAdded(camera); } void Cameras::trigger()