3 #include <libuvc/libuvc.h> 8 #include <dynamic_reconfigure/server.h> 10 #include <boost/thread/mutex.hpp> 11 #include <sensor_msgs/CameraInfo.h> 12 #include <astra_camera/GetUVCExposure.h> 13 #include <astra_camera/SetUVCExposure.h> 14 #include <astra_camera/GetUVCGain.h> 15 #include <astra_camera/SetUVCGain.h> 16 #include <astra_camera/GetUVCWhiteBalance.h> 17 #include <astra_camera/SetUVCWhiteBalance.h> 19 #include <astra_camera/UVCCameraConfig.h> 55 enum uvc_status_attribute status_attribute,
56 void *data,
size_t data_len);
60 enum uvc_status_attribute status_attribute,
61 void *data,
size_t data_len,
66 bool getUVCExposureCb(astra_camera::GetUVCExposureRequest& req, astra_camera::GetUVCExposureResponse& res);
67 bool setUVCExposureCb(astra_camera::SetUVCExposureRequest& req, astra_camera::SetUVCExposureResponse& res);
68 bool getUVCGainCb(astra_camera::GetUVCGainRequest& req, astra_camera::GetUVCGainResponse& res);
69 bool setUVCGainCb(astra_camera::SetUVCGainRequest& req, astra_camera::SetUVCGainResponse& res);
70 bool getUVCWhiteBalanceCb(astra_camera::GetUVCWhiteBalanceRequest& req, astra_camera::GetUVCWhiteBalanceResponse& res);
71 bool setUVCWhiteBalanceCb(astra_camera::SetUVCWhiteBalanceRequest& req, astra_camera::SetUVCWhiteBalanceResponse& res);
boost::recursive_mutex mutex_
ros::ServiceServer set_uvc_exposure_server
static void ImageCallbackAdapter(uvc_frame_t *frame, void *ptr)
enum uvc_frame_format GetVideoMode(std::string vmode)
static const int kReconfigureRunning
bool getUVCExposureCb(astra_camera::GetUVCExposureRequest &req, astra_camera::GetUVCExposureResponse &res)
ros::ServiceServer get_uvc_gain_server
bool setUVCGainCb(astra_camera::SetUVCGainRequest &req, astra_camera::SetUVCGainResponse &res)
ros::ServiceServer get_uvc_white_balance_server
bool setUVCExposureCb(astra_camera::SetUVCExposureRequest &req, astra_camera::SetUVCExposureResponse &res)
static void AutoControlsCallbackAdapter(enum uvc_status_class status_class, int event, int selector, enum uvc_status_attribute status_attribute, void *data, size_t data_len, void *ptr)
ros::ServiceClient camera_info_client
static const int kReconfigureStop
image_transport::ImageTransport it_
ros::ServiceServer set_uvc_white_balance_server
sensor_msgs::CameraInfo camera_info_
dynamic_reconfigure::Server< UVCCameraConfig > config_server_
ros::ServiceServer get_uvc_exposure_server
void ReconfigureCallback(UVCCameraConfig &config, uint32_t level)
void ImageCallback(uvc_frame_t *frame)
bool getUVCGainCb(astra_camera::GetUVCGainRequest &req, astra_camera::GetUVCGainResponse &res)
bool setUVCWhiteBalanceCb(astra_camera::SetUVCWhiteBalanceRequest &req, astra_camera::SetUVCWhiteBalanceResponse &res)
ros::ServiceClient device_type_client
bool getUVCWhiteBalanceCb(astra_camera::GetUVCWhiteBalanceRequest &req, astra_camera::GetUVCWhiteBalanceResponse &res)
void OpenCamera(UVCCameraConfig &new_config)
image_transport::CameraPublisher cam_pub_
camera_info_manager::CameraInfoManager cinfo_manager_
void AutoControlsCallback(enum uvc_status_class status_class, int event, int selector, enum uvc_status_attribute status_attribute, void *data, size_t data_len)
ros::ServiceServer set_uvc_gain_server
static const int kReconfigureClose
CameraDriver(ros::NodeHandle nh, ros::NodeHandle priv_nh)
OB_DEVICE_NO device_type_no_
uvc_device_handle_t * devh_