camera_aravis
CameraAravis.hpp
Go to the documentation of this file.
1 #ifndef _CAMERA_ARAVIS_CAMERAARAVIS_HPP_
2 #define _CAMERA_ARAVIS_CAMERAARAVIS_HPP_
3 
4 #include <iostream>
5 #include <string>
6 #include <camera_interface/CamInterface.h>
7 #include <arv.h>
8 #include <stdlib.h>
9 
10 #include <camera_interface/BrightnessIndicator.h>
11 #include <camera_interface/ExposureController.h>
12 #include <boost/shared_ptr.hpp>
13 
14 
15 #include <semaphore.h>
16 
17 
18 namespace camera
19 {
20  class CameraAravis : public CamInterface
21  {
22  public:
23  CameraAravis();
24  ~CameraAravis();
25  bool grab(const GrabMode mode = SingleFrame, const int buffer_len=1);
26  void openCamera(std::string camera_name, unsigned packet_size = 1500);
27  static void resetCamera(const std::string& camera_name);
28  void resetTimestamp();
29  ArvPixelFormat getBayerFormat ();
30  bool retrieveFrame(base::samples::frame::Frame &frame,const int timeout=1000);
31  bool isFrameAvailable();
32  bool setCallbackFcn(void (*pcallback_function)(const void* p),void *p);
33  bool setErrorCallbackFcn(void (*pcallback_function)(const void* p),void *p);
34  bool isAttribAvail(const int_attrib::CamAttrib attrib);
35  bool isAttribAvail(const double_attrib::CamAttrib attrib);
36  bool isAttribAvail(const str_attrib::CamAttrib attrib);
37  bool isAttribAvail(const enum_attrib::CamAttrib attrib);
38  bool close();
39  std::string doDiagnose();
40  bool setAttrib(const int_attrib::CamAttrib attrib,const int value);
41  int getAttrib(const int_attrib::CamAttrib attrib);
42  bool setAttrib(const enum_attrib::CamAttrib attrib);
43  bool setAttrib(const double_attrib::CamAttrib attrib,const double value);
44  bool isAttribSet(const enum_attrib::CamAttrib attrib);
45  bool setFrameSettings(const base::samples::frame::frame_size_t size,
46  const base::samples::frame::frame_mode_t mode,
47  const uint8_t color_depth,
48  const bool resize_frames);
49 
50  private:
51  std::string getBufferStatusString(ArvBufferStatus status);
52  void printBufferStatus();
53  void startCapture();
54  void stopCapture();
55  void prepareBuffer(const size_t bufferLen);
56  base::samples::frame::frame_mode_t convertArvToFrameMode(ArvPixelFormat format);
57 
58  friend void aravisCameraCallback(ArvStream *stream, CameraAravis *driver);
59  friend void controlLostCallback (CameraAravis *driver);
60 
61  private:
62  std::string path;
63  ArvCamera *camera;
64  ArvStream *stream;
65  int current_frame;
66  int buffer_counter;
67  void (*callbackFcn)(const void* p);
68  void (*errorCallbackFcn)(const void* p);
69  void *callbackData;
70  void *errorCallbackData;
71  pthread_mutex_t buffer_counter_lock;
72  base::Time start_time;
73 
74  std::vector<base::samples::frame::Frame> camera_buffer;
75 
76  unsigned long callback_handler;
77  unsigned long error_callback_handler;
78  };
79 
80 }
81 
82 #endif
bool setCallbackFcn(void(*pcallback_function)(const void *p), void *p)
Definition: CameraAravis.cpp:435
std::string doDiagnose()
Definition: CameraAravis.cpp:570
bool setErrorCallbackFcn(void(*pcallback_function)(const void *p), void *p)
Definition: CameraAravis.cpp:441
bool retrieveFrame(base::samples::frame::Frame &frame, const int timeout=1000)
Definition: CameraAravis.cpp:141
bool close()
Definition: CameraAravis.cpp:566
bool setAttrib(const int_attrib::CamAttrib attrib, const int value)
Definition: CameraAravis.cpp:273
int getAttrib(const int_attrib::CamAttrib attrib)
Definition: CameraAravis.cpp:372
bool grab(const GrabMode mode=SingleFrame, const int buffer_len=1)
Definition: CameraAravis.cpp:227
bool isAttribAvail(const int_attrib::CamAttrib attrib)
Definition: CameraAravis.cpp:447
bool isFrameAvailable()
Definition: CameraAravis.cpp:574
void resetTimestamp()
Definition: CameraAravis.cpp:85
void openCamera(std::string camera_name, unsigned packet_size=1500)
Definition: CameraAravis.cpp:46
Definition: CameraAravis.hpp:20
bool setFrameSettings(const base::samples::frame::frame_size_t size, const base::samples::frame::frame_mode_t mode, const uint8_t color_depth, const bool resize_frames)
Definition: CameraAravis.cpp:383
friend void controlLostCallback(CameraAravis *driver)
Definition: CameraAravis.cpp:20
bool isAttribSet(const enum_attrib::CamAttrib attrib)
Definition: CameraAravis.cpp:528
CameraAravis()
Definition: CameraAravis.cpp:27
ArvPixelFormat getBayerFormat()
Definition: CameraAravis.cpp:253
static void resetCamera(const std::string &camera_name)
Definition: CameraAravis.cpp:68
~CameraAravis()
Definition: CameraAravis.cpp:38
friend void aravisCameraCallback(ArvStream *stream, CameraAravis *driver)
Definition: CameraAravis.cpp:11