00001 #ifndef DATALOAD_ROS_H 00002 #define DATALOAD_ROS_H 00003 00004 #include <ros/ros.h> 00005 #include <rosbag/bag.h> 00006 00007 #include <QObject> 00008 #include <QtPlugin> 00009 #include "PlotJuggler/dataloader_base.h" 00010 #include <ros_type_introspection/ros_introspection.hpp> 00011 00012 class DataLoadROS: public QObject, DataLoader 00013 { 00014 Q_OBJECT 00015 Q_PLUGIN_METADATA(IID "com.icarustechnology.PlotJuggler.DataLoader" "../dataloader.json") 00016 Q_INTERFACES(DataLoader) 00017 00018 public: 00019 DataLoadROS(); 00020 virtual const std::vector<const char*>& compatibleFileExtensions() const override; 00021 00022 virtual PlotDataMap readDataFromFile(const QString& file_name, 00023 QString &load_configuration ) override; 00024 00025 virtual const char* name() const override { return "DataLoad ROS bags"; } 00026 00027 virtual ~DataLoadROS(); 00028 00029 protected: 00030 void loadSubstitutionRule(QStringList all_topic_names); 00031 rosbag::Bag _bag; 00032 00033 private: 00034 RosIntrospection::SubstitutionRuleMap _rules; 00035 00036 std::vector<const char*> _extensions; 00037 00038 00039 }; 00040 00041 #endif // DATALOAD_CSV_H