improve uvosled support
This commit is contained in:
@ -8,7 +8,13 @@
|
|||||||
|
|
||||||
Cameras::Cameras(uvosled* led): led_(led)
|
Cameras::Cameras(uvosled* led): led_(led)
|
||||||
{
|
{
|
||||||
|
ledTimer.setSingleShot(true);
|
||||||
|
connect(&ledTimer, &QTimer::timeout, this, &Cameras::lightOff);
|
||||||
|
}
|
||||||
|
|
||||||
|
Cameras::~Cameras()
|
||||||
|
{
|
||||||
|
lightOff();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Cameras::setCameras(const std::vector<cam::Camera::Description>& descriptions)
|
bool Cameras::setCameras(const std::vector<cam::Camera::Description>& descriptions)
|
||||||
@ -109,13 +115,30 @@ void Cameras::finishAddCamera(std::shared_ptr<Camera> camera)
|
|||||||
qDebug()<<"Using camera"<<camera->id();
|
qDebug()<<"Using camera"<<camera->id();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool Cameras::lightFor(const LightingSetup& lighting, double time)
|
||||||
|
{
|
||||||
|
int ret = 0;
|
||||||
|
if(led_)
|
||||||
|
{
|
||||||
|
ret = uvosled_set_current(led_, lighting.mask, lighting.brightness);
|
||||||
|
ledTimer.start(time*1000);
|
||||||
|
}
|
||||||
|
return ret == 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Cameras::lightOff()
|
||||||
|
{
|
||||||
|
if(led_)
|
||||||
|
uvosled_set_current(led_, 0xff, 0);
|
||||||
|
ledTimer.stop();
|
||||||
|
}
|
||||||
|
|
||||||
void Cameras::trigger()
|
void Cameras::trigger()
|
||||||
{
|
{
|
||||||
|
lightFor(lighting_, exposrueTime_*1.5);
|
||||||
|
|
||||||
for(auto& camera : cameras_)
|
for(auto& camera : cameras_)
|
||||||
camera->cam()->trigger();
|
camera->cam()->trigger();
|
||||||
|
|
||||||
/*if(led_ && !free_)
|
|
||||||
uvosled_capture(led_, lighting_.mask, lighting_.brightness, exposrueTime_*1.5, exposrueTime_*0.25);*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Cameras::start()
|
bool Cameras::start()
|
||||||
@ -127,8 +150,8 @@ bool Cameras::start()
|
|||||||
ret = false;
|
ret = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*if(free_ && led_)
|
if(free_)
|
||||||
uvosled_set_current(led_, lighting_.mask, lighting_.brightness);*/
|
uvosled_set_current(led_, lighting_.mask, lighting_.brightness);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -142,8 +165,7 @@ bool Cameras::stop()
|
|||||||
ret = false;
|
ret = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(led_)
|
lightOff();
|
||||||
uvosled_set_current(led_, 0xFF, 0);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <QSettings>
|
#include <QSettings>
|
||||||
#include <opencv2/core/mat.hpp>
|
#include <opencv2/core/mat.hpp>
|
||||||
|
#include <QTimer>
|
||||||
|
|
||||||
#include "profile.h"
|
#include "profile.h"
|
||||||
#include "camera.h"
|
#include "camera.h"
|
||||||
@ -28,10 +29,14 @@ private:
|
|||||||
LightingSetup lighting_;
|
LightingSetup lighting_;
|
||||||
std::vector<std::shared_ptr<Camera>> cameras_;
|
std::vector<std::shared_ptr<Camera>> cameras_;
|
||||||
std::vector<Camera::Image> images_;
|
std::vector<Camera::Image> images_;
|
||||||
|
QTimer ledTimer;
|
||||||
|
|
||||||
|
bool lightFor(const LightingSetup& lighting, double time);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void imageRecived(Camera::Image img);
|
void imageRecived(Camera::Image img);
|
||||||
void finishAddCamera(std::shared_ptr<Camera> camera);
|
void finishAddCamera(std::shared_ptr<Camera> camera);
|
||||||
|
void lightOff();
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void cameraRemoved(std::shared_ptr<Camera> camera);
|
void cameraRemoved(std::shared_ptr<Camera> camera);
|
||||||
@ -48,13 +53,14 @@ public slots:
|
|||||||
void setLighting(const LightingSetup& lighting) {lighting_ = lighting;}
|
void setLighting(const LightingSetup& lighting) {lighting_ = lighting;}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
Cameras(uvosled* led = nullptr);
|
||||||
|
~Cameras();
|
||||||
bool setCameras(const std::vector<cam::Camera::Description>& descriptions);
|
bool setCameras(const std::vector<cam::Camera::Description>& descriptions);
|
||||||
bool addCamera(const cam::Camera::Description& desc);
|
bool addCamera(const cam::Camera::Description& desc);
|
||||||
std::vector<cam::Camera::Description> getCameras();
|
std::vector<cam::Camera::Description> getCameras();
|
||||||
std::shared_ptr<Camera> getCamera(size_t id);
|
std::shared_ptr<Camera> getCamera(size_t id);
|
||||||
size_t numCameras(){return cameras_.size();}
|
size_t numCameras(){return cameras_.size();}
|
||||||
void clear();
|
void clear();
|
||||||
Cameras(uvosled* led = nullptr);
|
|
||||||
void load(QSettings& settings);
|
void load(QSettings& settings);
|
||||||
void store(QSettings& settings);
|
void store(QSettings& settings);
|
||||||
void disable(bool disable);
|
void disable(bool disable);
|
||||||
|
Reference in New Issue
Block a user