Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

L1394::DccCamera Class Reference
[L1394_NodeL1394_Device]

This class implements the interface of a camera defined in the 1394-based Digital Camera Specification. (Version 1.20). More...

#include <l1394_dcccamera.h>

Inheritance diagram for L1394::DccCamera:

L1394::Node L1394::Camera L1394::Device List of all members.

Public Member Functions

void setFramerate (const Framerate framerate)
DccCamera constructor
These functions creates the DccCamera objects.

 DccCamera (const u_int32_t node_id, const Card *parent)
 Constructor.
virtual ~DccCamera ()
 destructor
Camera information
These functions return some camera specific information.

Quadlet getFeatureHiInquiry ()
 This method reads the first feature Quadlet from a DccCamera.
Quadlet getFeatureLoInquiry ()
 This method reads the second feature quadlet from a DccCamera.
virtual bool hasVideoFormat (const Videomode videomode)
 This method tests, if a videomode is supported by a Camera.
virtual bool hasFramerate (const Videomode mode, const Framerate framerate)
 This method tests, if a framerate, with a videomode is supported.
virtual int setParameter (const int buffercount=2, const int channel=FREE_ISO_CHANNEL, const Isomode isomode=DEVICE_ISO_RUN, const Videomode videomode=DEVICE_320x240_YUV_422, const Framerate framerate=DEVICE_FRAMES_30)
 This method initialize the camera and create the iso object.
Basic functions
These functions implement the basic functions, defined in abstract class Device.

virtual int start ()
 This method starts the camera.
virtual int stop ()
 This method stops a sending camera.
virtual void shot ()
 This method sends a command to the DccCamera to send one frame.
virtual void multiShot (unsigned int)
 This method enables multiShot.
virtual FramegetFrame ()
 This method returns a pointer to the actual frame of a DccCamera.
virtual IsogetIsoObject () const
 This method returns the current Iso object.
virtual int init ()
 This method inits the camera to the parameter set by the function setParameter() .
DccCamera control interface
These functions describe the interface of a camera

virtual const CameraRegisterbrightness ()
 Access 'Brightness' feature register.
virtual const CameraRegisterautoExposure ()
 Access 'Auto-Exposure' feature CDC_register.
virtual const CameraRegistersharpness ()
 Access 'Sharpness' feature dcc_register.
virtual const CameraRegisterwhiteBalance ()
 Access 'White-Balance' feature dcc_register.
virtual const CameraRegisterwhiteBalance (int value)
 Access 'White-Balance' feature dcc_register.
virtual const CameraRegisterhue ()
 Access 'Hue' feature dcc_register.
virtual const CameraRegistersaturation ()
 Access 'Saturation' feature dcc_register.
virtual const CameraRegistergamma ()
 Access 'Gamma' feature dcc_register.
virtual const CameraRegistershutter ()
 Access 'Shutter' feature dcc_register.
virtual const CameraRegistergain ()
 Access 'Gain' feature dcc_register.
virtual const CameraRegisteriris ()
 Access 'Iris' feature dcc_register.
virtual const CameraRegisterfocus ()
 Access 'Focus' feature dcc_register.
virtual const CameraRegistertemperature ()
 Access 'Temperature' feature dcc_register.
virtual const CameraRegistertrigger ()
 Access 'Trigger' feature dcc_register.
virtual const CameraRegisterzoom ()
 Access 'Zoom' feature dcc_register.
virtual const CameraRegisterpan ()
 Access 'Pan' feature dcc_register.
virtual const CameraRegistertilt ()
 Access 'Tilt' feature dcc_register.
virtual const CameraRegisterfilter ()
 Access 'Filter' feature dcc_register.

Protected Member Functions

void setFramerate ()
void setVideoMode ()

Detailed Description

This class implements the interface of a camera defined in the 1394-based Digital Camera Specification. (Version 1.20).

The mechanism to create commands is the same, as described in class Camera .

The Session class provides also functions to get explicit DccCameras. So the little example in the Camera class documentation can be changed, if you need a DccCamera.

 Session* session = GetSession();
 DccCamera* camera = session->findDccCamera(); //get explicit a DccCamera
 if (camera == NULL)
 {
   cout << "No DccCamera found" << endl;
   exit(0);
 }
 if (camera->zoom()->hasFeature())  //if the camera support zoom
   camera->zoom()->setValue(camera->zoom()->getMinValue()); //set zoom value to the minimum value.
 else
   cout << " Feature not supported " << endl;
For more information see the tutorial.

Author:
Michael Repplinger

Definition at line 56 of file l1394_dcccamera.h.


Constructor & Destructor Documentation

L1394::DccCamera::DccCamera const u_int32_t  node_id,
const Card parent
 

Constructor.

Parameters:
node_id : specify the node_id by creating by instantiating the Node object.
parent : pointer to the parent node

Definition at line 26 of file l1394_dcccamera.cpp.

References L1394::_DccNode, L1394::DEVICE_320x240_YUV_422, L1394::DEVICE_FRAMES_15, L1394::Device::setFrameHeight(), L1394::Device::setFrameSize(), L1394::Device::setFrameWidth(), and L1394::Device::setName().

L1394::DccCamera::~DccCamera  )  [virtual]
 

destructor

Definition at line 54 of file l1394_dcccamera.cpp.

References L1394::NODE_DESTROY.


Member Function Documentation

virtual const CameraRegister* L1394::DccCamera::autoExposure  )  [inline, virtual]
 

Access 'Auto-Exposure' feature CDC_register.

Implements L1394::Camera.

Definition at line 195 of file l1394_dcccamera.h.

References L1394::DccRegister::setOffset().

virtual const CameraRegister* L1394::DccCamera::brightness  )  [inline, virtual]
 

Access 'Brightness' feature register.

Implements L1394::Camera.

Definition at line 192 of file l1394_dcccamera.h.

References L1394::DccRegister::setOffset().

virtual const CameraRegister* L1394::DccCamera::filter  )  [inline, virtual]
 

Access 'Filter' feature dcc_register.

Implements L1394::Camera.

Definition at line 243 of file l1394_dcccamera.h.

References L1394::DccRegister::setOffset().

virtual const CameraRegister* L1394::DccCamera::focus  )  [inline, virtual]
 

Access 'Focus' feature dcc_register.

Implements L1394::Camera.

Definition at line 225 of file l1394_dcccamera.h.

References L1394::DccRegister::setOffset().

virtual const CameraRegister* L1394::DccCamera::gain  )  [inline, virtual]
 

Access 'Gain' feature dcc_register.

Implements L1394::Camera.

Definition at line 219 of file l1394_dcccamera.h.

References L1394::DccRegister::setOffset().

virtual const CameraRegister* L1394::DccCamera::gamma  )  [inline, virtual]
 

Access 'Gamma' feature dcc_register.

Implements L1394::Camera.

Definition at line 213 of file l1394_dcccamera.h.

References L1394::DccRegister::setOffset().

L1394::DccCamera::getFeatureHiInquiry  )  [inline]
 

This method reads the first feature Quadlet from a DccCamera.

Returns:
Quadlet : first feature Quadlet.

Definition at line 86 of file l1394_dcccamera.h.

References DCC_BASE.

L1394::DccCamera::getFeatureLoInquiry  )  [inline]
 

This method reads the second feature quadlet from a DccCamera.

Returns:
Quadlet : second feature quadlet.

Definition at line 93 of file l1394_dcccamera.h.

References DCC_BASE.

L1394::DccCamera::getFrame  )  [virtual]
 

This method returns a pointer to the actual frame of a DccCamera.

The method blocks, until it receive a frame from video module.

Returns:
unsigned char* : pointer to the frame

Reimplemented from L1394::Device.

Definition at line 63 of file l1394_dcccamera.cpp.

References L1394::DEVICE_ISO_ONESHOT, L1394::DEVICE_ISO_RUN, L1394::internal::DccIso::getFrame(), L1394::Device::isSending(), and shot().

Referenced by main().

L1394::DccCamera::getIsoObject  )  const [inline, virtual]
 

This method returns the current Iso object.

Definition at line 172 of file l1394_dcccamera.h.

L1394::DccCamera::hasFramerate const Videomode  videomode,
const Framerate  framerate
[virtual]
 

This method tests, if a framerate, with a videomode is supported.

Parameters:
videomode : the videomode for the framerate.
framerate : the framerate that should be tested.
Returns:
bool : true, if a framerate is supported, false if not

Implements L1394::Device.

Definition at line 483 of file l1394_dcccamera.cpp.

References DCC_BASE, L1394::Quadlet::getBit(), hasVideoFormat(), and L1394_SUCCESS.

Referenced by init().

L1394::DccCamera::hasVideoFormat const Videomode  videomode  )  [virtual]
 

This method tests, if a videomode is supported by a Camera.

Returns:
bool : true if the videomode is supported, false if not

Implements L1394::Device.

Definition at line 454 of file l1394_dcccamera.cpp.

References DCC_BASE, L1394::DEVICE_1024x768_MONO, L1394::DEVICE_1024x768_RGB, L1394::DEVICE_1024x768_YUV_422, L1394::DEVICE_1280x960_MONO, L1394::DEVICE_1280x960_RGB, L1394::DEVICE_1280x960_YUV_422, L1394::DEVICE_1600x1200_MONO, L1394::DEVICE_1600x1200_RGB, L1394::DEVICE_1600x1200_YUV_422, L1394::DEVICE_160x120_YUV_444, L1394::DEVICE_320x240_YUV_422, L1394::DEVICE_640x480_MONO, L1394::DEVICE_640x480_RGB, L1394::DEVICE_640x480_YUV_411, L1394::DEVICE_640x480_YUV_422, L1394::DEVICE_800x600_MONO, L1394::DEVICE_800x600_RGB, L1394::DEVICE_800x600_YUV_422, and L1394::Quadlet::getBit().

Referenced by hasFramerate(), and init().

virtual const CameraRegister* L1394::DccCamera::hue  )  [inline, virtual]
 

Access 'Hue' feature dcc_register.

Implements L1394::Camera.

Definition at line 207 of file l1394_dcccamera.h.

References L1394::DccRegister::setOffset().

L1394::DccCamera::init  )  [virtual]
 

This method inits the camera to the parameter set by the function setParameter() .

You must call this method before the camera sends a frame.

Returns:
L1394_SUCCESS if the init-process sucess, els L1394_FAILED. The init process (normaly) fails, if the camera does not support the actual video_mode

Reimplemented from L1394::Device.

Definition at line 184 of file l1394_dcccamera.cpp.

References DCC_BASE, L1394::DEVICE_ISO_NO, L1394::Quadlet::fromInt(), L1394::Device::getFrameSize(), L1394::Singleton< T, CreationPolicy, LifetimePolicy, ThreadingModel >::getInstance(), hasFramerate(), hasVideoFormat(), L1394_FAILED, L1394_SUCCESS, L1394::Quadlet::setBit(), L1394::Quadlet::setBitRange(), setFramerate(), L1394::internal::DccIso::setParameter(), setVideoMode(), L1394::internal::DccIso::startIsoListen(), and whiteBalance().

Referenced by main().

virtual const CameraRegister* L1394::DccCamera::iris  )  [inline, virtual]
 

Access 'Iris' feature dcc_register.

Implements L1394::Camera.

Definition at line 222 of file l1394_dcccamera.h.

References L1394::DccRegister::setOffset().

L1394::DccCamera::multiShot unsigned  int  )  [virtual]
 

This method enables multiShot.

Definition at line 132 of file l1394_dcccamera.cpp.

References DCC_BASE, L1394::Quadlet::setBit(), and L1394::Quadlet::setBitRange().

virtual const CameraRegister* L1394::DccCamera::pan  )  [inline, virtual]
 

Access 'Pan' feature dcc_register.

Implements L1394::Camera.

Definition at line 237 of file l1394_dcccamera.h.

References L1394::DccRegister::setOffset().

virtual const CameraRegister* L1394::DccCamera::saturation  )  [inline, virtual]
 

Access 'Saturation' feature dcc_register.

Implements L1394::Camera.

Definition at line 210 of file l1394_dcccamera.h.

References L1394::DccRegister::setOffset().

void L1394::DccCamera::setFramerate  )  [protected]
 

Definition at line 424 of file l1394_dcccamera.cpp.

References DCC_BASE, L1394::DEVICE_FRAMES_15, L1394::DEVICE_FRAMES_30, L1394::DEVICE_FRAMES_3_75, L1394::DEVICE_FRAMES_7_5, and L1394::Quadlet::setBitRange().

Referenced by init(), and setFramerate().

void L1394::DccCamera::setFramerate const Framerate  framerate  ) 
 

Definition at line 418 of file l1394_dcccamera.cpp.

References setFramerate().

int L1394::DccCamera::setParameter const int  buffercount = 2,
const int  channel = FREE_ISO_CHANNEL,
const Isomode  isomode = DEVICE_ISO_RUN,
const Videomode  videomode = DEVICE_320x240_YUV_422,
const Framerate  framerate = DEVICE_FRAMES_30
[virtual]
 

This method initialize the camera and create the iso object.

Parameters:
isomode : DEVICE_ISO_POLL for polling mode, DEVICE_ISO_RUN for free running mode at a fixed framerate, DEVICE_ISO_ONESHOT for one-shot mode or DEVICE_ISO_NO for camera control only
nbuffers : number of iso-buffers (frames)
videomode : DEVICE_160x120_YUV_444, DEVICE_320x240_YUV_422, DEVICE_640x480_YUV_411 or DEVICE_640x480_YUV_422.....
framerate : DEVICE_FRAMES_3_75, DEVICE_FRAMES_7_5, DEVICE_FRAMES_15, DEVICE_FRAMES_30, DEVICE_FRAMES_60
channel : iso channel (a value between 1..64)
Returns:
int : return a int value >= 0 if init success else < 0;

Implements L1394::Device.

Definition at line 147 of file l1394_dcccamera.cpp.

References DCC_BASE, L1394::DEVICE_ISO_MULTISHOT, L1394::DEVICE_ISO_ONESHOT, L1394::DEVICE_ISO_RUN, FREE_ISO_CHANNEL, L1394::Quadlet::getBit(), and L1394_SUCCESS.

Referenced by main().

void L1394::DccCamera::setVideoMode  )  [protected]
 

Definition at line 249 of file l1394_dcccamera.cpp.

References DCC_BASE, L1394::DEVICE_1024x768_MONO, L1394::DEVICE_1024x768_RGB, L1394::DEVICE_1024x768_YUV_422, L1394::DEVICE_1280x960_MONO, L1394::DEVICE_1280x960_RGB, L1394::DEVICE_1280x960_YUV_422, L1394::DEVICE_1600x1200_MONO, L1394::DEVICE_1600x1200_RGB, L1394::DEVICE_1600x1200_YUV_422, L1394::DEVICE_160x120_YUV_444, L1394::DEVICE_320x240_YUV_422, L1394::DEVICE_640x480_MONO, L1394::DEVICE_640x480_RGB, L1394::DEVICE_640x480_YUV_411, L1394::DEVICE_640x480_YUV_422, L1394::DEVICE_800x600_MONO, L1394::DEVICE_800x600_RGB, L1394::DEVICE_800x600_YUV_422, L1394::Quadlet::fromInt(), L1394::Quadlet::setBitRange(), L1394::Device::setFrameHeight(), L1394::Device::setFrameSize(), and L1394::Device::setFrameWidth().

Referenced by init().

virtual const CameraRegister* L1394::DccCamera::sharpness  )  [inline, virtual]
 

Access 'Sharpness' feature dcc_register.

Implements L1394::Camera.

Definition at line 198 of file l1394_dcccamera.h.

References L1394::DccRegister::setOffset().

L1394::DccCamera::shot  )  [virtual]
 

This method sends a command to the DccCamera to send one frame.

The command getFrame() use this function.

Definition at line 119 of file l1394_dcccamera.cpp.

References DCC_BASE, L1394::internal::Transaction::delay(), L1394::Quadlet::getBit(), and L1394::Quadlet::setBit().

Referenced by getFrame().

virtual const CameraRegister* L1394::DccCamera::shutter  )  [inline, virtual]
 

Access 'Shutter' feature dcc_register.

Implements L1394::Camera.

Definition at line 216 of file l1394_dcccamera.h.

References L1394::DccRegister::setOffset().

L1394::DccCamera::start  )  [virtual]
 

This method starts the camera.

Returns:
int : returns a value <=0 if an error occur, else >0

Implements L1394::Device.

Definition at line 93 of file l1394_dcccamera.cpp.

References DCC_BASE, L1394_FAILED, L1394_SUCCESS, L1394::Quadlet::setBit(), and L1394::Device::setSending().

Referenced by main().

L1394::DccCamera::stop  )  [virtual]
 

This method stops a sending camera.

Returns:
int : returns a value <=0 if an error occur, else >0

Implements L1394::Device.

Definition at line 108 of file l1394_dcccamera.cpp.

References DCC_BASE, L1394::internal::DccIso::flushQueue(), L1394_SUCCESS, L1394::Quadlet::setBit(), and L1394::Device::setSending().

virtual const CameraRegister* L1394::DccCamera::temperature  )  [inline, virtual]
 

Access 'Temperature' feature dcc_register.

Implements L1394::Camera.

Definition at line 228 of file l1394_dcccamera.h.

References L1394::DccRegister::setOffset().

virtual const CameraRegister* L1394::DccCamera::tilt  )  [inline, virtual]
 

Access 'Tilt' feature dcc_register.

Implements L1394::Camera.

Definition at line 240 of file l1394_dcccamera.h.

References L1394::DccRegister::setOffset().

virtual const CameraRegister* L1394::DccCamera::trigger  )  [inline, virtual]
 

Access 'Trigger' feature dcc_register.

Implements L1394::Camera.

Definition at line 231 of file l1394_dcccamera.h.

References L1394::DccRegister::setOffset().

virtual const CameraRegister* L1394::DccCamera::whiteBalance int  value  )  [inline, virtual]
 

Access 'White-Balance' feature dcc_register.

Implements L1394::Camera.

Definition at line 204 of file l1394_dcccamera.h.

References L1394::DccRegister::setOffset().

virtual const CameraRegister* L1394::DccCamera::whiteBalance  )  [inline, virtual]
 

Access 'White-Balance' feature dcc_register.

Implements L1394::Camera.

Definition at line 201 of file l1394_dcccamera.h.

References L1394::DccRegister::setOffset().

Referenced by init().

virtual const CameraRegister* L1394::DccCamera::zoom  )  [inline, virtual]
 

Access 'Zoom' feature dcc_register.

Implements L1394::Camera.

Definition at line 234 of file l1394_dcccamera.h.

References L1394::DccRegister::setOffset().


The documentation for this class was generated from the following files:
Generated on Wed Aug 24 00:36:43 2005 for L1394 by doxygen 1.4.2
L1394 library (NMM) grahics.cs.uni-sb.de/~repplix/l1394_home/