OptrisImager.h
Go to the documentation of this file.
1 #ifndef _OPTRISIMAGER_H_
2 #define _OPTRISIMAGER_H_
3 
4 #include "libirimager/IRDevice.h"
5 #include "libirimager/IRImager.h"
6 #include "libirimager/IRImagerClient.h"
7 
8 #include "ros/ros.h"
10 #include <sensor_msgs/TimeReference.h>
11 #include "std_msgs/Float32.h"
12 #include "std_srvs/Empty.h"
13 #include "optris_drivers/AutoFlag.h"
14 #include "optris_drivers/TemperatureRange.h"
15 #include "optris_drivers/Temperature.h"
16 #include "optris_drivers/Flag.h"
17 
18 namespace optris_drivers
19 {
20 
26 class OptrisImager : public evo::IRImagerClient
27 {
28 public:
29 
35  OptrisImager(evo::IRDevice* dev, evo::IRDeviceParams params);
36 
40  virtual ~OptrisImager();
41 
45  void run();
46 
51  void onTimer(const ros::TimerEvent& event);
52 
58  virtual void onRawFrame(unsigned char* data, int size) {};
59 
68  virtual void onThermalFrame(unsigned short* image, unsigned int w, unsigned int h, evo::IRFrameMetadata meta, void* arg);
69 
78  virtual void onVisibleFrame(unsigned char* image, unsigned int w, unsigned int h, evo::IRFrameMetadata meta, void* arg);
79 
85  virtual void onFlagStateChange(evo::EnumFlagState flagstate, void* arg);
86 
91  virtual void onProcessExit(void* arg);
92 
96  bool onAutoFlag(AutoFlag::Request &req, AutoFlag::Response &res);
97 
101  bool onForceFlag(std_srvs::Empty::Request& req, std_srvs::Empty::Response& res);
102 
106  bool onSetTemperatureRange(TemperatureRange::Request &req, TemperatureRange::Response &res);
107 
108 private:
109 
110  evo::IRImager _imager;
111 
112  evo::IRDevice* _dev;
113 
114  unsigned int _img_cnt;
115 
116  unsigned char* _bufferRaw;
117 
118  sensor_msgs::Image _thermal_image;
119 
120  sensor_msgs::Image _visible_image;
121 
122  sensor_msgs::TimeReference _device_timer;
123 
124  optris_drivers::Temperature _internal_temperature;
125 
127 
129 
131 
133 
135 
137 
139 
141 };
142 
143 } //namespace
144 
145 #endif // _OPTRISIMAGER_H_
image_transport::Publisher _visible_pub
Definition: OptrisImager.h:128
sensor_msgs::Image _thermal_image
Definition: OptrisImager.h:118
bool onForceFlag(std_srvs::Empty::Request &req, std_srvs::Empty::Response &res)
ros::ServiceServer _sTemp
Definition: OptrisImager.h:140
bool onSetTemperatureRange(TemperatureRange::Request &req, TemperatureRange::Response &res)
virtual void onProcessExit(void *arg)
virtual void onVisibleFrame(unsigned char *image, unsigned int w, unsigned int h, evo::IRFrameMetadata meta, void *arg)
sensor_msgs::TimeReference _device_timer
Definition: OptrisImager.h:122
ros::ServiceServer _sAuto
Definition: OptrisImager.h:136
void onTimer(const ros::TimerEvent &event)
bool onAutoFlag(AutoFlag::Request &req, AutoFlag::Response &res)
Node management class.
Definition: OptrisImager.h:26
OptrisImager(evo::IRDevice *dev, evo::IRDeviceParams params)
Definition: OptrisImager.cpp:6
virtual void onThermalFrame(unsigned short *image, unsigned int w, unsigned int h, evo::IRFrameMetadata meta, void *arg)
ros::ServiceServer _sForce
Definition: OptrisImager.h:138
virtual void onRawFrame(unsigned char *data, int size)
Definition: OptrisImager.h:58
sensor_msgs::Image _visible_image
Definition: OptrisImager.h:120
image_transport::Publisher _thermal_pub
Definition: OptrisImager.h:126
optris_drivers::Temperature _internal_temperature
Definition: OptrisImager.h:124
virtual void onFlagStateChange(evo::EnumFlagState flagstate, void *arg)


optris_drivers
Author(s): Stefan May (Nuremberg Institute of Technology Georg Simon Ohm - www.th-nuernberg.de), 64-Bit platform supported by Fraunhofer IPA (www.ipa.fraunhofer.de), Support for ROS hydro migration by Christopher-Eyk Hrabia (DAI-Labor, Technische Universität Berlin)
autogenerated on Mon Jun 10 2019 14:09:59