mainny ui improcements
This commit is contained in:
@ -3,6 +3,8 @@
|
||||
#include <string>
|
||||
#include <functional>
|
||||
#include <QDebug>
|
||||
#include <unistd.h>
|
||||
#include <QTimer>
|
||||
|
||||
Cameras::Cameras(uvosled* led): led_(led)
|
||||
{
|
||||
@ -46,7 +48,7 @@ std::shared_ptr<Camera> Cameras::getCamera(size_t id)
|
||||
std::vector<cam::Camera::Description> desc = getCameras();
|
||||
for(size_t i = 0; i < desc.size(); ++i)
|
||||
{
|
||||
if(desc[i].getHash() == id)
|
||||
if(desc[i].getId() == id)
|
||||
return cameras_[i];
|
||||
}
|
||||
return std::shared_ptr<Camera>(nullptr);
|
||||
@ -62,14 +64,35 @@ bool Cameras::addCamera(const cam::Camera::Description& desc)
|
||||
return false;
|
||||
}
|
||||
|
||||
cameras_.back()->cam()->setTriggerMode(cam::Camera::TRIGGER_SOFTWARE);
|
||||
cameras_.back()->cam()->setExposureTime(exposrueTime_*1000000);
|
||||
setFree(false);
|
||||
cameraAdded(cameras_.back());
|
||||
qDebug()<<"Using camera"<<cameras_.back()->id();
|
||||
|
||||
if(desc.getVendor().find("Photonfocus") != std::string::npos)
|
||||
{
|
||||
qDebug()<<"Mitiagting broken PhotonFocus single shot mode";
|
||||
std::shared_ptr<Camera> camera = cameras_.back();
|
||||
camera->cam()->setTriggerMode(cam::Camera::TRIGGER_FREE);
|
||||
camera->cam()->setAcquisitionMode(cam::Camera::MODE_FREE);
|
||||
camera->cam()->setFrameRate(10);
|
||||
camera->cam()->startAcquisition();
|
||||
QTimer::singleShot(2000, [camera, this](){finishAddCamera(camera);});
|
||||
}
|
||||
else
|
||||
{
|
||||
finishAddCamera(cameras_.back());
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void Cameras::finishAddCamera(std::shared_ptr<Camera> camera)
|
||||
{
|
||||
camera->cam()->setTriggerMode(cam::Camera::TRIGGER_SOFTWARE);
|
||||
setFree(free_);
|
||||
connect(camera.get(), &Camera::newImage, this, &Cameras::imageRecived);
|
||||
qDebug()<<"Using camera"<<camera->id();
|
||||
cameraAdded(camera);
|
||||
}
|
||||
|
||||
void Cameras::trigger()
|
||||
{
|
||||
for(auto& camera : cameras_)
|
||||
@ -108,6 +131,11 @@ bool Cameras::stop()
|
||||
return ret;
|
||||
}
|
||||
|
||||
void Cameras::disable(bool disable)
|
||||
{
|
||||
disable_ = disable;
|
||||
}
|
||||
|
||||
bool Cameras::setFree(bool free)
|
||||
{
|
||||
stop();
|
||||
@ -117,7 +145,10 @@ bool Cameras::setFree(bool free)
|
||||
for(auto& camera : cameras_)
|
||||
{
|
||||
if(!camera->cam()->setAcquisitionMode(free ? cam::Camera::MODE_FREE : cam::Camera::MODE_SINGLE))
|
||||
{
|
||||
qDebug()<<"failed to set single on camera"<<camera->id();
|
||||
ret = false;
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
@ -130,34 +161,40 @@ bool Cameras::setExposureTime(double exposureTime)
|
||||
for(auto& camera : cameras_)
|
||||
{
|
||||
if(!camera->cam()->setExposureTime(exposrueTime_*1000000))
|
||||
{
|
||||
qDebug()<<"failed to set exposure on camera"<<camera->id();
|
||||
ret = false;
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
void Cameras::imageRecived(Camera::Image img)
|
||||
{
|
||||
bool allreadyUpdated = false;
|
||||
for(auto& camera : cameras_)
|
||||
if(!disable_)
|
||||
{
|
||||
bool allreadyUpdated = false;
|
||||
for(auto& image : images_)
|
||||
{
|
||||
if(image.cameraId == camera->id())
|
||||
if(image.cameraId == img.cameraId)
|
||||
{
|
||||
allreadyUpdated = true;
|
||||
goto FOUND;
|
||||
break;;
|
||||
}
|
||||
}
|
||||
|
||||
if(!allreadyUpdated)
|
||||
images_.push_back(img);
|
||||
|
||||
qDebug()<<"Recived"<<images_.size()<<"of"<<cameras_.size()<<"images";
|
||||
|
||||
if(images_.size() == cameras_.size())
|
||||
{
|
||||
newImages(images_);
|
||||
images_.clear();
|
||||
}
|
||||
|
||||
}
|
||||
FOUND:
|
||||
|
||||
if(!allreadyUpdated)
|
||||
images_.push_back(img);
|
||||
|
||||
if(images_.size() == cameras_.size())
|
||||
newImages(images_);
|
||||
|
||||
images_.clear();
|
||||
}
|
||||
|
||||
void Cameras::store(QSettings &settings)
|
||||
@ -184,7 +221,7 @@ void Cameras::load(QSettings &settings)
|
||||
size_t hash = settings.value("id", 0).toULongLong();
|
||||
for(auto& camera : available)
|
||||
{
|
||||
if(camera.getHash() == hash)
|
||||
if(camera.getId() == hash)
|
||||
addCamera(camera);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user