Fawkes API Fawkes Development Version

firevision::FirewireCamera Class Reference

Firewire camera. More...

#include <>>

Inheritance diagram for firevision::FirewireCamera:

List of all members.

Public Member Functions

 FirewireCamera (dc1394framerate_t framerate=DC1394_FRAMERATE_30, dc1394video_mode_t mode=DC1394_VIDEO_MODE_640x480_YUV422, dc1394speed_t speed=DC1394_ISO_SPEED_400, int num_buffers=8)
 Constructor.
 FirewireCamera (const CameraArgumentParser *cap)
 Constructor.
virtual ~FirewireCamera ()
 Empty destructor.
virtual void open ()
 Open the camera.
virtual void start ()
 Start image transfer from the camera.
virtual void stop ()
 Stop image transfer from the camera.
virtual void close ()
 Close camera.
virtual void flush ()
 Flush image queue.
virtual void capture ()
 Capture an image.
virtual void print_info ()
 Print out camera information.
virtual bool ready ()
 Camera is ready for taking pictures.
virtual unsigned char * buffer ()
 Get access to current image buffer.
virtual unsigned int buffer_size ()
 Size of buffer.
virtual void dispose_buffer ()
 Dispose current buffer.
virtual unsigned int pixel_width ()
 Width of image in pixels.
virtual unsigned int pixel_height ()
 Height of image in pixels.
virtual colorspace_t colorspace ()
 Colorspace of returned image.
virtual void set_image_number (unsigned int n)
 Set image number to retrieve.
bool iso_mode_enabled ()
 Check if ISO mode is enabled.
virtual bool auto_focus ()
 Check if auto focus is enabled.
virtual void set_auto_focus (bool enabled)
 Enable or disable auto focus.
virtual unsigned int focus ()
 Get current focus value.
virtual void set_focus (unsigned int focus)
 Set new focus value.
virtual unsigned int focus_min ()
 Get minimum focus value.
virtual unsigned int focus_max ()
 Get maximum focus value.
virtual bool auto_shutter ()
 Get status of auto shutter.
virtual void set_auto_shutter (bool enabled)
 Set status of auto shutter.
virtual unsigned int shutter ()
 Get shutter value.
virtual void set_shutter (unsigned int shutter)
 Set shutter value.
virtual bool auto_white_balance ()
 Get status of auto white balance.
virtual void set_auto_white_balance (bool enabled)
 Set status of auto white balance.
virtual void white_balance (unsigned int *ub, unsigned int *vr)
 Get white balance values.
virtual void set_white_balance (unsigned int ub, unsigned int vr)
 Set white balance values.
virtual void set_gain (unsigned int gain)
 Set the gain.
virtual void parse_set_focus (const char *focus)
 Parse focus and set value.
virtual void parse_set_white_balance (const char *white_balance)
 Parse white balance and set value.
virtual void parse_set_shutter (const char *shutter)
 Parse shutter and set value.
virtual uint64_t guid () const
 Get Firewire GUID of camera.
virtual const char * model () const
 Get camera model.

Static Public Member Functions

static void print_available_fwcams ()
 Print list of cameras.

Protected Attributes

int _num_buffers
 Number of DMA buffers.
bool _opened
 true if camera has been opened, false otherwise
bool _started
 true if camera has been started, false otherwise
bool _auto_focus
 true if auto focus is enabled, false if disabled
bool _auto_shutter
 true if auto shutter is enabled, false if disabled
bool _auto_white_balance
 true if auto white balance is enabled, false if disabled
bool _valid_frame_received
 true, if a valid frame has been received, false otherwise
bool _do_set_shutter
 true if the shutter should actually be set, false otherwise
bool _do_set_white_balance
 true if the white balance should actually be set, false otherwise
bool _do_set_focus
 true if the focus should actually be set, false otherwise
dc1394_t * _dc1394
 DC1394 main context.
dc1394video_mode_t _mode
 DC1394 video mode.
bool _format7_mode_enabled
 Indicator of Format7 status.
dc1394speed_t _speed
 DC1394 speed.
dc1394framerate_t _framerate
 DC1394 framerate.
dc1394camera_t * _camera
 DC1394 camera handle.
dc1394video_frame_t * _frame
 Last captured DC1394 video frame.
dc1394color_coding_t _format7_coding
 Format7 color coding.
