iCub-main
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 
28 namespace 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 {
294 private:
296  void operator=(const DragonflyDeviceDriver2&);
297 
298 public:
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 
866 protected:
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 {
888 private:
890  void operator=(const DragonflyDeviceDriver2Rgb&);
891 
892 public:
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 {
947 private:
949  void operator=(const DragonflyDeviceDriver2Raw&);
950 
951 public:
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.