tibi_dabo_battery_monitor_driver_node.cpp
Go to the documentation of this file.
00001 #include "tibi_dabo_battery_monitor_driver_node.h"
00002 //#include <curses.h>
00003 #include <stdlib.h>
00004 TibiDaboBatteryMonitorDriverNode::TibiDaboBatteryMonitorDriverNode(ros::NodeHandle &nh) : 
00005   iri_base_driver::IriBaseNodeDriver<TibiDaboBatteryMonitorDriver>(nh)
00006 {
00007   //init class attributes if necessary
00008   this->loop_rate_ = 1;//in [Hz]
00009 
00010   // [init publishers]
00011   this->battery_status_publisher_ = this->public_node_handle_.advertise<tibi_dabo_msgs::battery_status>("battery_status", 100);
00012   
00013   // [init subscribers]
00014   
00015   // [init services]
00016   
00017   // [init clients]
00018   
00019   // [init action servers]
00020   
00021   // [init action clients]
00022   //initscr();
00023 }
00024 
00025 void TibiDaboBatteryMonitorDriverNode::mainNodeThread(void)
00026 {
00027   TBatteryInfo info;
00028 
00029   //lock access to driver if necessary
00030   this->driver_.lock();
00031 
00032   this->driver_.get_battery_info(&info);
00033   // [fill msg Header if necessary]
00034   //<publisher_name>.header.stamp = ros::Time::now();
00035   //<publisher_name>.header.frame_id = "<publisher_topic_name>";
00036   this->battery_status_msg_.voltage=info.battery_voltage;
00037   this->battery_status_msg_.temperature=(info.temperature1+info.temperature2)/2.0;
00038   this->battery_status_msg_.status=info.status;
00039   this->battery_status_msg_.input_current=info.current_in;
00040   this->battery_status_msg_.output_current=info.current_out;
00041   this->battery_status_msg_.remaining_capacity=info.rem_capacity;
00042   this->battery_status_msg_.time_to_charged=info.time_to_charged;
00043   this->battery_status_msg_.time_to_discharged=info.time_to_discharged;
00044   if(this->driver_.check_alarm())
00045   {
00046     int ok=system("beep"); //flash();//beep();
00047     ROS_ERROR("TibiDaboBatteryMonitorDriverNode::mainNodeThread: battery alarm! %d",ok);
00048   }
00049   else if(this->driver_.check_warning())
00050   {
00051     int ok=system("beep"); //flash();//beep();
00052     ROS_ERROR("TibiDaboBatteryMonitorDriverNode::mainNodeThread: battery warning! %d",ok);
00053   }
00054   // [fill msg structures]
00055   //this->battery_status_msg_.data = my_var;
00056   
00057   // [fill srv structure and make request to the server]
00058   
00059   // [fill action structure and make request to the action server]
00060 
00061   // [publish messages]
00062   this->battery_status_publisher_.publish(this->battery_status_msg_);
00063 
00064   //unlock access to driver if previously blocked
00065   this->driver_.unlock();
00066 }
00067 
00068 /*  [subscriber callbacks] */
00069 
00070 /*  [service callbacks] */
00071 
00072 /*  [action callbacks] */
00073 
00074 /*  [action requests] */
00075 
00076 void TibiDaboBatteryMonitorDriverNode::postNodeOpenHook(void)
00077 {
00078 }
00079 
00080 void TibiDaboBatteryMonitorDriverNode::addNodeDiagnostics(void)
00081 {
00082 }
00083 
00084 void TibiDaboBatteryMonitorDriverNode::addNodeOpenedTests(void)
00085 {
00086 }
00087 
00088 void TibiDaboBatteryMonitorDriverNode::addNodeStoppedTests(void)
00089 {
00090 }
00091 
00092 void TibiDaboBatteryMonitorDriverNode::addNodeRunningTests(void)
00093 {
00094 }
00095 
00096 void TibiDaboBatteryMonitorDriverNode::reconfigureNodeHook(int level)
00097 {
00098 }
00099 
00100 TibiDaboBatteryMonitorDriverNode::~TibiDaboBatteryMonitorDriverNode(void)
00101 {
00102   // [free dynamic memory]
00103   //endwin();
00104 }
00105 
00106 /* main function */
00107 int main(int argc,char *argv[])
00108 {
00109   return driver_base::main<TibiDaboBatteryMonitorDriverNode>(argc, argv, "tibi_dabo_battery_monitor_driver_node");
00110 }


tibi_dabo_battery_monitor
Author(s): Sergi Hernandez Juan
autogenerated on Fri Dec 6 2013 22:46:59