int _format7_bpp
 Format7 bytes per packet.
int _format7_width
 Format7 width.
int _format7_height
 Format7 height.
int _format7_startx
 Format7 ROI Start X coordinate.
int _format7_starty
 Format7 ROI Start Y coordinate.
unsigned int _white_balance_ub
 White balance U/B value.
unsigned int _white_balance_vr
 White balance V/R value.
unsigned int _shutter
 Shutter value.
unsigned int _focus
 Focus value.
unsigned int _gain
 Gain value.
bool _auto_gain
 True, if gain is set automatically.
char * _model
 Camera model, used in open to identify the camera, if empty first found camera is used.

Detailed Description

Firewire camera.

This camera implementation allows for access to IEEE1394 cameras via libdc1394.

Author:
Tim Niemueller

Definition at line 44 of file firewire.h.


Constructor & Destructor Documentation

firevision::FirewireCamera::FirewireCamera ( dc1394framerate_t  framerate = DC1394_FRAMERATE_30,
dc1394video_mode_t  mode = DC1394_VIDEO_MODE_640x480_YUV422,
dc1394speed_t  speed = DC1394_ISO_SPEED_400,
int  num_buffers = 8 
)

Constructor.

Parameters:
frameratedesired framerate
modedesired mode
speedIEEE 1394 speed
num_buffersnumber of DMA buffers

Definition at line 60 of file firewire.cpp.

firevision::FirewireCamera::FirewireCamera ( const CameraArgumentParser cap)

Constructor.

Initialize and take parameters from camera argument parser. The following arguments are supported:

  • mode=MODE where MODE is one of
    • 640x480_YUV422
    • 640x480_MONO16
    • FORMAT7_0
    • FORMAT7_1
    • FORMAT7_2
    • FORMAT7_3
    • FORMAT7_4
    • FORMAT7_5
    • FORMAT7_6
    • FORMAT7_7
  • coding=CODING, color coding for Format7, CODING is one of:
    • YUV422
    • MONO8
    • MONO16
    • RAW16
  • isospeed=SPEED, ISO speed, SPEED is one of:
    • 400
    • 800
  • framerate=FPS, desired rate in frames per second, FPS is one of:
    • 15
    • 30
    • 60
    • 120
  • nbufs=NBUFS, number of DMA buffers, integer, 0 < n <= 32
  • width=WIDTH, width in pixels of Format7 ROI
  • height=HEIGHT, height in pixels of Format7 ROI
  • startx=STARTX, X start of Format7 ROI
  • starty=STARTY, Y start of Format7 ROI
  • packetsize=BYTES, packet size in BYTES
  • white_balance=(auto|U,V), white balance value, either auto for auto white balance or U/B and V/R values for adjustment
  • shutter=auto, determine the shutter time automatically
  • focus=MODE, MODE is either auto for auto focus, manual for manual focus without actually setting (for example set from external application) or a number for the focus.
    Parameters:
    capcamera argument parser

Definition at line 854 of file firewire.cpp.

References firevision::CameraArgumentParser::cam_id(), firevision::CameraArgumentParser::get(), and firevision::CameraArgumentParser::has().

firevision::FirewireCamera::~FirewireCamera ( ) [virtual]

Empty destructor.

Definition at line 97 of file firewire.cpp.


Member Function Documentation

bool firevision::FirewireCamera::auto_focus ( ) [virtual]

Check if auto focus is enabled.

Returns:
true, if the camera is in auto focus mode, false otherwise
Exceptions:
NotImplementedExceptionNot implemented by this control

Implements firevision::CameraControlFocus.

Definition at line 540 of file firewire.cpp.

bool firevision::FirewireCamera::auto_shutter ( ) [virtual]

Get status of auto shutter.

Returns:
true if auto shutter is enabled, false otherwise

Definition at line 610 of file firewire.cpp.

bool firevision::FirewireCamera::auto_white_balance ( ) [virtual]

Get status of auto white balance.

Returns:
true if white balance is enabled, false otherwise

Definition at line 660 of file firewire.cpp.

unsigned char * firevision::FirewireCamera::buffer ( ) [virtual]

Get access to current image buffer.

This will return a pointer to the current buffer. The buffer contains an image of the given colorspace, width and height.

Returns:
pointer to image buffer

Implements firevision::Camera.

