7#ifndef YARP_FAKEFRAMEGRABBER_FAKEFRAMEGRABBER_H
8#define YARP_FAKEFRAMEGRABBER_FAKEFRAMEGRABBER_H
27#include <condition_variable>
41#ifndef YARP_NO_DEPRECATED
64 bool close()
override;
81 int height()
const override;
83 int width()
const override;
95 bool getRgbFOV(
double& horizontalFov,
double& verticalFov)
override;
97 bool setRgbFOV(
double horizontalFov,
double verticalFov)
override;
127 bool setFeature(
int feature,
double value)
override;
129 bool getFeature(
int feature,
double *value)
override;
131 bool setFeature(
int feature,
double value1,
double value2)
override;
133 bool getFeature(
int feature,
double *value1,
double *value2)
override;
135 bool hasOnOff(
int feature,
bool *HasOnOff)
override;
137 bool setActive(
int feature,
bool onoff)
override;
139 bool getActive(
int feature,
bool *isActive)
override;
154 static constexpr size_t default_w = 128;
155 static constexpr size_t default_h = 128;
156 static constexpr size_t default_freq = 30;
157 static constexpr double default_snr = 0.5;
164 unsigned long rnd{0};
171 std::random_device rnddev;
172 std::default_random_engine randengine{rnddev()};
173 std::uniform_int_distribution<int> udist{-1, 1};
174 std::uniform_real_distribution<double> ucdist{0.0, 1.0};
176 std::mutex curr_buff_mutex;
179 bool img_ready[2] {
false,
false};
180 bool img_consumed[2] {
true,
true};
182 std::condition_variable img_ready_cv[2];
183 std::condition_variable img_consumed_cv[2];
196 void printTime(
unsigned char* pixbuf,
size_t pixbuf_w,
size_t pixbuf_h,
size_t x,
size_t y,
char* s,
size_t size);
199#ifndef YARP_NO_DEPRECATED
205class TestFrameGrabber :
This class is the parameters parser for class FakeFrameGrabber.
fakeFrameGrabber: A fake camera for testing.
int width() const override
Return the width of each frame.
bool getCameraDescription(CameraDescriptor *camera) override
Get a basic description of the camera hw.
bool hasFeature(int feature, bool *hasFeature) override
Check if camera has the requested feature (saturation, brightness ... )
bool getMode(int feature, FeatureMode *mode) override
Get the current mode for the feature.
bool setFeature(int feature, double value) override
Set the requested feature to a value (saturation, brightness ... )
int getRgbWidth() override
Return the width of each frame.
int getRgbHeight() override
Return the height of each frame.
yarp::os::Stamp getLastInputStamp() override
Return the time stamp relative to the last acquisition.
bool setOnePush(int feature) override
Set the requested feature to a value (saturation, brightness ... )
bool getRgbResolution(int &width, int &height) override
Get the resolution of the rgb image from the camera.
bool getRgbIntrinsicParam(yarp::os::Property &intrinsic) override
Get the intrinsic parameters of the rgb camera.
bool getActive(int feature, bool *isActive) override
Get the current status of the feature, on or off.
bool getRgbSupportedConfigurations(yarp::sig::VectorOf< yarp::dev::CameraConfig > &configurations) override
Get the possible configurations of the camera.
bool hasOnePush(int feature, bool *hasOnePush) override
Check if the requested feature has the 'onePush' mode.
int height() const override
Return the height of each frame.
bool setMode(int feature, FeatureMode mode) override
Set the requested mode for the feature.
bool hasManual(int feature, bool *hasManual) override
Check if the requested feature has the 'manual' mode.
bool getRgbMirroring(bool &mirror) override
Get the mirroring setting of the sensor.
bool hasAuto(int feature, bool *hasAuto) override
Check if the requested feature has the 'auto' mode.
bool hasOnOff(int feature, bool *HasOnOff) override
Check if the camera has the ability to turn on/off the requested feature.
bool getFeature(int feature, double *value) override
Get the current value for the requested feature.
~FakeFrameGrabber() override=default
FakeFrameGrabber & operator=(FakeFrameGrabber &&)=delete
bool getRgbFOV(double &horizontalFov, double &verticalFov) override
Get the field of view (FOV) of the rgb camera.
FakeFrameGrabber & operator=(const FakeFrameGrabber &)=delete
bool setRgbMirroring(bool mirror) override
Set the mirroring setting of the sensor.
bool setActive(int feature, bool onoff) override
Set the requested feature on or off.
FakeFrameGrabber()=default
bool open(yarp::os::Searchable &config) override
bool setRgbResolution(int width, int height) override
Set the resolution of the rgb image from the camera.
FakeFrameGrabber(const FakeFrameGrabber &)=delete
bool setRgbFOV(double horizontalFov, double verticalFov) override
Set the field of view (FOV) of the rgb camera.
void run() override
Main body of the new thread.
void onStop() override
Call-back, called while halting the thread (before join).
bool getImage(yarp::sig::ImageOf< yarp::sig::PixelRgb > &image) override
Get an image from the frame grabber.
FakeFrameGrabber(FakeFrameGrabber &&)=delete
bool getImageCrop(cropType_id_t cropType, yarp::sig::VectorOf< std::pair< int, int > > vertices, yarp::sig::ImageOf< yarp::sig::PixelRgb > &image) override
Get a crop of the image from the frame grabber.
bool hasRawVideo() override
bool read(yarp::os::ConnectionReader &connection) override
Read this object from a network connection.
bool close() override
Close the DeviceDriver.
Interface implemented by deprecated device drivers.
Interface implemented by all device drivers.
Control interface for frame grabber devices.
An interface for retrieving intrinsic parameter from a rgb camera.
An interface for reading from a network connection.
Interface implemented by all objects that can read themselves from the network, such as Bottle object...
A mini-server for network communication.
A class for storing options and configuration information.
A base class for nested structures that can be searched.
An abstraction for a time stamp and/or sequence number.
An abstraction for a thread of execution.