17 #ifndef _CAM_USB_CONFIG_H_
18 #define _CAM_USB_CONFIG_H_
22 #include "camera_interface/CamInterface.h"
36 static const std::string ModeTxt[] = {
"CAM_USB_NONE",
"CAM_USB_V4L2",
"CAM_USB_GST" };
61 CamUsb(std::string
const& device);
73 void fastInit(
int width,
int height);
80 virtual int listCameras(std::vector<CamInfo> &cam_infos)
const;
86 virtual bool open(
const CamInfo &cam,
const AccessMode mode=Master);
100 virtual bool close();
110 virtual bool grab(
const GrabMode mode = SingleFrame,
const int buffer_len=1);
116 virtual bool retrieveFrame(base::samples::frame::Frame &frame,
const int timeout=1000);
121 bool storeFrame(base::samples::frame::Frame& frame, std::string
const& file_name);
134 virtual bool setIpSettings(
const CamInfo &cam,
const IPSettings &ip_settings)
const;
139 virtual bool setAttrib(
const int_attrib::CamAttrib attrib,
const int value);
146 virtual bool setAttrib(
const double_attrib::CamAttrib attrib,
const double value);
148 virtual bool setAttrib(
const str_attrib::CamAttrib attrib,
const std::string value) {
149 throw std::runtime_error(
"setAttrib str_attrib is not yet implemented for the camera interface!");
156 virtual bool setAttrib(
const enum_attrib::CamAttrib attrib);
163 virtual bool isAttribAvail(
const int_attrib::CamAttrib attrib);
168 virtual bool isAttribAvail(
const double_attrib::CamAttrib attrib);
171 throw std::runtime_error(
"isAttribAvail str_attrib is not yet implemented for the camera interface!");
178 virtual bool isAttribAvail(
const enum_attrib::CamAttrib attrib);
183 virtual int getAttrib(
const int_attrib::CamAttrib attrib);
188 virtual double getAttrib(
const double_attrib::CamAttrib attrib);
190 virtual std::string
getAttrib(
const str_attrib::CamAttrib attrib) {
191 throw std::runtime_error(
"getAttrib str_attrib is not yet implemented for the camera interface!");
198 virtual bool isAttribSet(
const enum_attrib::CamAttrib attrib);
233 const base::samples::frame::frame_mode_t mode,
234 const uint8_t color_depth,
235 const bool resize_frames =
true);
246 base::samples::frame::frame_mode_t &mode,
247 uint8_t &color_depth);
270 if(!pcallback_function)
271 throw std::runtime_error (
"You can not set the callback function to null!!! "
272 "Otherwise CamUsb::callUserCallbackFcn would not be thread safe.");
274 mpCallbackFunction = pcallback_function;
275 mpPassThroughPointer = p;
282 throw std::runtime_error(
"This camerea does not support synchronizeWithSystemTime. "
283 "The timestamp of the camera frame will be invalid.");
287 throw std::runtime_error(
"This camerea does not support saveConfiguration.");
291 throw std::runtime_error(
"This camerea does not support loadConfiguration.");
294 virtual void getRange(
const double_attrib::CamAttrib attrib,
double &dmin,
double &dmax) {
295 throw std::runtime_error(
"This camerea does not support getRange for double_attrib.");
298 virtual void getRange(
const int_attrib::CamAttrib attrib,
int &imin,
int &imax);
311 if(act_grab_mode_ == Stop) {
314 timeval stop_time_grabbing;
315 gettimeofday(&stop_time_grabbing, 0);
316 double sec = stop_time_grabbing.tv_sec - mStartTimeGrabbing.tv_sec;
320 return mReceivedFrameCounter / sec;
337 CamConfig* mCamConfig;
343 struct CamInfo mCamInfo;
345 std::map<int_attrib::CamAttrib, int> mMapAttrsCtrlsInt;
351 timeval mStartTimeGrabbing;
352 int mReceivedFrameCounter;
355 void (*mpCallbackFunction)(
const void* p);
356 void* mpPassThroughPointer;
358 void createAttrsCtrlMaps(CamConfig* cam_config);
virtual const CamInfo * getCameraInfo() const
Definition: cam_usb.cpp:75
virtual bool setToDefault()
Definition: cam_usb.cpp:624
virtual void getRange(const double_attrib::CamAttrib attrib, double &dmin, double &dmax)
Definition: cam_usb.h:294
virtual void loadConfiguration(uint8_t index)
Definition: cam_usb.h:290
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=true)
Definition: cam_usb.cpp:569
bool isOpen() const
Definition: cam_usb.cpp:71
virtual bool getFrameSettings(base::samples::frame::frame_size_t &size, base::samples::frame::frame_mode_t &mode, uint8_t &color_depth)
Definition: cam_usb.cpp:607
virtual bool grab(const GrabMode mode=SingleFrame, const int buffer_len=1)
Definition: cam_usb.cpp:97
virtual bool close()
Definition: cam_usb.cpp:85
bool isV4L2AttribAvail(const int control_id, std::string name="")
Definition: cam_usb.cpp:517
virtual bool setCallbackFcn(void(*pcallback_function)(const void *p), void *p)
Definition: cam_usb.h:268
virtual bool open(const CamInfo &cam, const AccessMode mode=Master)
Definition: cam_usb.cpp:50
virtual bool setAttrib(const int_attrib::CamAttrib attrib, const int value)
Definition: cam_usb.cpp:238
enum CAM_USB_MODE getCamMode()
Definition: cam_usb.h:306
virtual bool setAttrib(const str_attrib::CamAttrib attrib, const std::string value)
Definition: cam_usb.h:148
virtual bool isAttribAvail(const int_attrib::CamAttrib attrib)
Definition: cam_usb.cpp:355
virtual bool retrieveFrame(base::samples::frame::Frame &frame, const int timeout=1000)
Definition: cam_usb.cpp:152
~CamUsb()
Definition: cam_usb.cpp:15
virtual bool isAttribSet(const enum_attrib::CamAttrib attrib)
Definition: cam_usb.cpp:470
double calculateFPS()
Definition: cam_usb.h:310
virtual bool setIpSettings(const CamInfo &cam, const IPSettings &ip_settings) const
Definition: cam_usb.cpp:232
int getV4L2Attrib(const int control_id)
Definition: cam_usb.cpp:542
void fastInit(int width, int height)
Definition: cam_usb.cpp:20
virtual bool isFrameAvailable()
Definition: cam_usb.cpp:208
bool storeFrame(base::samples::frame::Frame &frame, std::string const &file_name)
Definition: cam_usb.cpp:204
virtual int listCameras(std::vector< CamInfo > &cam_infos) const
Definition: cam_usb.cpp:28
virtual int skipFrames()
Definition: cam_usb.cpp:219
virtual bool triggerFrame()
Definition: cam_usb.cpp:620
CAM_USB_MODE
Definition: cam_usb.h:30
virtual int getAttrib(const int_attrib::CamAttrib attrib)
Definition: cam_usb.cpp:429
virtual bool isAttribAvail(const str_attrib::CamAttrib attrib)
Definition: cam_usb.h:170
bool setV4L2Attrib(const int control_id, const int value)
Definition: cam_usb.cpp:558
virtual std::string getAttrib(const str_attrib::CamAttrib attrib)
Definition: cam_usb.h:190
virtual void saveConfiguration(uint8_t index)
Definition: cam_usb.h:286
virtual void synchronizeWithSystemTime(uint32_t time_interval)
Definition: cam_usb.h:280
static const uint32_t CAM_ID
Definition: cam_usb.h:58
virtual int getFileDescriptor() const
Definition: cam_usb.cpp:667
bool printCameraInformations()
Definition: cam_usb.cpp:636