Reimplemented in firevision::Bumblebee2Camera.

Definition at line 352 of file firewire.cpp.

unsigned int firevision::FirewireCamera::buffer_size ( ) [virtual]

Size of buffer.

Gets the size in bytes of the buffer returned by buffer().

Returns:
size of buffer in bytes

Implements firevision::Camera.

Definition at line 363 of file firewire.cpp.

void firevision::FirewireCamera::capture ( ) [virtual]

Capture an image.

Although cameras shall operate with a continuous image flow where possible sometimes capturing an image means copying a buffer or advancing a buffer list pointer. This shall be done in this method. For a camera-using application it is mandatory to call capture() just before accessing the image buffer.

Implements firevision::Camera.

Reimplemented in firevision::Bumblebee2Camera.

Definition at line 316 of file firewire.cpp.

void firevision::FirewireCamera::close ( ) [virtual]

Close camera.

This closes the camera device. The camera must have been stopped before calling close().

Implements firevision::Camera.

Reimplemented in firevision::Bumblebee2Camera.

Definition at line 373 of file firewire.cpp.

colorspace_t firevision::FirewireCamera::colorspace ( ) [virtual]

Colorspace of returned image.

Returns:
colorspace of image returned by buffer()

Implements firevision::Camera.

Definition at line 438 of file firewire.cpp.

void firevision::FirewireCamera::dispose_buffer ( ) [virtual]

Dispose current buffer.

Some cameras need disposal of the current buffer (for example to free space in a queue to retrieve the next image). This is done with this method. It has to be called after all work has been done on the image as desired. After dispose_buffer() has been called no further access may happen to the image buffer or undesired behavior may happen.

Implements firevision::Camera.

Definition at line 387 of file firewire.cpp.

void firevision::FirewireCamera::flush ( ) [virtual]

Flush image queue.

Some cameras may have an image buffer queue. With this it can happen that if the processing of an image took longer than desired it is needed to flush this buffer queue.

Implements firevision::Camera.

Definition at line 342 of file firewire.cpp.

unsigned int firevision::FirewireCamera::focus ( ) [virtual]

Get current focus value.

Returns:
current focus value.

Implements firevision::CameraControlFocus.

Definition at line 547 of file firewire.cpp.

unsigned int firevision::FirewireCamera::focus_max ( ) [virtual]

Get maximum focus value.

Returns:
maximum focus value.

Implements firevision::CameraControlFocus.

Definition at line 580 of file firewire.cpp.

unsigned int firevision::FirewireCamera::focus_min ( ) [virtual]

Get minimum focus value.

Returns:
minimum focus value.

Implements firevision::CameraControlFocus.

Definition at line 567 of file firewire.cpp.

uint64_t firevision::FirewireCamera::guid ( ) const [virtual]

Get Firewire GUID of camera.

Returns:
IEEE1394 GUID

Definition at line 291 of file firewire.cpp.

Referenced by firevision::Bumblebee2Camera::print_info(), and firevision::Bumblebee2Camera::verify_guid().

bool firevision::FirewireCamera::iso_mode_enabled ( )

Check if ISO mode is enabled.

Returns:
true if isochronous transfer is running, false otherwise.
Exceptions:
Exceptionthrown if the transmission status could not be determined

Definition at line 255 of file firewire.cpp.

const char * firevision::FirewireCamera::model ( ) const [virtual]

Get camera model.

Returns:
string with the camera model name

Definition at line 305 of file firewire.cpp.

void firevision::FirewireCamera::open ( ) [virtual]

Open the camera.

The camera is opened, but image transfer not yet started. This can be used to detect general problems with the camera while delaying the real transfer startup until it is needed.

Implements firevision::Camera.

Reimplemented in firevision::Bumblebee2Camera, and firevision::PikeCamera.

Definition at line 108 of file firewire.cpp.

void firevision::FirewireCamera::parse_set_focus ( const char *  focus) [virtual]

Parse focus and set value.

Parses the given string for a valid focus value and sets it.

Parameters:
focusstring representation of value

Definition at line 724 of file firewire.cpp.

Referenced by firevision::Bumblebee2Camera::Bumblebee2Camera().

void firevision::FirewireCamera::parse_set_shutter ( const char *  shutter) [virtual]

Parse shutter and set value.

Parses the given string for a valid shutter value and sets it.

