camera_prosilica
CameraRemoteInterface.h
Go to the documentation of this file.
1 /*
2 Could not load previous license
3 */
4 
5 #ifndef CAMERAREMOTEINTERFACE_H
6 #define CAMERAREMOTEINTERFACE_H
7 
8 #include "camera_interface/CamInterface.h"
9 #include <rtt/TaskContext.hpp>
10 #include <rtt/Command.hpp>
11 #include <rtt/Method.hpp>
12 
13 namespace camera
14 {
15  class CameraRemoteInterface : public CamInterface
16  {
17  private:
18  RTT::Method<bool(camera::int_attrib::CamAttrib,int)> _setIntAttrib;
19  RTT::Method<bool(camera::enum_attrib::CamAttrib)> _setEnumAttrib;
20  RTT::Method<bool(camera::double_attrib::CamAttrib,double)> _setDoubleAttrib;
21  RTT::Method<bool(camera::str_attrib::CamAttrib,std::string)> _setStrAttrib;
22 
23  RTT::Method<int(camera::int_attrib::CamAttrib)> _getIntAttrib;
24  RTT::Method<double(camera::double_attrib::CamAttrib)> _getDoubleAttrib;
25  RTT::Method<std::string(camera::str_attrib::CamAttrib)> _getStrAttrib;
26  RTT::Method<bool(camera::enum_attrib::CamAttrib)> _isEnumAttribSet;
27 
28  RTT::Method<int(camera::int_attrib::CamAttrib)> _getIntRangeMin;
29  RTT::Method<int(camera::int_attrib::CamAttrib)> _getIntRangeMax;
30 
31  RTT::Method<double(camera::double_attrib::CamAttrib)> _getDoubleRangeMin;
32  RTT::Method<double(camera::double_attrib::CamAttrib)> _getDoubleRangeMax;
33 
34  RTT::TaskContext* camera_task_context;
35 
36  public:
38 
40  {
41  if(!camera_task_context)
42  throw std::runtime_error("CameraRemoteInterface: the camera TaskContext is not set!!!");
43  }
44 
46 
49  virtual void open(RTT::TaskContext *task_context)
50  {
51  camera_task_context = task_context;
53 
54  //binding functions
55  _setIntAttrib = camera_task_context->methods()->getMethod<bool(int_attrib::CamAttrib,int)>("setIntAttrib");
56  _setEnumAttrib = camera_task_context->methods()->getMethod<bool(enum_attrib::CamAttrib)>("setEnumAttrib");
57  _setDoubleAttrib = camera_task_context->methods()->getMethod<bool(double_attrib::CamAttrib,double)>("setDoubleAttrib");
58  _setStrAttrib = camera_task_context->methods()->getMethod<bool(str_attrib::CamAttrib,std::string)>("setStringAttrib");
59 
60  _getIntAttrib = camera_task_context->methods()->getMethod<int(int_attrib::CamAttrib)>("getIntAttrib");
61  _isEnumAttribSet = camera_task_context->methods()->getMethod<bool(enum_attrib::CamAttrib)>("isEnumAttribSet");
62  _getDoubleAttrib = camera_task_context->methods()->getMethod<double(double_attrib::CamAttrib)>("getDoubleAttrib");
63  _getStrAttrib = camera_task_context->methods()->getMethod<std::string(str_attrib::CamAttrib)>("getStringAttrib");
64 
65  _getIntRangeMin = camera_task_context->methods()->getMethod<int(int_attrib::CamAttrib)>("getIntRangeMin");
66  _getIntRangeMax = camera_task_context->methods()->getMethod<int(int_attrib::CamAttrib)>("getIntRangeMax");
67  _getDoubleRangeMin = camera_task_context->methods()->getMethod<double(double_attrib::CamAttrib)>("getDoubleRangeMin");
68  _getDoubleRangeMax = camera_task_context->methods()->getMethod<double(double_attrib::CamAttrib)>("getDoubleRangeMax");
69 
70  }
71 
72  virtual void getRange(const double_attrib::CamAttrib attrib,double &dmin,double &dmax)
73  {
75  if(!_getDoubleRangeMin.ready())
76  throw std::runtime_error("CameraRemoteInterface: _getDoubleRangeMin is not ready!");
77  if(!_getDoubleRangeMax.ready())
78  throw std::runtime_error("CameraRemoteInterface: _getDoubleRangeMin is not ready!");
79 
80  dmax = _getDoubleRangeMax(attrib);
81  dmin = _getDoubleRangeMin(attrib);
82  };
83 
84  virtual void getRange(const int_attrib::CamAttrib attrib,int &imin,int &imax)
85  {
87  if(!_getIntRangeMin.ready())
88  throw std::runtime_error("CameraRemoteInterface: _getIntRangeMin is not ready!");
89  if(!_getIntRangeMax.ready())
90  throw std::runtime_error("CameraRemoteInterface: _getIntRangeMax is not ready!");
91 
92  imax = _getIntRangeMax(attrib);
93  imin = _getIntRangeMin(attrib);
94  };
95 
96  virtual bool setAttrib(const int_attrib::CamAttrib attrib,const int value)
97  {
99  if(!_setIntAttrib.ready())
100  throw std::runtime_error("CameraRemoteInterface: _setIntAttrib is not ready!");
101  _setIntAttrib(attrib,value);
102  };
103 
104  virtual bool setAttrib(const double_attrib::CamAttrib attrib, const double value)
105  {
107  if(!_setDoubleAttrib.ready())
108  throw std::runtime_error("CameraRemoteInterface: _setDoubleAttrib is not ready!");
109  _setDoubleAttrib(attrib,value);
110  };
111 
112  virtual bool setAttrib(const str_attrib::CamAttrib attrib,const std::string value)
113  {
115  if(!_setStrAttrib.ready())
116  throw std::runtime_error("CameraRemoteInterface: _setStrAttrib is not ready!");
117  _setStrAttrib(attrib,value);
118  };
119 
120  virtual bool setAttrib(const enum_attrib::CamAttrib attrib)
121  {
123  if(!_setEnumAttrib.ready())
124  throw std::runtime_error("CameraRemoteInterface: _setEnumAttrib is not ready!");
125  _setEnumAttrib(attrib);
126  };
127 
128  virtual int getAttrib(const int_attrib::CamAttrib attrib)
129  {
131  if(!_getIntAttrib.ready())
132  throw std::runtime_error("CameraRemoteInterface: _getIntAttrib is not ready!");
133  return _getIntAttrib(attrib);
134  };
135 
136  virtual double getAttrib(const double_attrib::CamAttrib attrib)
137  {
139  if(!_getDoubleAttrib.ready())
140  throw std::runtime_error("CameraRemoteInterface: _getDoubleAttrib is not ready!");
141  return _getDoubleAttrib(attrib);
142  };
143 
144  virtual std::string getAttrib(const str_attrib::CamAttrib attrib)
145  {
147  if(!_getStrAttrib.ready())
148  throw std::runtime_error("CameraRemoteInterface: _getStrAttrib is not ready!");
149  return _getStrAttrib(attrib);
150  };
151 
152  virtual bool isAttribSet(const enum_attrib::CamAttrib attrib)
153  {
155  if(!_isEnumAttribSet.ready())
156  throw std::runtime_error("CameraRemoteInterface: _isEnumAttribSet is not ready!");
157  return _isEnumAttribSet(attrib);
158  };
159  };
160 }
161 
162 #endif // CAMERAREMOTEINTERFACE_H
void checkTaskContext()
Definition: CameraRemoteInterface.h:39
virtual std::string getAttrib(const str_attrib::CamAttrib attrib)
Definition: CameraRemoteInterface.h:144
Definition: CameraRemoteInterface.h:15
Definition: CameraRemoteInterface.h:13
virtual void open(RTT::TaskContext *task_context)
connects to the camera orocos module
Definition: CameraRemoteInterface.h:49
virtual bool setAttrib(const double_attrib::CamAttrib attrib, const double value)
Definition: CameraRemoteInterface.h:104
virtual int getAttrib(const int_attrib::CamAttrib attrib)
Definition: CameraRemoteInterface.h:128
CameraRemoteInterface()
Definition: CameraRemoteInterface.h:37
virtual bool isAttribSet(const enum_attrib::CamAttrib attrib)
Definition: CameraRemoteInterface.h:152
virtual bool setAttrib(const enum_attrib::CamAttrib attrib)
Definition: CameraRemoteInterface.h:120
virtual void getRange(const int_attrib::CamAttrib attrib, int &imin, int &imax)
Definition: CameraRemoteInterface.h:84
virtual void getRange(const double_attrib::CamAttrib attrib, double &dmin, double &dmax)
Definition: CameraRemoteInterface.h:72
virtual bool setAttrib(const str_attrib::CamAttrib attrib, const std::string value)
Definition: CameraRemoteInterface.h:112
virtual double getAttrib(const double_attrib::CamAttrib attrib)
Definition: CameraRemoteInterface.h:136
virtual bool setAttrib(const int_attrib::CamAttrib attrib, const int value)
Definition: CameraRemoteInterface.h:96