rosout_publisher.h
Go to the documentation of this file.
00001 #ifndef ROSOUT_PUBLISHER_ROS_H
00002 #define ROSOUT_PUBLISHER_ROS_H
00003 
00004 #include <QObject>
00005 #include <QtPlugin>
00006 #include <QMainWindow>
00007 #include <map>
00008 #include <ros/ros.h>
00009 #include "PlotJuggler/statepublisher_base.h"
00010 #include <rosgraph_msgs/Log.h>
00011 #include "logwidget.hpp"
00012 
00013 class RosoutWindow: public QMainWindow
00014 {
00015     Q_OBJECT
00016 public:
00017     RosoutWindow():QMainWindow() {}
00018     ~ RosoutWindow(){}
00019 
00020     void closeEvent ( QCloseEvent* ) override{
00021         emit closed();
00022     }
00023 signals:
00024     void closed();
00025 };
00026 
00027 
00028 class  RosoutPublisher: public QObject, StatePublisher
00029 {
00030     Q_OBJECT
00031     Q_PLUGIN_METADATA(IID "com.icarustechnology.PlotJuggler.StatePublisher" "../statepublisher.json")
00032     Q_INTERFACES(StatePublisher)
00033 
00034 public:
00035     RosoutPublisher();
00036 
00037     virtual void updateState(double current_time) override;
00038     virtual const char* name() const override { return "RosoutPublisherROS"; }
00039     virtual ~RosoutPublisher();
00040 
00041     virtual bool enabled() const override { return _enabled; }
00042 
00043     virtual void play(double interval)  override
00044     {
00045         //TODO
00046     }
00047 
00048 public slots:
00049     virtual void setEnabled(bool enabled) override;
00050 
00051 private slots:
00052 
00053     void onWindowClosed();
00054 
00055 private:
00056 
00057     bool _enabled;
00058     int64_t _minimum_time_usec, _maximum_time_usec;
00059 
00060     LogsTableModel* _tablemodel;
00061     rqt_console_plus::LogWidget* _log_widget;
00062 
00063     std::vector<const PlotDataAny *> findRosoutTimeseries();
00064     void syncWithTableModel(const std::vector<const PlotDataAny *> &logs_timeseries);
00065 
00066     RosoutWindow* _log_window;
00067 signals:
00068     void timeRangeChanged(TimePoint time_min, TimePoint time_max);
00069 };
00070 
00071 
00072 
00073 #endif // ROSOUT_PUBLISHER_ROS_H


plotjuggler
Author(s): Davide Faconti
autogenerated on Wed Jul 3 2019 19:28:05