Parameters:
shutterstring representation of value

Definition at line 793 of file firewire.cpp.

Referenced by firevision::Bumblebee2Camera::Bumblebee2Camera().

void firevision::FirewireCamera::parse_set_white_balance ( const char *  white_balance) [virtual]

Parse white balance and set value.

Parses the given string for a valid white balance value and sets it.

Parameters:
white_balancestring representation of value

Definition at line 751 of file firewire.cpp.

Referenced by firevision::Bumblebee2Camera::Bumblebee2Camera().

unsigned int firevision::FirewireCamera::pixel_height ( ) [virtual]

Height of image in pixels.

Returns:
height of image in pixels

Implements firevision::Camera.

Definition at line 417 of file firewire.cpp.

Referenced by firevision::Bumblebee2Camera::decode_bayer(), firevision::Bumblebee2Camera::deinterlace_stereo(), and firevision::Bumblebee2Camera::open().

unsigned int firevision::FirewireCamera::pixel_width ( ) [virtual]

Width of image in pixels.

Returns:
width of image in pixels

Implements firevision::Camera.

Definition at line 396 of file firewire.cpp.

Referenced by firevision::Bumblebee2Camera::decode_bayer(), firevision::Bumblebee2Camera::deinterlace_stereo(), and firevision::Bumblebee2Camera::open().

void firevision::FirewireCamera::print_available_fwcams ( ) [static]

Print list of cameras.

Prints a list of available cameras to stdout.

Definition at line 998 of file firewire.cpp.

void firevision::FirewireCamera::print_info ( ) [virtual]

Print out camera information.

Shall print out camera information and current setup information on stdout.

Implements firevision::Camera.

Reimplemented in firevision::Bumblebee2Camera, and firevision::PikeCamera.

Definition at line 267 of file firewire.cpp.

bool firevision::FirewireCamera::ready ( ) [virtual]

Camera is ready for taking pictures.

The camera has been opened and started correctly and may now provide images.

Returns:
true, if the camera is ready, false otherwise

Implements firevision::Camera.

Definition at line 510 of file firewire.cpp.

void firevision::FirewireCamera::set_auto_focus ( bool  enabled) [virtual]

Enable or disable auto focus.

Parameters:
enabledif true, enable auto focus, otherwise disable
Exceptions:
NotImplementedExceptionNot implemented by this control

Implements firevision::CameraControlFocus.

Definition at line 525 of file firewire.cpp.

void firevision::FirewireCamera::set_auto_shutter ( bool  enabled) [virtual]

Set status of auto shutter.

Parameters:
enabledtrue to enable auto shutter, false to disable.

Definition at line 596 of file firewire.cpp.

void firevision::FirewireCamera::set_auto_white_balance ( bool  enabled) [virtual]

Set status of auto white balance.

Parameters:
enabledtrue to enable auto white balance, false to disable.

Definition at line 646 of file firewire.cpp.

void firevision::FirewireCamera::set_focus ( unsigned int  focus) [virtual]

Set new focus value.

Parameters:
focusnew focus value

Implements firevision::CameraControlFocus.

Definition at line 560 of file firewire.cpp.

void firevision::FirewireCamera::set_gain ( unsigned int  gain) [virtual]

Set the gain.

Parameters:
gainthe gain value

Definition at line 698 of file firewire.cpp.

void firevision::FirewireCamera::set_image_number ( unsigned int  n) [virtual]

Set image number to retrieve.

If a camera is able to retrieve several images this method can be used to select the image to be retrieved with the next call to capture().

Parameters:
nimage number to set

Implements firevision::Camera.

Reimplemented in firevision::Bumblebee2Camera.

Definition at line 517 of file firewire.cpp.

void firevision::FirewireCamera::set_shutter ( unsigned int  shutter) [virtual]

Set shutter value.

Parameters:
shuttershutter value

Definition at line 620 of file firewire.cpp.

void firevision::FirewireCamera::set_white_balance ( unsigned int  ub,
unsigned int  vr 
) [virtual]

Set white balance values.

Parameters:
ubU/B value
vrV/R value

Definition at line 687 of file firewire.cpp.

unsigned int firevision::FirewireCamera::shutter ( ) [virtual]

Get shutter value.

Returns:
the current shutter value

Definition at line 632 of file firewire.cpp.

void firevision::FirewireCamera::start ( ) [virtual]

