Camera.h
Go to the documentation of this file.
1 /*=============================================================================
2  Copyright (C) 2012 - 2016 Allied Vision Technologies. All Rights Reserved.
3 
4  Redistribution of this file, in original or modified form, without
5  prior written consent of Allied Vision Technologies is prohibited.
6 
7 -------------------------------------------------------------------------------
8 
9  File: Camera.h
10 
11  Description: Definition of class AVT::VmbAPI::Camera.
12 
13 -------------------------------------------------------------------------------
14 
15  THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
16  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF TITLE,
17  NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18  DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
19  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
22  AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
23  TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
24  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 
26 =============================================================================*/
27 
28 #ifndef AVT_VMBAPI_CAMERA_H
29 #define AVT_VMBAPI_CAMERA_H
30 
31 #include <vector>
32 #include <string>
33 
34 #include <VimbaC/Include/VimbaC.h>
38 #include <VimbaCPP/Include/Frame.h>
41 
42 namespace AVT {
43 namespace VmbAPI {
44 
45 typedef std::vector<CameraPtr> CameraPtrVector;
46 
47 class Camera : public FeatureContainer, public IRegisterDevice
48 {
49  public:
50  //
51  // Method: Camera constructor
52  //
53  // Purpose: Creates an instance of class Camera
54  //
55  // Parameters:
56  //
57  // [in ] const char* pID The ID of the camera
58  // [in ] const char* pName The name of the camera
59  // [in ] const char* pModel The model name of the camera
60  // [in ] const char* pSerialNumber The serial number of the camera
61  // [in ] const char* pInterfaceID The ID of the interface the camera is connected to
62  // [in ] VmbInterfaceType interfaceType The type of the interface the camera is connected to
63  //
64  // Details: The ID of the camera may be, among others, one of the following: "169.254.12.13",
65  // "000f31000001", a plain serial number: "1234567890", or the device ID
66  // of the underlying transport layer.
67  //
68  IMEXPORT Camera( const char *pID,
69  const char *pName,
70  const char *pModel,
71  const char *pSerialNumber,
72  const char *pInterfaceID,
73  VmbInterfaceType interfaceType );
74 
75  //
76  // Method: Camera destructor
77  //
78  // Purpose: Destroys an instance of class Camera
79  //
80  // Details: Destroying a camera implicitly closes it beforehand.
81  //
82  IMEXPORT virtual ~Camera();
83 
84  //
85  // Method: Open()
86  //
87  // Purpose: Opens the specified camera.
88  //
89  // Parameters:
90  //
91  // [in ] VmbAccessMode_t accessMode Access mode determines the level of control you have on the camera
92  //
93  // Returns:
94  //
95  // - VmbErrorSuccess: If no error
96  // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
97  // - VmbErrorNotFound: The designated camera cannot be found
98  // - VmbErrorInvalidAccess: Operation is invalid with the current access mode
99  //
100  // Details: A camera may be opened in a specific access mode. This mode determines
101  // the level of control you have on a camera.
102  //
103  IMEXPORT virtual VmbErrorType Open( VmbAccessModeType accessMode );
104 
105  //
106  // Method: Close()
107  //
108  // Purpose: Closes the specified camera.
109  //
110  // Returns:
111  //
112  // - VmbErrorSuccess: If no error
113  // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
114  //
115  // Details: Depending on the access mode this camera was opened in, events are killed,
116  // callbacks are unregistered, the frame queue is cleared, and camera control is released.
117  //
118  IMEXPORT virtual VmbErrorType Close();
119 
120  //
121  // Method: GetID()
122  //
123  // Purpose: Gets the ID of a camera.
124  //
125  // Parameters: [out] std::string& cameraID The ID of the camera
126  //
127  // Returns:
128  // - VmbErrorSuccess: If no error
129  //
130  // This information remains static throughout the object's lifetime
131  //
132  VmbErrorType GetID( std::string &cameraID ) const;
133 
134  //
135  // Method: GetName()
136  //
137  // Purpose: Gets the name of a camera.
138  //
139  // Parameters: [out] std::string& name The name of the camera
140  //
141  // Returns:
142  // - VmbErrorSuccess: If no error
143  //
144  // This information remains static throughout the object's lifetime
145  //
146  VmbErrorType GetName( std::string &name ) const;
147 
148  //
149  // Method: GetModel()
150  //
151  // Purpose: Gets the model name of a camera.
152  //
153  // Parameters: [out] std::string& model The model name of the camera
154  //
155  // Returns:
156  // - VmbErrorSuccess: If no error
157  //
158  // This information remains static throughout the object's lifetime
159  //
160  VmbErrorType GetModel( std::string &model ) const;
161 
162  //
163  // Method: GetSerialNumber()
164  //
165  // Purpose: Gets the serial number of a camera.
166  //
167  // Parameters: [out] std::string& serialNumber The serial number of the camera
168  //
169  // Returns:
170  // - VmbErrorSuccess: If no error
171  //
172  // This information remains static throughout the object's lifetime
173  //
174  VmbErrorType GetSerialNumber( std::string &serialNumber ) const;
175 
176  //
177  // Method: GetInterfaceID()
178  //
179  // Purpose: Gets the interface ID of a camera.
180  //
181  // Parameters: [out] std::string& interfaceID The interface ID of the camera
182  //
183  // Returns:
184  // - VmbErrorSuccess: If no error
185  //
186  // This information remains static throughout the object's lifetime
187  //
188  VmbErrorType GetInterfaceID( std::string &interfaceID ) const;
189 
190  //
191  // Method: GetInterfaceType()
192  //
193  // Purpose: Gets the type of the interface the camera is connected to. And therefore the type of the camera itself.
194  //
195  // Parameters: [out] VmbInterfaceType& interfaceType The interface type of the camera
196  //
197  // Returns:
198  // - VmbErrorSuccess: If no error
199  //
200  IMEXPORT VmbErrorType GetInterfaceType( VmbInterfaceType &interfaceType ) const;
201 
202  //
203  // Method: GetPermittedAccess()
204  //
205  // Purpose: Gets the access modes of a camera.
206  //
207  // Parameters: [out] VmbAccessModeType& permittedAccess The possible access modes of the camera
208  //
209  // Returns:
210  // - VmbErrorSuccess: If no error
211  //
212  IMEXPORT VmbErrorType GetPermittedAccess( VmbAccessModeType &permittedAccess ) const;
213 
214  //
215  // Method: ReadRegisters()
216  //
217  // Purpose: Reads one or more registers consecutively. The number of registers to read is determined by the number of provided addresses.
218  //
219  // Parameters: [in ] const Uint64Vector& addresses A list of register addresses
220  // [out] Uint64Vector& buffer The returned data as vector
221  //
222  // Returns:
223  // - VmbErrorSuccess: If all requested registers have been read
224  // - VmbErrorBadParameter: Vectors "addresses" and/or "buffer" are empty.
225  // - VmbErrorIncomplete: If at least one, but not all registers have been read. See overload ReadRegisters( const Uint64Vector&, Uint64Vector&, VmbUint32_t& ).
226  //
227  virtual VmbErrorType ReadRegisters( const Uint64Vector &addresses, Uint64Vector &buffer ) const;
228 
229  //
230  // Method: ReadRegisters()
231  //
232  // Purpose: Same as ReadRegisters( const Uint64Vector&, Uint64Vector& ), but returns the number of successful read operations in case of an error.
233  //
234  // Parameters: [in ] const Uint64Vector& addresses A list of register addresses
235  // [out] Uint64Vector& buffer The returned data as vector
236  // [out] VmbUint32_t& completedReads The number of successfully read registers
237  //
238  // Returns:
239  // - VmbErrorSuccess: If all requested registers have been read
240  // - VmbErrorBadParameter: Vectors "addresses" and/or "buffer" are empty.
241  // - VmbErrorIncomplete: If at least one, but not all registers have been read.
242  //
243  virtual VmbErrorType ReadRegisters( const Uint64Vector &addresses, Uint64Vector &buffer, VmbUint32_t &completedReads ) const;
244 
245  //
246  // Method: WriteRegisters()
247  //
248  // Purpose: Writes one or more registers consecutively. The number of registers to write is determined by the number of provided addresses.
249  //
250  // Parameters: [in] const Uint64Vector& addresses A list of register addresses
251  // [in] const Uint64Vector& buffer The data to write as vector
252  //
253  // Returns:
254  // - VmbErrorSuccess: If all requested registers have been written
255  // - VmbErrorBadParameter: Vectors "addresses" and/or "buffer" are empty.
256  // - VmbErrorIncomplete: If at least one, but not all registers have been written. See overload WriteRegisters( const Uint64Vector&, const Uint64Vector&, VmbUint32_t& ).
257  //
258  virtual VmbErrorType WriteRegisters( const Uint64Vector &addresses, const Uint64Vector &buffer );
259 
260  //
261  // Method: WriteRegisters()
262  //
263  // Purpose: Same as WriteRegisters( const Uint64Vector&, const Uint64Vector& ), but returns the number of successful write operations in case of an error.
264  //
265  // Parameters: [in ] const Uint64Vector& addresses A list of register addresses
266  // [in ] const Uint64Vector& buffer The data to write as vector
267  // [out] VmbUint32_t& completedWrites The number of successfully read registers
268  //
269  // Returns:
270  // - VmbErrorSuccess: If all requested registers have been written
271  // - VmbErrorBadParameter: Vectors "addresses" and/or "buffer" are empty.
272  // - VmbErrorIncomplete: If at least one, but not all registers have been written.
273  //
274  virtual VmbErrorType WriteRegisters( const Uint64Vector &addresses, const Uint64Vector &buffer, VmbUint32_t &completedWrites );
275 
276  //
277  // Method: ReadMemory()
278  //
279  // Purpose: Reads a block of memory. The number of bytes to read is determined by the size of the provided buffer.
280  //
281  // Parameters: [in ] const VmbUint64_t& address The address to read from
282  // [out] UcharVector& buffer The returned data as vector
283  //
284  // Returns:
285  // - VmbErrorSuccess: If all requested bytes have been read
286  // - VmbErrorBadParameter: Vector "buffer" is empty.
287  // - VmbErrorIncomplete: If at least one, but not all bytes have been read. See overload ReadMemory( const VmbUint64_t&, UcharVector&, VmbUint32_t& ).
288  //
289  virtual VmbErrorType ReadMemory( const VmbUint64_t &address, UcharVector &buffer ) const;
290 
291  //
292  // Method: ReadMemory()
293  //
294  // Purpose: Same as ReadMemory( const Uint64Vector&, UcharVector& ), but returns the number of bytes successfully read in case of an error VmbErrorIncomplete.
295  //
296  // Parameters: [in] const VmbUint64_t& address The address to read from
297  // [out] UcharVector& buffer The returned data as vector
298  // [out] VmbUint32_t& completeReads The number of successfully read bytes
299  //
300  // Returns:
301  // - VmbErrorSuccess: If all requested bytes have been read
302  // - VmbErrorBadParameter: Vector "buffer" is empty.
303  // - VmbErrorIncomplete: If at least one, but not all bytes have been read.
304  //
305  virtual VmbErrorType ReadMemory( const VmbUint64_t &address, UcharVector &buffer, VmbUint32_t &completeReads ) const;
306 
307  //
308  // Method: WriteMemory()
309  //
310  // Purpose: Writes a block of memory. The number of bytes to write is determined by the size of the provided buffer.
311  //
312  // Parameters: [in] const VmbUint64_t& address The address to write to
313  // [in] const UcharVector& buffer The data to write as vector
314  //
315  // Returns:
316  // - VmbErrorSuccess: If all requested bytes have been written
317  // - VmbErrorBadParameter: Vector "buffer" is empty.
318  // - VmbErrorIncomplete: If at least one, but not all bytes have been written. See overload WriteMemory( const VmbUint64_t&, const UcharVector&, VmbUint32_t& ).
319  //
320  virtual VmbErrorType WriteMemory( const VmbUint64_t &address, const UcharVector &buffer );
321 
322  //
323  // Method: WriteMemory()
324  //
325  // Purpose: Same as WriteMemory( const Uint64Vector&, const UcharVector& ), but returns the number of bytes successfully written in case of an error VmbErrorIncomplete.
326  //
327  // Parameters: [in] const VmbUint64_t& address The address to write to
328  // [in] const UcharVector& buffer The data to write as vector
329  // [out] VmbUint32_t& sizeComplete The number of successfully written bytes
330  //
331  // Returns:
332  // - VmbErrorSuccess: If all requested bytes have been written
333  // - VmbErrorBadParameter: Vector "buffer" is empty.
334  // - VmbErrorIncomplete: If at least one, but not all bytes have been written.
335  //
336  virtual VmbErrorType WriteMemory( const VmbUint64_t &address, const UcharVector &buffer, VmbUint32_t &sizeComplete );
337 
338  //
339  // Method: AcquireSingleImage()
340  //
341  // Purpose: Gets one image synchronously.
342  //
343  // Parameters: [out] FramePtr& pFrame The frame that gets filled
344  // [in ] VmbUint32_t timeout The time to wait until the frame got filled
345  //
346  // Returns:
347  // - VmbErrorSuccess: If no error
348  // - VmbErrorBadParameter: "pFrame" is NULL.
349  // - VmbErrorTimeout: Call timed out
350  //
351  IMEXPORT VmbErrorType AcquireSingleImage( FramePtr &pFrame, VmbUint32_t timeout );
352 
353  //
354  // Method: AcquireMultipleImages()
355  //
356  // Purpose: Gets a certain number of images synchronously.
357  //
358  // Parameters: [out] FramePtrVector& frames The frames that get filled
359  // [in ] VmbUint32_t timeout The time to wait until one frame got filled
360  //
361  // Details: The size of the frame vector determines the number of frames to use.
362  //
363  // Returns:
364  // - VmbErrorSuccess: If no error
365  // - VmbErrorInternalFault: Filling all the frames was not successful.
366  // - VmbErrorBadParameter: Vector "frames" is empty.
367  //
369 
370  //
371  // Method: AcquireMultipleImages()
372  //
373  // Purpose: Same as AcquireMultipleImages(FramePtrVector&, VmbUint32_t), but returns the number of frames that were filled completely.
374  //
375  // Parameters: [out] FramePtrVector& frames The frames that get filled
376  // [in ] VmbUint32_t timeout The time to wait until one frame got filled
377  // [out] VmbUint32_t& numFramesCompleted The number of frames that were filled completely
378  //
379  // Details: The size of the frame vector determines the number of frames to use.
380  // On return, "numFramesCompleted" holds the number of frames actually filled.
381  //
382  // Returns:
383  // - VmbErrorSuccess: If no error
384  // - VmbErrorBadParameter: Vector "frames" is empty.
385  //
386  VmbErrorType AcquireMultipleImages( FramePtrVector &frames, VmbUint32_t timeout, VmbUint32_t &numFramesCompleted );
387 
388  //
389  // Method: StartContinuousImageAcquisition()
390  //
391  // Purpose: Starts streaming and allocates the needed frames
392  //
393  // Parameters: [in ] int bufferCount The number of frames to use
394  // [out] const IFrameObserverPtr& pObserver The observer to use on arrival of new frames
395  //
396  // Returns:
397  //
398  // - VmbErrorSuccess: If no error
399  // - VmbErrorDeviceNotOpen: The camera has not been opened before
400  // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
401  // - VmbErrorBadHandle: The given handle is not valid
402  // - VmbErrorInvalidAccess: Operation is invalid with the current access mode
403  //
404  IMEXPORT VmbErrorType StartContinuousImageAcquisition( int bufferCount, const IFrameObserverPtr &pObserver );
405 
406  //
407  // Method: StopContinuousImageAcquisition()
408  //
409  // Purpose: Stops streaming and deallocates the needed frames
410  //
412 
413  //
414  // Method: AnnounceFrame()
415  //
416  // Purpose: Announces a frame to the API that may be queued for frame capturing later.
417  //
418  // Parameters:
419  //
420  // [in ] const FramePtr& pFrame Shared pointer to a frame to announce
421  //
422  // Returns:
423  //
424  // - VmbErrorSuccess: If no error
425  // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
426  // - VmbErrorBadHandle: The given handle is not valid
427  // - VmbErrorBadParameter: "pFrame" is NULL.
428  // - VmbErrorStructSize: The given struct size is not valid for this version of the API
429  //
430  // Details: Allows some preparation for frames like DMA preparation depending on the transport layer.
431  // The order in which the frames are announced is not taken in consideration by the API.
432  //
433  IMEXPORT VmbErrorType AnnounceFrame( const FramePtr &pFrame );
434 
435  //
436  // Method: RevokeFrame()
437  //
438  // Purpose: Revoke a frame from the API.
439  //
440  // Parameters:
441  //
442  // [in ] const FramePtr& pFrame Shared pointer to a frame that is to be removed from the list of announced frames
443  //
444  // Returns:
445  //
446  // - VmbErrorSuccess: If no error
447  // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
448  // - VmbErrorBadHandle: The given frame pointer is not valid
449  // - VmbErrorBadParameter: "pFrame" is NULL.
450  // - VmbErrorStructSize: The given struct size is not valid for this version of the API
451  //
452  // Details: The referenced frame is removed from the pool of frames for capturing images.
453  //
454  IMEXPORT VmbErrorType RevokeFrame( const FramePtr &pFrame );
455 
456  //
457  // Method: RevokeAllFrames()
458  //
459  // Purpose: Revoke all frames assigned to this certain camera.
460  //
461  // Returns:
462  //
463  // - VmbErrorSuccess: If no error
464  // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
465  // - VmbErrorBadHandle: The given handle is not valid
466  //
467  IMEXPORT VmbErrorType RevokeAllFrames();
468 
469  //
470  // Method: QueueFrame()
471  //
472  // Purpose: Queues a frame that may be filled during frame capturing.
473  //
474  // Parameters:
475  //
476  // [in ] const FramePtr& pFrame A shared pointer to a frame
477  //
478  // Returns:
479  //
480  // - VmbErrorSuccess: If no error
481  // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
482  // - VmbErrorBadHandle: The given frame is not valid
483  // - VmbErrorBadParameter: "pFrame" is NULL.
484  // - VmbErrorStructSize: The given struct size is not valid for this version of the API
485  // - VmbErrorInvalidCall: StopContinuousImageAcquisition is currently running in another thread
486  //
487  // Details: The given frame is put into a queue that will be filled sequentially.
488  // The order in which the frames are filled is determined by the order in which they are queued.
489  // If the frame was announced with AnnounceFrame() before, the application
490  // has to ensure that the frame is also revoked by calling RevokeFrame() or RevokeAll()
491  // when cleaning up.
492  //
493  IMEXPORT VmbErrorType QueueFrame( const FramePtr &pFrame );
494 
495  //
496  // Method: FlushQueue()
497  //
498  // Purpose: Flushes the capture queue.
499  //
500  // Returns:
501  //
502  // - VmbErrorSuccess: If no error
503  // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
504  // - VmbErrorBadHandle: The given handle is not valid
505  //
506  // Details: All the currently queued frames will be returned to the user, leaving no frames in the input queue.
507  // After this call, no frame notification will occur until frames are queued again.
508  //
509  IMEXPORT VmbErrorType FlushQueue();
510 
511  //
512  // Method: StartCapture()
513  //
514  // Purpose: Prepare the API for incoming frames from this camera.
515  //
516  // Returns:
517  //
518  // - VmbErrorSuccess: If no error
519  // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
520  // - VmbErrorBadHandle: The given handle is not valid
521  // - VmbErrorDeviceNotOpen: Camera was not opened for usage
522  // - VmbErrorInvalidAccess: Operation is invalid with the current access mode
523  //
524  IMEXPORT VmbErrorType StartCapture();
525 
526  //
527  // Method: EndCapture()
528  //
529  // Purpose: Stop the API from being able to receive frames from this camera.
530  //
531  // Returns:
532  //
533  // - VmbErrorSuccess: If no error
534  // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
535  // - VmbErrorBadHandle: The given handle is not valid
536  //
537  // Details: Consequences of VmbCaptureEnd():
538  // - The frame queue is flushed
539  // - The frame callback will not be called any more
540  //
541  IMEXPORT VmbErrorType EndCapture();
542 
543  //
544  // Method: SaveCameraSettings()
545  //
546  // Purpose: Saves the current camera setup to an XML file
547  //
548  // Parameters:
549  //
550  // [in ] std::string pStrFileName xml file name
551  // [in ] VmbFeaturePersistSettings_t* pSettings pointer to settings struct
552  //
553  // Returns:
554  //
555  // - VmbErrorSuccess: If no error
556  // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
557  // - VmbErrorBadHandle: The given handle is not valid
558  // - VmbErrorInternalFault: When something unexpected happens in VimbaC function
559  // - VmbErrorOther: Every other failure in load/save settings implementation class
560  //
561  VmbErrorType SaveCameraSettings( std::string fileName, VmbFeaturePersistSettings_t *pSettings = 0 ) const;
562 
563  //
564  // Method: LoadCameraSettings()
565  //
566  // Purpose: Loads the current camera setup from an XML file into the camera
567  //
568  // Parameters:
569  //
570  // [in] std::string pStrFileName xml file name
571  // [in] VmbFeaturePersistSettings_t* pSettings pointer to settings struct
572  //
573  // Returns:
574  //
575  // - VmbErrorSuccess: If no error
576  // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
577  // - VmbErrorBadHandle: The given handle is not valid
578  // - VmbErrorInternalFault: When something unexpected happens in VimbaC function
579  // - VmbErrorOther: Every other failure in load/save settings implementation class
580  //
581  VmbErrorType LoadCameraSettings( std::string fileName, VmbFeaturePersistSettings_t *pSettings = 0 ) const;
582 
583  //
584  // Method: LoadSaveSettingsSetup()
585  //
586  // Purpose: Sets Load/Save settings behaviour (alternative to settings struct)
587  //
588  // Parameters:
589  //
590  // [in] VmbFeaturePersist_t persistType determines which feature shall be considered during load/save settings
591  // [in] VmbUint32_t maxIterations determines how many 'tries' during loading feature values shall be performed
592  // [in] VmbUint32_t loggingLevel determines level of detail for load/save settings logging
593  //
594  IMEXPORT void LoadSaveSettingsSetup( VmbFeaturePersist_t persistType, VmbUint32_t maxIterations, VmbUint32_t loggingLevel );
595 
596  private:
597  // Default ctor
598  Camera();
599 
600  // Copy ctor
601  Camera ( const Camera& );
602 
603  // Assignment operator
604  Camera& operator=( const Camera& );
605 
606  struct Impl;
607  Impl *m_pImpl;
608 
609  // Array functions to pass data across DLL boundaries
610  IMEXPORT VmbErrorType GetID( char * const pID, VmbUint32_t &length ) const;
611  IMEXPORT VmbErrorType GetName( char * const pName, VmbUint32_t &length ) const;
612  IMEXPORT VmbErrorType GetModel( char * const pModelName, VmbUint32_t &length ) const;
613  IMEXPORT VmbErrorType GetSerialNumber( char * const pSerial, VmbUint32_t &length ) const;
614  IMEXPORT VmbErrorType GetInterfaceID( char * const pInterfaceID, VmbUint32_t &length ) const;
615  IMEXPORT VmbErrorType AcquireMultipleImages( FramePtr *pFrames, VmbUint32_t size, VmbUint32_t nTimeout, VmbUint32_t *pNumFramesCompleted );
616  IMEXPORT virtual VmbErrorType ReadRegisters( const VmbUint64_t *pAddressArray, VmbUint32_t addressSize, VmbUint64_t *pDataArray, VmbUint32_t *pCompletedReads ) const;
617  IMEXPORT virtual VmbErrorType WriteRegisters( const VmbUint64_t *pAddressArray, VmbUint32_t addressSize, const VmbUint64_t *pDataArray, VmbUint32_t *pCompletedWrites );
618  IMEXPORT virtual VmbErrorType ReadMemory( VmbUint64_t address, VmbUchar_t *pBuffer, VmbUint32_t bufferSize, VmbUint32_t *pSizeComplete ) const;
619  IMEXPORT virtual VmbErrorType WriteMemory( VmbUint64_t address, const VmbUchar_t *pBuffer, VmbUint32_t bufferSize, VmbUint32_t *pSizeComplete );
620  IMEXPORT VmbErrorType SaveCameraSettings( const char * const pStrFileName, VmbFeaturePersistSettings_t *pSettings ) const;
621  IMEXPORT VmbErrorType LoadCameraSettings( const char * const pStrFileName, VmbFeaturePersistSettings_t *pSettings ) const;
622 
626 };
627 
629 
630 }} // namespace AVT::VmbAPI
631 
632 #endif
virtual IMEXPORT VmbErrorType Close()
Definition: Camera.cpp:555
virtual IMEXPORT ~Camera()
Definition: Camera.cpp:526
IMEXPORT VmbErrorType AcquireSingleImage(FramePtr &pFrame, VmbUint32_t timeout)
Definition: Camera.cpp:750
NetPointer< Frame, AVT::VmbAPINET::Frame > FramePtr
std::vector< CameraPtr > CameraPtrVector
Definition: Camera.h:45
virtual VmbErrorType ReadRegisters(const Uint64Vector &addresses, Uint64Vector &buffer) const
virtual IMEXPORT VmbErrorType Open(VmbAccessModeType accessMode)
Definition: Camera.cpp:533
VmbErrorType GetID(std::string &cameraID) const
VmbErrorType LoadCameraSettings(std::string fileName, VmbFeaturePersistSettings_t *pSettings=0) const
VmbErrorType
virtual VmbErrorType WriteMemory(const VmbUint64_t &address, const UcharVector &buffer)
VmbErrorType GetSerialNumber(std::string &serialNumber) const
VmbAccessModeType
Definition: VimbaC.h:122
VmbUint32_t m_maxIterations
Definition: Camera.h:624
unsigned char VmbUchar_t
IMEXPORT void LoadSaveSettingsSetup(VmbFeaturePersist_t persistType, VmbUint32_t maxIterations, VmbUint32_t loggingLevel)
Definition: Camera.cpp:1331
IMEXPORT VmbErrorType GetPermittedAccess(VmbAccessModeType &permittedAccess) const
Definition: Camera.cpp:707
VmbErrorType SaveCameraSettings(std::string fileName, VmbFeaturePersistSettings_t *pSettings=0) const
Camera & operator=(const Camera &)
Definition: Camera.cpp:491
unsigned long long VmbUint64_t
std::vector< FramePtr > FramePtrVector
Definition: Frame.h:335
std::vector< VmbUint64_t > Uint64Vector
VmbErrorType AcquireMultipleImages(FramePtrVector &frames, VmbUint32_t timeout)
IMEXPORT VmbErrorType FlushQueue()
Definition: Camera.cpp:1150
IMEXPORT VmbErrorType QueueFrame(const FramePtr &pFrame)
Definition: Camera.cpp:1108
VmbInterfaceType
Definition: VimbaC.h:107
VmbFeaturePersist_t m_persistType
Definition: Camera.h:623
VmbUint32_t VmbFeaturePersist_t
Definition: VimbaC.h:1881
std::vector< VmbUchar_t > UcharVector
VmbUint32_t m_loggingLevel
Definition: Camera.h:625
VmbErrorType GetModel(std::string &model) const
IMEXPORT VmbErrorType StopContinuousImageAcquisition()
Definition: Camera.cpp:922
IMEXPORT VmbErrorType StartCapture()
Definition: Camera.cpp:1203
unsigned int VmbUint32_t
IMEXPORT VmbErrorType RevokeFrame(const FramePtr &pFrame)
Definition: Camera.cpp:1005
virtual VmbErrorType ReadMemory(const VmbUint64_t &address, UcharVector &buffer) const
virtual VmbErrorType WriteRegisters(const Uint64Vector &addresses, const Uint64Vector &buffer)
VmbErrorType GetInterfaceID(std::string &interfaceID) const
IMEXPORT VmbErrorType StartContinuousImageAcquisition(int bufferCount, const IFrameObserverPtr &pObserver)
Definition: Camera.cpp:852
IMEXPORT VmbErrorType RevokeAllFrames()
Definition: Camera.cpp:1063
IMEXPORT VmbErrorType GetInterfaceType(VmbInterfaceType &interfaceType) const
Definition: Camera.cpp:700
IMEXPORT VmbErrorType EndCapture()
Definition: Camera.cpp:1208
VmbErrorType GetName(std::string &name) const
IMEXPORT VmbErrorType AnnounceFrame(const FramePtr &pFrame)
Definition: Camera.cpp:963


avt_vimba_camera
Author(s): Miquel Massot , Allied Vision Technologies
autogenerated on Wed Jun 5 2019 22:22:40