ros_source.h
Go to the documentation of this file.
1 // *****************************************************************************
2 //
3 // Copyright (c) 2015, Southwest Research Institute® (SwRI®)
4 // All rights reserved.
5 //
6 // Redistribution and use in source and binary forms, with or without
7 // modification, are permitted provided that the following conditions are met:
8 // * Redistributions of source code must retain the above copyright
9 // notice, this list of conditions and the following disclaimer.
10 // * Redistributions in binary form must reproduce the above copyright
11 // notice, this list of conditions and the following disclaimer in the
12 // documentation and/or other materials provided with the distribution.
13 // * Neither the name of Southwest Research Institute® (SwRI®) nor the
14 // names of its contributors may be used to endorse or promote products
15 // derived from this software without specific prior written permission.
16 //
17 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20 // ARE DISCLAIMED. IN NO EVENT SHALL Southwest Research Institute® BE LIABLE
21 // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22 // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
23 // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
24 // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25 // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26 // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
27 // DAMAGE.
28 //
29 // *****************************************************************************
30 
31 #ifndef SWRI_PROFILER_TOOLS_ROS_SOURCE_H_
32 #define SWRI_PROFILER_TOOLS_ROS_SOURCE_H_
33 
34 #include <QObject>
35 #include <QThread>
36 #include <swri_profiler_msgs/ProfileIndexArray.h>
37 #include <swri_profiler_msgs/ProfileDataArray.h>
38 
40 
41 namespace swri_profiler_tools
42 {
43 // RosSource implements a Qt-friendly interface around ROS. It
44 // creates/monitors the connection with the ROS master and handles our
45 // subscriptions. Messages are provided via the Qt signal/slot
46 // framework. RosSource maintains a separate thread so that the GUI
47 // doesn't block when some of the ROS functions are taking their sweet
48 // time.
49 class ProfileDatabase;
50 class RosSourceBackend;
51 class RosSource : public QObject
52 {
53  Q_OBJECT;
54 
55  public:
57  ~RosSource();
58 
59  bool isConnected() const { return connected_; }
60  const QString& masterUri() const { return master_uri_; }
61 
62  void start();
63 
64  Q_SIGNALS:
65  void connected(bool connected, QString uri);
66 
67  private Q_SLOTS:
68  void handleConnected(bool connected, QString uri);
69  void handleIndex(swri_profiler_msgs::ProfileIndexArray msg);
70  void handleData(swri_profiler_msgs::ProfileDataArray msg);
71 
72  private:
74 
75  QThread ros_thread_;
77 
80 
81  bool connected_;
82  QString master_uri_;
83 }; // class RosSource
84 } // namespace swri_profiler_tools
85 #endif // SWRI_PROFILER_TOOLS_ROS_SOURCE_H_
void handleIndex(swri_profiler_msgs::ProfileIndexArray msg)
Definition: ros_source.cpp:104
const QString & masterUri() const
Definition: ros_source.h:60
void handleConnected(bool connected, QString uri)
Definition: ros_source.cpp:85
ProfilerMsgAdapter msg_adapter_
Definition: ros_source.h:78
RosSourceBackend * backend_
Definition: ros_source.h:76
void connected(bool connected, QString uri)
void handleData(swri_profiler_msgs::ProfileDataArray msg)
Definition: ros_source.cpp:109
RosSource(ProfileDatabase *db)
Definition: ros_source.cpp:39


swri_profiler_tools
Author(s):
autogenerated on Fri Nov 27 2020 03:44:18