00001 00008 /***************************************************************************** 00009 ** Ifdefs 00010 *****************************************************************************/ 00011 00012 #ifndef %(package)s_QNODE_HPP_ 00013 #define %(package)s_QNODE_HPP_ 00014 00015 /***************************************************************************** 00016 ** Includes 00017 *****************************************************************************/ 00018 00019 #include <ros/ros.h> 00020 #include <string> 00021 #include <QThread> 00022 #include <QStringListModel> 00023 00024 00025 /***************************************************************************** 00026 ** Namespaces 00027 *****************************************************************************/ 00028 00029 namespace %(package)s { 00030 00031 /***************************************************************************** 00032 ** Class 00033 *****************************************************************************/ 00034 00035 class QNode : public QThread { 00036 Q_OBJECT 00037 public: 00038 QNode(int argc, char** argv ); 00039 virtual ~QNode(); 00040 bool init(); 00041 bool init(const std::string &master_url, const std::string &host_url); 00042 void run(); 00043 00044 /********************* 00045 ** Logging 00046 **********************/ 00047 enum LogLevel { 00048 Debug, 00049 Info, 00050 Warn, 00051 Error, 00052 Fatal 00053 }; 00054 00055 QStringListModel* loggingModel() { return &logging_model; } 00056 void log( const LogLevel &level, const std::string &msg); 00057 00058 Q_SIGNALS: 00059 void loggingUpdated(); 00060 void rosShutdown(); 00061 00062 private: 00063 int init_argc; 00064 char** init_argv; 00065 ros::Publisher chatter_publisher; 00066 QStringListModel logging_model; 00067 }; 00068 00069 } // namespace %(package)s 00070 00071 #endif /* %(package)s_QNODE_HPP_ */