Start image transfer from the camera.

For many cameras opening the camera and starting transmission of images are two tasks. This method will simply initiate the transfer after the camera as been opened. And exception shall be thrown if the camera has not been opened.

Implements firevision::Camera.

Definition at line 214 of file firewire.cpp.

void firevision::FirewireCamera::stop ( ) [virtual]

Stop image transfer from the camera.

This will stop the image transfer initiated with start(). This can be used to start and stop the image transfer at will without opening and closing operations inbetween.

Implements firevision::Camera.

Definition at line 242 of file firewire.cpp.

void firevision::FirewireCamera::white_balance ( unsigned int *  ub,
unsigned int *  vr 
) [virtual]

Get white balance values.

Parameters:
ubcontains U/B value upon return
vrcontains V/R value upon return

Definition at line 671 of file firewire.cpp.


Member Data Documentation

true if auto focus is enabled, false if disabled

Definition at line 120 of file firewire.h.

True, if gain is set automatically.

Definition at line 175 of file firewire.h.

true if auto shutter is enabled, false if disabled

Definition at line 122 of file firewire.h.

true if auto white balance is enabled, false if disabled

Definition at line 124 of file firewire.h.

dc1394_t* firevision::FirewireCamera::_dc1394 [protected]

DC1394 main context.

Definition at line 135 of file firewire.h.

true if the focus should actually be set, false otherwise

Definition at line 132 of file firewire.h.

true if the shutter should actually be set, false otherwise

Definition at line 128 of file firewire.h.

true if the white balance should actually be set, false otherwise

Definition at line 130 of file firewire.h.

unsigned int firevision::FirewireCamera::_focus [protected]

Focus value.

Definition at line 170 of file firewire.h.

Format7 bytes per packet.

Definition at line 151 of file firewire.h.

dc1394color_coding_t firevision::FirewireCamera::_format7_coding [protected]

Format7 color coding.

Definition at line 149 of file firewire.h.

Referenced by firevision::Bumblebee2Camera::Bumblebee2Camera().

Format7 height.

Definition at line 155 of file firewire.h.

Referenced by firevision::Bumblebee2Camera::Bumblebee2Camera().

Indicator of Format7 status.

Definition at line 139 of file firewire.h.

Format7 ROI Start X coordinate.

Definition at line 157 of file firewire.h.

Referenced by firevision::Bumblebee2Camera::Bumblebee2Camera().

Format7 ROI Start Y coordinate.

Definition at line 159 of file firewire.h.

Referenced by firevision::Bumblebee2Camera::Bumblebee2Camera().

Format7 width.

Definition at line 153 of file firewire.h.

Referenced by firevision::Bumblebee2Camera::Bumblebee2Camera().

dc1394video_frame_t* firevision::FirewireCamera::_frame [protected]

Last captured DC1394 video frame.

Definition at line 147 of file firewire.h.

Referenced by firevision::Bumblebee2Camera::capture(), and firevision::Bumblebee2Camera::deinterlace_stereo().

dc1394framerate_t firevision::FirewireCamera::_framerate [protected]

DC1394 framerate.

Definition at line 143 of file firewire.h.

unsigned int firevision::FirewireCamera::_gain [protected]

Gain value.

Definition at line 173 of file firewire.h.

dc1394video_mode_t firevision::FirewireCamera::_mode [protected]

DC1394 video mode.

Definition at line 137 of file firewire.h.

Camera model, used in open to identify the camera, if empty first found camera is used.

Definition at line 178 of file firewire.h.

Referenced by firevision::Bumblebee2Camera::Bumblebee2Camera().

Number of DMA buffers.

Definition at line 114 of file firewire.h.

Referenced by firevision::Bumblebee2Camera::Bumblebee2Camera().

unsigned int firevision::FirewireCamera::_shutter [protected]

Shutter value.

Definition at line 167 of file firewire.h.

dc1394speed_t firevision::FirewireCamera::_speed [protected]

DC1394 speed.

Definition at line 141 of file firewire.h.

true if camera has been started, false otherwise

Definition at line 118 of file firewire.h.

true, if a valid frame has been received, false otherwise

Definition at line 126 of file firewire.h.

White balance U/B value.

Definition at line 162 of file firewire.h.

White balance V/R value.

Definition at line 164 of file firewire.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends