rec::robotino::api2 C++ interface
Camera.h
1 // Copyright (C) 2004-2008, Robotics Equipment Corporation GmbH
2 
3 //Copyright (c) ...
4 //
5 //REC Robotics Equipment Corporation GmbH, Planegg, Germany. All rights reserved.
6 //Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
7 //1) Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
8 //2) Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
9 //
10 //THIS SOFTWARE IS PROVIDED BY REC ROBOTICS EQUIPMENT CORPORATION GMBH �AS IS� AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
11 //THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL REC ROBOTICS EQUIPMENT CORPORATION GMBH
12 //BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
13 //GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
14 //LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
15 //
16 //Copyright (c) ...
17 //
18 //REC Robotics Equipment Corporation GmbH, Planegg, Germany. Alle Rechte vorbehalten.
19 //Weiterverbreitung und Verwendung in nichtkompilierter oder kompilierter Form, mit oder ohne Ver�nderung, sind unter den folgenden Bedingungen zul�ssig:
20 //1) Weiterverbreitete nichtkompilierte Exemplare m�ssen das obige Copyright, diese Liste der Bedingungen und den folgenden Haftungsausschluss im Quelltext enthalten.
21 //2) Weiterverbreitete kompilierte Exemplare m�ssen das obige Copyright, diese Liste der Bedingungen und den folgenden Haftungsausschluss in der Dokumentation und/oder anderen Materialien, die mit dem Exemplar verbreitet werden, enthalten.
22 //
23 //DIESE SOFTWARE WIRD VON REC ROBOTICS EQUIPMENT CORPORATION GMBH OHNE JEGLICHE SPEZIELLE ODER IMPLIZIERTE GARANTIEN ZUR VERF�GUNG GESTELLT, DIE UNTER
24 //ANDEREM EINSCHLIESSEN: DIE IMPLIZIERTE GARANTIE DER VERWENDBARKEIT DER SOFTWARE FÜR EINEN BESTIMMTEN ZWECK. AUF KEINEN FALL IST REC ROBOTICS EQUIPMENT CORPORATION GMBH
25 //FÜR IRGENDWELCHE DIREKTEN, INDIREKTEN, ZUFÄLLIGEN, SPEZIELLEN, BEISPIELHAFTEN ODER FOLGESCHÄDEN (UNTER ANDEREM VERSCHAFFEN VON ERSATZGÜTERN ODER -DIENSTLEISTUNGEN;
26 //EINSCHRÄNKUNG DER NUTZUNGSFÄHIGKEIT; VERLUST VON NUTZUNGSFÄHIGKEIT; DATEN; PROFIT ODER GESCHÄFTSUNTERBRECHUNG), WIE AUCH IMMER VERURSACHT UND UNTER WELCHER VERPFLICHTUNG
27 //AUCH IMMER, OB IN VERTRAG, STRIKTER VERPFLICHTUNG ODER UNERLAUBTER HANDLUNG (INKLUSIVE FAHRLÄSSIGKEIT) VERANTWORTLICH, AUF WELCHEM WEG SIE AUCH IMMER DURCH DIE BENUTZUNG
28 //DIESER SOFTWARE ENTSTANDEN SIND, SOGAR, WENN SIE AUF DIE MÖGLICHKEIT EINES SOLCHEN SCHADENS HINGEWIESEN WORDEN SIND.
29 
30 #ifndef _REC_ROBOTINO_API2_CAMERA_H_
31 #define _REC_ROBOTINO_API2_CAMERA_H_
32 
33 #include "rec/robotino/api2/defines.h"
34 #include "rec/robotino/api2/ComObject.h"
35 #include "rec/robotino/api2/CameraCapabilities.h"
36 
37 namespace rec
38 {
39  namespace robotino
40  {
41  namespace api2
42  {
43  class CameraImpl;
44 
48  class
49 #ifdef REC_ROBOTINO_API2_CLASS_ATTRIBUTE
50  REC_ROBOTINO_API2_CLASS_ATTRIBUTE
51 #endif
52  Camera : public ComObject
53  {
54  friend class CameraImpl;
55  public:
59  Camera();
60 
61  Camera(const ComId& id);
62 
66  virtual ~Camera();
67 
75  void setComId( const ComId& id );
76 
80  static unsigned int numCameras();
81 
92  void setCameraNumber( int number );
93 
101  int cameraNumber() const;
102 
115  void setJPGDecodingEnabled(bool enable);
116 
123  bool isJPGDecodingEnabled() const;
124 
131  void processEvents();
132 
136  void setReadWrite();
137 
142  void setWriteOnly();
143 
149  void setJPGImage( const unsigned char* data, unsigned int dataSize );
150 
160  void setFormat( unsigned int width, unsigned int height, const char* format );
161 
168  void setBrightness( int value );
169 
176  void setContrast( int value );
177 
184  void setSaturation( int value );
185 
192  void setAutoWhiteBalanceEnabled( bool enable );
193 
200  void setGain( int value );
201 
208  void setWhiteBalanceTemperature( int value );
209 
216  void setBacklightCompensation( int value );
217 
224  void setAutoExposureEnabled( bool enable );
225 
232  void setExposure( int value );
233 
240  void setAutoFocusEnabled( bool enable );
241 
248  void setFocus( int value );
249 
256  void setSharpness( int value );
257 
261  CameraCapabilities capabilities() const;
262 
269  int calibration( double** buffer, unsigned int bufferSize );
270 
277  bool isNewImageAvailable( unsigned int* dataSize ) const;
278 
291  bool getImage( unsigned char** data,
292  unsigned int dataSize,
293  unsigned int* width,
294  unsigned int* height,
295  unsigned int* step );
296 
303  void setBGREnabled( bool enable );
304 
309  bool isBGRenabled() const;
310 
314  bool isLocalConnection() const;
315 
328  virtual void imageReceivedEvent( const unsigned char* data,
329  unsigned int dataSize,
330  unsigned int width,
331  unsigned int height,
332  unsigned int step );
333 
340  virtual void capabilitiesChangedEvent( const rec::robotino::api2::CameraCapabilities& capablities );
341 
348  virtual void settingsChangedEvent( unsigned int width, unsigned int height, const char* format );
349 
356  virtual void calibrationChanged( const double* data, unsigned int dataSize );
357 
358  private:
359  CameraImpl* _impl;
360  };
361  }
362  }
363 }
364 
365 #endif
Represents a camera.
Definition: Camera.h:48
Capabilities of Robotino's camera.
Definition: CameraCapabilities.h:44
The base class for all Robotino objects.
Definition: ComObject.h:44
Definition: AnalogInput.h:36
The id of a Com object.
Definition: ComId.h:48