From 0251c02fd7d9aea013e9f57e99ea3c030f46cf37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sergi=20Hern=C3=A0ndez=20Juan?= <shernand@iri.upc.edu> Date: Thu, 12 Feb 2015 11:55:18 +0000 Subject: [PATCH] Improved the nodelet implementation. --- src/firewire_camera_driver_nodelet.cpp | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/firewire_camera_driver_nodelet.cpp b/src/firewire_camera_driver_nodelet.cpp index 1e0adac..93221ed 100755 --- a/src/firewire_camera_driver_nodelet.cpp +++ b/src/firewire_camera_driver_nodelet.cpp @@ -1,8 +1,10 @@ #include "firewire_camera_driver_nodelet.h" #include <pluginlib/class_list_macros.h> -FirewireCameraDriverNode::FirewireCameraDriverNode(ros::NodeHandle &nh) : iri_base_driver::IriBaseNodeDriver<FirewireCameraDriver>(nh), camera_manager(ros::NodeHandle(this->public_node_handle_)), - it(new image_transport::ImageTransport(this->public_node_handle_)),Image_msg_(new sensor_msgs::Image) +FirewireCameraDriverNode::FirewireCameraDriverNode(ros::NodeHandle &nh) : iri_base_driver::IriBaseNodeDriver<FirewireCameraDriver>(nh), + camera_manager(ros::NodeHandle(this->public_node_handle_)), + it(new image_transport::ImageTransport(this->public_node_handle_)), + Image_msg_(new sensor_msgs::Image) { std::string cal_file; @@ -201,17 +203,16 @@ FirewireCameraDriverNode::~FirewireCameraDriverNode() FirewireCameraNodelet::FirewireCameraNodelet() { this->dev=NULL; - // initialize the thread - this->thread_server=CThreadServer::instance(); - this->spin_thread_id="firewire_camera_driver_nodelet_spin"; - this->thread_server->create_thread(this->spin_thread_id); - this->thread_server->attach_thread(this->spin_thread_id,this->spin_thread,this); } void FirewireCameraNodelet::onInit() { - ros::NodeHandle priv_nh(getPrivateNodeHandle()); - this->dev=new FirewireCameraDriverNode(priv_nh); + this->dev=new FirewireCameraDriverNode(getPrivateNodeHandle()); + // initialize the thread + this->thread_server=CThreadServer::instance(); + this->spin_thread_id=getName() + "_camera_driver_nodelet_spin"; + this->thread_server->create_thread(this->spin_thread_id); + this->thread_server->attach_thread(this->spin_thread_id,this->spin_thread,this); // start the spin thread this->thread_server->start_thread(this->spin_thread_id); } -- GitLab