Fawkes API Fawkes Development Version
firewire.h
1
2/***************************************************************************
3 * firewire.h - This header defines a Firewire 1394 cam
4 *
5 * Generated: Tue Feb 22 10:36:39 2005
6 * Copyright 2005 Tim Niemueller [www.niemueller.de]
7 *
8 ****************************************************************************/
9
10/* This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation; either version 2 of the License, or
13 * (at your option) any later version. A runtime exception applies to
14 * this software (see LICENSE.GPL_WRE file mentioned below for details).
15 *
16 * This program is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU Library General Public License for more details.
20 *
21 * Read the full text in the LICENSE.GPL_WRE file in the doc directory.
22 */
23
24#ifndef _FIREVISION_CAMS_FIREWIRE_H_
25#define _FIREVISION_CAMS_FIREWIRE_H_
26
27#include <dc1394/dc1394.h>
28#include <fvcams/camera.h>
29#include <fvcams/control/focus.h>
30
31#ifndef __STDC_LIMIT_MACROS
32# define __STDC_LIMIT_MACROS
33#endif
34#include <stdint.h>
35
36namespace firevision {
37
38class CameraArgumentParser;
39
41{
42public:
43 FirewireCamera(dc1394framerate_t framerate = DC1394_FRAMERATE_30,
44 dc1394video_mode_t mode = DC1394_VIDEO_MODE_640x480_YUV422,
45 dc1394speed_t speed = DC1394_ISO_SPEED_400,
46 int num_buffers = 8);
48
49 virtual ~FirewireCamera();
50
51 virtual void open_device();
52 virtual void open();
53 virtual void start();
54 virtual void stop();
55 virtual void close();
56 virtual void flush();
57 virtual void capture();
58
59 virtual void print_info();
60 virtual bool ready();
61
62 virtual unsigned char *buffer();
63 virtual unsigned int buffer_size();
64 virtual void dispose_buffer();
65
66 virtual unsigned int pixel_width();
67 virtual unsigned int pixel_height();
68 virtual colorspace_t colorspace();
69
70 virtual void set_image_number(unsigned int n);
71
72 bool iso_mode_enabled();
73
74 virtual bool auto_focus();
75 virtual void set_auto_focus(bool enabled);
76
77 virtual unsigned int focus();
78 virtual void set_focus(unsigned int focus);
79 virtual unsigned int focus_min();
80 virtual unsigned int focus_max();
81
82 virtual bool auto_shutter();
83 virtual void set_auto_shutter(bool enabled);
84
85 virtual unsigned int shutter();
86 virtual void set_shutter(unsigned int shutter);
87
88 virtual bool auto_white_balance();
89 virtual void set_auto_white_balance(bool enabled);
90
91 virtual void white_balance(unsigned int *ub, unsigned int *vr);
92 virtual void set_white_balance(unsigned int ub, unsigned int vr);
93
94 virtual void set_gain(unsigned int gain);
95
96 virtual void parse_set_focus(const char *focus);
97 virtual void parse_set_white_balance(const char *white_balance);
98 virtual void parse_set_shutter(const char *shutter);
99
100 virtual uint64_t guid() const;
101 virtual const char *model() const;
102
103 static void print_available_fwcams();
104
105 /** Get underlying libdc1394 C handle.
106 * @return libdc1394 handle */
107 dc1394_t *
108 cobj() const
109 {
110 return _dc1394;
111 }
112
113 /** Get underlying libdc1394 camera C handle.
114 * @return libdc1394 camera handle */
115 dc1394camera_t *
117 {
118 return _camera;
119 }
120
121protected:
122 /** Number of DMA buffers. */
124 /** true if device has been opened, false otherwise */
126 /** true if camera has been opened, false otherwise */
128 /** true if camera has been started, false otherwise */
130 /** true if auto focus is enabled, false if disabled */
132 /** true if auto shutter is enabled, false if disabled */
134 /** true if auto white balance is enabled, false if disabled */
136 /** true, if a valid frame has been received, false otherwise */
138 /** true if the shutter should actually be set, false otherwise */
140 /** true if the white balance should actually be set, false otherwise */
142 /** true if the focus should actually be set, false otherwise */
144
145 /** DC1394 main context */
146 dc1394_t *_dc1394;
147 /** DC1394 video mode */
148 dc1394video_mode_t _mode;
149 /** Indicator of Format7 status. */
151 /** DC1394 speed */
152 dc1394speed_t _speed;
153 /** DC1394 framerate */
154 dc1394framerate_t _framerate;
155 /** DC1394 camera handle */
156 dc1394camera_t *_camera;
157 /** Last captured DC1394 video frame */
158 dc1394video_frame_t *_frame;
159 /** Format7 color coding */
160 dc1394color_coding_t _format7_coding;
161 /** Format7 bytes per packet */
163 /** Format7 width */
165 /** Format7 height */
167 /** Format7 ROI Start X coordinate */
169 /** Format7 ROI Start Y coordinate */
171
172 /** White balance U/B value */
173 unsigned int _white_balance_ub;
174 /** White balance V/R value */
175 unsigned int _white_balance_vr;
176
177 /** Shutter value */
178 unsigned int _shutter;
179
180 /** Focus value */
181 unsigned int _focus;
182
183 /** Gain value */
184 unsigned int _gain;
185 /** True, if gain is set automatically */
187
188 /** Camera model, used in open to identify the camera, if empty first found camera is used */
189 char *_model;
190};
191
192} // end namespace firevision
193
194#endif
Camera argument parser.
Definition: camargp.h:36
Camera focus control interface.
Definition: focus.h:33
Camera interface for image aquiring devices in FireVision.
Definition: camera.h:33
Firewire camera.
Definition: firewire.h:41
bool _do_set_shutter
true if the shutter should actually be set, false otherwise
Definition: firewire.h:139
int _format7_starty
Format7 ROI Start Y coordinate.
Definition: firewire.h:170
virtual void white_balance(unsigned int *ub, unsigned int *vr)
Get white balance values.
Definition: firewire.cpp:659
bool _device_opened
true if device has been opened, false otherwise
Definition: firewire.h:125
virtual void set_auto_focus(bool enabled)
Enable or disable auto focus.
Definition: firewire.cpp:521
virtual void print_info()
Print out camera information.
Definition: firewire.cpp:279
virtual unsigned int focus_max()
Get maximum focus value.
Definition: firewire.cpp:573
virtual const char * model() const
Get camera model.
Definition: firewire.cpp:319
virtual colorspace_t colorspace()
Colorspace of returned image.
Definition: firewire.cpp:452
bool _started
true if camera has been started, false otherwise
Definition: firewire.h:129
virtual unsigned int focus()
Get current focus value.
Definition: firewire.cpp:544
dc1394framerate_t _framerate
DC1394 framerate.
Definition: firewire.h:154
dc1394_t * cobj() const
Get underlying libdc1394 C handle.
Definition: firewire.h:108
dc1394speed_t _speed
DC1394 speed.
Definition: firewire.h:152
virtual void close()
Close camera.
Definition: firewire.cpp:384
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.
Definition: firewire.cpp:56
virtual void parse_set_white_balance(const char *white_balance)
Parse white balance and set value.
Definition: firewire.cpp:739
static void print_available_fwcams()
Print list of cameras.
Definition: firewire.cpp:984
bool _auto_focus
true if auto focus is enabled, false if disabled
Definition: firewire.h:131
unsigned int _white_balance_ub
White balance U/B value.
Definition: firewire.h:173
virtual unsigned int pixel_width()
Width of image in pixels.
Definition: firewire.cpp:408
virtual void set_auto_shutter(bool enabled)
Set status of auto shutter.
Definition: firewire.cpp:588
virtual void set_focus(unsigned int focus)
Set new focus value.
Definition: firewire.cpp:555
virtual void set_gain(unsigned int gain)
Set the gain.
Definition: firewire.cpp:686
bool _auto_gain
True, if gain is set automatically.
Definition: firewire.h:186
virtual void open_device()
Open the desired device.
Definition: firewire.cpp:105
int _format7_width
Format7 width.
Definition: firewire.h:164
int _format7_startx
Format7 ROI Start X coordinate.
Definition: firewire.h:168
virtual void set_image_number(unsigned int n)
Set image number to retrieve.
Definition: firewire.cpp:514
virtual void set_white_balance(unsigned int ub, unsigned int vr)
Set white balance values.
Definition: firewire.cpp:675
virtual void set_auto_white_balance(bool enabled)
Set status of auto white balance.
Definition: firewire.cpp:635
virtual void capture()
Capture an image.
Definition: firewire.cpp:329
dc1394camera_t * _camera
DC1394 camera handle.
Definition: firewire.h:156
virtual void parse_set_shutter(const char *shutter)
Parse shutter and set value.
Definition: firewire.cpp:780
virtual unsigned char * buffer()
Get access to current image buffer.
Definition: firewire.cpp:364
virtual unsigned int shutter()
Get shutter value.
Definition: firewire.cpp:622
virtual unsigned int pixel_height()
Height of image in pixels.
Definition: firewire.cpp:430
unsigned int _shutter
Shutter value.
Definition: firewire.h:178
virtual void open()
Open the camera.
Definition: firewire.cpp:147
virtual unsigned int buffer_size()
Size of buffer.
Definition: firewire.cpp:374
char * _model
Camera model, used in open to identify the camera, if empty first found camera is used.
Definition: firewire.h:189
virtual bool auto_focus()
Check if auto focus is enabled.
Definition: firewire.cpp:538
dc1394_t * _dc1394
DC1394 main context.
Definition: firewire.h:146
bool _do_set_focus
true if the focus should actually be set, false otherwise
Definition: firewire.h:143
bool _valid_frame_received
true, if a valid frame has been received, false otherwise
Definition: firewire.h:137
bool _opened
true if camera has been opened, false otherwise
Definition: firewire.h:127
dc1394color_coding_t _format7_coding
Format7 color coding.
Definition: firewire.h:160
int _format7_bpp
Format7 bytes per packet.
Definition: firewire.h:162
bool _format7_mode_enabled
Indicator of Format7 status.
Definition: firewire.h:150
unsigned int _gain
Gain value.
Definition: firewire.h:184
bool iso_mode_enabled()
Check if ISO mode is enabled.
Definition: firewire.cpp:268
virtual bool ready()
Camera is ready for taking pictures.
Definition: firewire.cpp:508
virtual bool auto_white_balance()
Get status of auto white balance.
Definition: firewire.cpp:649
unsigned int _white_balance_vr
White balance V/R value.
Definition: firewire.h:175
virtual void start()
Start image transfer from the camera.
Definition: firewire.cpp:224
virtual ~FirewireCamera()
Empty destructor.
Definition: firewire.cpp:92
bool _do_set_white_balance
true if the white balance should actually be set, false otherwise
Definition: firewire.h:141
virtual uint64_t guid() const
Get Firewire GUID of camera.
Definition: firewire.cpp:306
int _format7_height
Format7 height.
Definition: firewire.h:166
dc1394video_mode_t _mode
DC1394 video mode.
Definition: firewire.h:148
virtual void stop()
Stop image transfer from the camera.
Definition: firewire.cpp:254
unsigned int _focus
Focus value.
Definition: firewire.h:181
virtual void dispose_buffer()
Dispose current buffer.
Definition: firewire.cpp:400
virtual void set_shutter(unsigned int shutter)
Set shutter value.
Definition: firewire.cpp:611
virtual unsigned int focus_min()
Get minimum focus value.
Definition: firewire.cpp:561
virtual bool auto_shutter()
Get status of auto shutter.
Definition: firewire.cpp:602
int _num_buffers
Number of DMA buffers.
Definition: firewire.h:123
virtual void parse_set_focus(const char *focus)
Parse focus and set value.
Definition: firewire.cpp:713
virtual void flush()
Flush image queue.
Definition: firewire.cpp:355
dc1394camera_t * camera_cobj() const
Get underlying libdc1394 camera C handle.
Definition: firewire.h:116
dc1394video_frame_t * _frame
Last captured DC1394 video frame.
Definition: firewire.h:158
bool _auto_white_balance
true if auto white balance is enabled, false if disabled
Definition: firewire.h:135
bool _auto_shutter
true if auto shutter is enabled, false if disabled
Definition: firewire.h:133