iCub-main
Loading...
Searching...
No Matches
DragonflyDeviceDriver2.h
Go to the documentation of this file.
1// -*- mode:C++; tab-width:4; c-basic-offset:4; indent-tabs-mode:nil -*-
2
3/*
4 * Copyright (C) 2007 RobotCub Consortium
5 * Author: Alessandro Scalzo alessandro.scalzo@iit.it
6 * CopyPolicy: Released under the terms of the GNU GPL v2.0.
7 *
8 */
9
10#ifndef __DragonflyDeviceDriver2h__
11#define __DragonflyDeviceDriver2h__
12
13//=============================================================================
14// YARP Includes
15//=============================================================================
16
17// May 06, readapted for YARP2 by nat
18
19#include <yarp/os/Bottle.h>
20#include <yarp/os/Stamp.h>
21#include <yarp/dev/DeviceDriver.h>
22#include <yarp/dev/IPreciselyTimed.h>
23#include <yarp/dev/IFrameGrabberControls.h>
24#include <yarp/dev/IFrameGrabberControlsDC1394.h>
25#include <yarp/dev/IFrameGrabberImage.h>
26#include <yarp/dev/IVisualParams.h>
27
28namespace yarp {
29 namespace dev {
30// class Dragonfly2OpenParameters;
31 class DragonflyDeviceDriver2;
32 class DragonflyDeviceDriver2Rgb;
33 class DragonflyDeviceDriver2Raw;
34 }
35}
36
288 public DeviceDriver,
289 public IPreciselyTimed,
290 public IFrameGrabberControls,
291 public IFrameGrabberControlsDC1394,
292 public IRgbVisualParams
293{
294private:
296 void operator=(const DragonflyDeviceDriver2&);
297
298public:
302 DragonflyDeviceDriver2(bool raw = false);
303
307 virtual ~DragonflyDeviceDriver2();
308
314 virtual bool open(yarp::os::Searchable& config);
315
320 virtual bool close(void);
321
326 virtual yarp::os::Stamp getLastInputStamp();
327
333 virtual bool setBrightness(double v);
339 virtual bool setExposure(double v);
345 virtual bool setSharpness(double v);
352 virtual bool setWhiteBalance(double blue, double red);
358 virtual bool setHue(double v);
364 virtual bool setSaturation(double v);
370 virtual bool setGamma(double v);
376 virtual bool setShutter(double v);
382 virtual bool setGain(double v);
388 virtual bool setIris(double v);
389 //virtual bool setTemperature(double v);
390 //virtual bool setWhiteShading(double r,double g,double b);
391 //virtual bool setOpticalFilter(double v);
392 //virtual bool setCaptureQuality(double v);
393
398 virtual double getBrightness();
403 virtual double getExposure();
408 virtual double getSharpness();
415 virtual bool getWhiteBalance(double &blue, double &red);
420 virtual double getHue();
425 virtual double getSaturation();
430 virtual double getGamma();
435 virtual double getShutter();
440 virtual double getGain();
445 virtual double getIris();
446
447
448 //virtual double getTemperature() const;
449 //virtual double getWhiteShading() const;
450 //virtual double getOpticalFilter() const;
451 //virtual double getCaptureQuality() const;
452
453 //virtual bool setAutoBrightness(bool bAuto=true);
454
455 //virtual bool setAutoGain(bool bAuto=true);
456
457 //virtual bool setAutoShutter(bool bAuto=true);
458
459 //virtual bool setAutoWhiteBalance(bool bAuto=true);
460
461 //virtual bool setAuto(bool bAuto=true);
462
463 //virtual void PrintSettings();
464
466 // DC1394
468
474 virtual bool hasFeatureDC1394(int feature);
481 virtual bool setFeatureDC1394(int feature, double value);
487 virtual double getFeatureDC1394(int feature);
488
494 virtual bool hasOnOffDC1394(int feature);
501 virtual bool setActiveDC1394(int feature, bool onoff);
507 virtual bool getActiveDC1394(int feature);
508
514 virtual bool hasAutoDC1394(int feature);
520 virtual bool hasManualDC1394(int feature);
526 virtual bool hasOnePushDC1394(int feature);
533 virtual bool setModeDC1394(int feature, bool auto_onoff);
539 virtual bool getModeDC1394(int feature);
545 virtual bool setOnePushDC1394(int feature);
546
564 virtual unsigned int getVideoModeMaskDC1394();
573 virtual unsigned int getVideoModeDC1394();
583 virtual bool setVideoModeDC1394(int video_mode);
584
598 virtual unsigned int getFPSMaskDC1394();
599
604 virtual unsigned int getFPSDC1394();
610 virtual bool setFPSDC1394(int fps);
611
616 virtual unsigned int getISOSpeedDC1394();
622 virtual bool setISOSpeedDC1394(int speed);
623
637 virtual unsigned int getColorCodingMaskDC1394(unsigned int video_mode);
642 virtual unsigned int getColorCodingDC1394();
648 virtual bool setColorCodingDC1394(int coding);
649
656 virtual bool setWhiteBalanceDC1394(double b, double r);
663 virtual bool getWhiteBalanceDC1394(double &b, double &r);
664
675 virtual bool getFormat7MaxWindowDC1394(unsigned int &xdim,unsigned int &ydim,unsigned int &xstep,unsigned int &ystep,unsigned int &xoffstep,unsigned int &yoffstep);
676
685 virtual bool getFormat7WindowDC1394(unsigned int &xdim,unsigned int &ydim,int &x0,int &y0);
694 virtual bool setFormat7WindowDC1394(unsigned int xdim,unsigned int ydim,int x0,int y0);
695
701 virtual bool setOperationModeDC1394(bool b1394b);
706 virtual bool getOperationModeDC1394();
707
713 virtual bool setTransmissionDC1394(bool bTxON);
718 virtual bool getTransmissionDC1394();
719 //virtual bool setBayerDC1394(bool bON);
720 //virtual bool getBayerDC1394();
721
728 virtual bool setBroadcastDC1394(bool onoff);
733 virtual bool setDefaultsDC1394();
734 /*
735 * Reset camera.
736 * @return true/false upon success/failure
737 */
738 virtual bool setResetDC1394();
744 virtual bool setPowerDC1394(bool onoff);
750 virtual bool setCaptureDC1394(bool bON);
751
757 virtual unsigned int getBytesPerPacketDC1394();
764 virtual bool setBytesPerPacketDC1394(unsigned int bpp);
765
766 //IVisualParams
767
772 virtual int getRgbHeight();
773
778 virtual int getRgbWidth();
785 virtual bool getRgbSupportedConfigurations(yarp::sig::VectorOf<yarp::dev::CameraConfig> &configurations);
793 virtual bool getRgbResolution(int &width, int &height);
801 virtual bool setRgbResolution(int width, int height);
802
810 virtual bool getRgbFOV(double &horizontalFov, double &verticalFov);
811
819 virtual bool setRgbFOV(double horizontalFov, double verticalFov);
820
829 virtual bool getRgbIntrinsicParam(yarp::os::Property &intrinsic);
830
837 virtual bool getRgbMirroring(bool &mirror);
838
845 virtual bool setRgbMirroring(bool mirror);
846
847 // Control2
848
849 /* Implementation of IFrameGrabberControls2 interface */
850 virtual bool getCameraDescription(CameraDescriptor *camera);
851 virtual bool hasFeature(int feature, bool *hasFeature);
852 virtual bool setFeature(int feature, double values);
853 virtual bool getFeature(int feature, double *values);
854 virtual bool setFeature(int feature, double value1, double value2);
855 virtual bool getFeature(int feature, double *value1, double *value2);
856 virtual bool hasOnOff(int feature, bool *HasOnOff);
857 virtual bool setActive(int feature, bool onoff);
858 virtual bool getActive(int feature, bool *isActive);
859 virtual bool hasAuto(int feature, bool *hasAuto);
860 virtual bool hasManual(int feature, bool *hasManual);
861 virtual bool hasOnePush(int feature, bool *hasOnePush);
862 virtual bool setMode(int feature, FeatureMode mode);
863 virtual bool getMode(int feature, FeatureMode *mode);
864 virtual bool setOnePush(int feature);
865
866protected:
868 bool raw;
869 FeatureMode TRANSL_MODE(bool mode) { return (mode ? MODE_AUTO : MODE_MANUAL); }
870 bool TRANSL_MODE(FeatureMode mode) { return (mode == MODE_AUTO? 1 : 0); }
871};
872
885 public IFrameGrabberImage,
886 public IFrameGrabberImageRaw
887{
888private:
890 void operator=(const DragonflyDeviceDriver2Rgb&);
891
892public:
897
902
910 bool getImage(yarp::sig::ImageOf<yarp::sig::PixelRgb>& image);
911
918 bool getImage(yarp::sig::ImageOf<yarp::sig::PixelMono>& image);
919
924 virtual int height() const;
925
930 virtual int width() const;
931};
932
945 public IFrameGrabberImageRaw
946{
947private:
949 void operator=(const DragonflyDeviceDriver2Raw&);
950
951public:
956
961
969 bool getImage(yarp::sig::ImageOf<yarp::sig::PixelMono>& image);
970
975 virtual int height() const;
976
981 virtual int width() const;
982};
983#endif
dragonfly2raw : framegrabber device driver that can acquire raw format images in 640x480 resolution.
virtual int width() const
Return the width of each frame.
virtual int height() const
Return the height of each frame.
bool getImage(yarp::sig::ImageOf< yarp::sig::PixelMono > &image)
FrameGrabber image interface, returns the last acquired frame as an rgb image.
dragonfly2 : framegrabber device driver that can acquire RGB color images in 320x240 or 640x480 resol...
virtual int height() const
Return the height of each frame.
bool getImage(yarp::sig::ImageOf< yarp::sig::PixelRgb > &image)
FrameGrabber image interface, returns the last acquired frame as an rgb image.
virtual int width() const
Return the width of each frame.
dragonfly2 and dragonfly2raw device driver implementation.
virtual bool setColorCodingDC1394(int coding)
Set image color coding.
virtual bool setActiveDC1394(int feature, bool onoff)
Switch feature on/off.
virtual bool setPowerDC1394(bool onoff)
Switch camera power ON/OFF.
virtual bool getActiveDC1394(int feature)
Is feature ON or OFF?
virtual bool setMode(int feature, FeatureMode mode)
virtual unsigned int getColorCodingDC1394()
Get image color coding.
virtual bool setWhiteBalance(double blue, double red)
Set White Balance.
virtual unsigned int getVideoModeDC1394()
Get camera acquisition mode.
virtual unsigned int getFPSMaskDC1394()
Get supported framerates mask.
virtual bool getTransmissionDC1394()
Is image transmission ON or OFF?
virtual bool hasOnOff(int feature, bool *HasOnOff)
virtual bool close(void)
Closes the device driver.
virtual bool hasManualDC1394(int feature)
Has feature Manual mode?
virtual bool getRgbFOV(double &horizontalFov, double &verticalFov)
Get the field of view (FOV) of the rgb camera.
virtual double getBrightness()
Get Brightness.
virtual bool getFormat7WindowDC1394(unsigned int &xdim, unsigned int &ydim, int &x0, int &y0)
Get image dimensions in Format 7 mode.
virtual bool setDefaultsDC1394()
Set camera features to default.
virtual double getExposure()
Get Exposure.
virtual bool setCaptureDC1394(bool bON)
Switch image capture ON/OFF.
virtual double getSharpness()
Get Sharpness.
virtual bool setVideoModeDC1394(int video_mode)
Set camera acquisition mode.
virtual bool setBroadcastDC1394(bool onoff)
Set feature commands propagation ON/OFF.
virtual bool getFormat7MaxWindowDC1394(unsigned int &xdim, unsigned int &ydim, unsigned int &xstep, unsigned int &ystep, unsigned int &xoffstep, unsigned int &yoffstep)
Get maximum image dimensions in Format 7 mode.
virtual double getFeatureDC1394(int feature)
Get feature value.
virtual unsigned int getBytesPerPacketDC1394()
Get Firewire communication packet size.
virtual bool setOnePushDC1394(int feature)
Trigger feature One Push adjust.
virtual bool getModeDC1394(int feature)
Is feature mode Auto or Manual?
virtual bool hasAutoDC1394(int feature)
Has feature Auto mode?
virtual bool setTransmissionDC1394(bool bTxON)
Set image transmission ON/OFF.
virtual bool setIris(double v)
Set Iris.
virtual bool hasFeatureDC1394(int feature)
Is feature present?
virtual bool setRgbResolution(int width, int height)
Set the resolution of the rgb image from the camera.
virtual bool setModeDC1394(int feature, bool auto_onoff)
Switch feature Auto/Manual.
virtual bool setFPSDC1394(int fps)
Set camera framerate.
virtual int getRgbWidth()
Return the width of each frame.
virtual double getSaturation()
Get Saturation.
virtual bool setWhiteBalanceDC1394(double b, double r)
Set White Balance.
virtual bool setActive(int feature, bool onoff)
virtual bool getOperationModeDC1394()
Get Operation Mode.
virtual bool getFeature(int feature, double *values)
virtual bool getRgbSupportedConfigurations(yarp::sig::VectorOf< yarp::dev::CameraConfig > &configurations)
Get the possible configurations of the camera.
virtual yarp::os::Stamp getLastInputStamp()
Implements the IPreciselyTimed interface.
virtual unsigned int getFPSDC1394()
Get camera framerate.
virtual bool setOperationModeDC1394(bool b1394b)
Set Operation Mode.
virtual bool hasManual(int feature, bool *hasManual)
virtual bool getWhiteBalanceDC1394(double &b, double &r)
Get White Balance.
virtual bool hasOnePush(int feature, bool *hasOnePush)
virtual bool hasAuto(int feature, bool *hasAuto)
virtual bool setGain(double v)
Set Gain.
virtual bool hasOnOffDC1394(int feature)
Can be feature turned on/off?
virtual bool setBytesPerPacketDC1394(unsigned int bpp)
Set Firewire communication packet size.
virtual unsigned int getISOSpeedDC1394()
Get camera Firewire ISO speed.
virtual bool setGamma(double v)
Set Gamma.
virtual bool setRgbFOV(double horizontalFov, double verticalFov)
Set the field of view (FOV) of the rgb camera.
virtual bool setShutter(double v)
Set Shutter.
virtual bool setFormat7WindowDC1394(unsigned int xdim, unsigned int ydim, int x0, int y0)
Set image dimensions in Format 7 mode.
virtual bool getActive(int feature, bool *isActive)
virtual unsigned int getVideoModeMaskDC1394()
Get supported video mode mask.
virtual bool hasOnePushDC1394(int feature)
Has feature Manual mode?
virtual bool setHue(double v)
Set Hue.
virtual bool setExposure(double v)
Set Exposure.
virtual bool setFeature(int feature, double values)
virtual bool setISOSpeedDC1394(int speed)
Set camera Firewire ISO speed.
virtual bool setSharpness(double v)
Set Sharpness.
virtual bool setSaturation(double v)
Set Saturation.
virtual bool getCameraDescription(CameraDescriptor *camera)
virtual int getRgbHeight()
Return the height of each frame.
virtual bool getRgbIntrinsicParam(yarp::os::Property &intrinsic)
Get the intrinsic parameters of the rgb camera.
virtual bool getWhiteBalance(double &blue, double &red)
Get White Balance.
virtual bool open(yarp::os::Searchable &config)
Open the device driver.
virtual bool hasFeature(int feature, bool *hasFeature)
virtual unsigned int getColorCodingMaskDC1394(unsigned int video_mode)
Get supported color coding mask.
virtual bool getRgbMirroring(bool &mirror)
Get the mirroring setting of the sensor.
virtual double getShutter()
Get Shutter.
virtual bool getMode(int feature, FeatureMode *mode)
virtual bool getRgbResolution(int &width, int &height)
Get the resolution of the rgb image from the camera.
virtual bool setBrightness(double v)
Set Brightness.
virtual bool setFeatureDC1394(int feature, double value)
Set feature value.
virtual bool setRgbMirroring(bool mirror)
Set the mirroring setting of the sensor.
Copyright (C) 2008 RobotCub Consortium.