etherCAT_compatibility_hand_node.cpp
Go to the documentation of this file.
00001 
00030 #include <ros/ros.h>
00031 
00032 #include <boost/thread.hpp>
00033 #include <boost/smart_ptr.hpp>
00034 
00035 #include "sr_hand/sr_subscriber.h"
00036 #include "sr_hand/sr_publisher.h"
00037 #include "sr_hand/sr_diagnosticer.h"
00038 #include "sr_hand/hand/etherCAT_compatibility_hand.hpp"
00039 
00040 using namespace std;
00041 using namespace ros;
00042 using namespace shadowrobot;
00043 
00045   //           MAIN              //
00047 
00048 void run_diagnotics(boost::shared_ptr<SRDiagnosticer> shadowhand_diag)
00049 {
00050   while( ok() )
00051   {
00052     shadowhand_diag->publish();
00053   }
00054 }
00055 
00056 void run_publisher(boost::shared_ptr<SRPublisher> shadowhand_pub)
00057 {
00058   while( ok() )
00059   {
00060     shadowhand_pub->publish();
00061   }
00062 }
00063 
00064 
00076 int main(int argc, char** argv)
00077 {
00078   ros::init(argc, argv, "shadowhand");
00079   NodeHandle n;
00080 
00081   boost::shared_ptr<EtherCATCompatibilityHand> eth_sh(new EtherCATCompatibilityHand());
00082   boost::shared_ptr<SRSubscriber> shadowhand_subscriber(new SRSubscriber(eth_sh));
00083 
00084 
00085   boost::shared_ptr<SRPublisher> shadowhand_pub( new SRPublisher(eth_sh));
00086   boost::shared_ptr<SRDiagnosticer> shadowhand_diag( new SRDiagnosticer(eth_sh, sr_hand_hardware));
00087 
00088   boost::thread thrd1( boost::bind( &run_diagnotics, shadowhand_diag ));
00089   boost::thread thrd2( boost::bind( &run_publisher, shadowhand_pub ));
00090   thrd1.join();
00091   thrd2.join();
00092 
00093   return 0;
00094 }


sr_hand
Author(s): Ugo Cupcic / ugo@shadowrobot.com, contact@shadowrobot.com
autogenerated on Fri Jan 3 2014 12:03:25