include
swri_profiler_tools
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
39
#include <
swri_profiler_tools/profiler_msg_adapter.h
>
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
:
56
RosSource
(
ProfileDatabase
*db);
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
:
73
ProfileDatabase
*
db_
;
74
75
QThread
ros_thread_
;
76
RosSourceBackend
*
backend_
;
77
78
ProfilerMsgAdapter
msg_adapter_
;
79
int
profile_key_
;
80
81
bool
connected_
;
82
QString
master_uri_
;
83
};
// class RosSource
84
}
// namespace swri_profiler_tools
85
#endif // SWRI_PROFILER_TOOLS_ROS_SOURCE_H_
swri_profiler_tools::RosSource::connected_
bool connected_
Definition:
ros_source.h:81
swri_profiler_tools::RosSourceBackend
Definition:
ros_source_backend.h:41
swri_profiler_tools::RosSource::db_
ProfileDatabase * db_
Definition:
ros_source.h:73
swri_profiler_tools::RosSource::backend_
RosSourceBackend * backend_
Definition:
ros_source.h:76
swri_profiler_tools::RosSource::connected
void connected(bool connected, QString uri)
swri_profiler_tools::RosSource::handleData
void handleData(swri_profiler_msgs::ProfileDataArray msg)
Definition:
ros_source.cpp:109
swri_profiler_tools::RosSource::profile_key_
int profile_key_
Definition:
ros_source.h:79
swri_profiler_tools::RosSource::RosSource
RosSource(ProfileDatabase *db)
Definition:
ros_source.cpp:39
profiler_msg_adapter.h
swri_profiler_tools::RosSource::start
void start()
Definition:
ros_source.cpp:59
swri_profiler_tools::RosSource::~RosSource
~RosSource()
Definition:
ros_source.cpp:48
swri_profiler_tools::RosSource::handleIndex
void handleIndex(swri_profiler_msgs::ProfileIndexArray msg)
Definition:
ros_source.cpp:104
swri_profiler_tools::RosSource::master_uri_
QString master_uri_
Definition:
ros_source.h:82
swri_profiler_tools::ProfileDatabase
Definition:
profile_database.h:42
swri_profiler_tools::RosSource::isConnected
bool isConnected() const
Definition:
ros_source.h:59
swri_profiler_tools::RosSource::masterUri
const QString & masterUri() const
Definition:
ros_source.h:60
swri_profiler_tools::ProfilerMsgAdapter
Definition:
profiler_msg_adapter.h:42
swri_profiler_tools
Definition:
database_key.h:34
swri_profiler_tools::RosSource::ros_thread_
QThread ros_thread_
Definition:
ros_source.h:75
swri_profiler_tools::RosSource
Definition:
ros_source.h:51
swri_profiler_tools::RosSource::msg_adapter_
ProfilerMsgAdapter msg_adapter_
Definition:
ros_source.h:78
swri_profiler_tools::RosSource::handleConnected
void handleConnected(bool connected, QString uri)
Definition:
ros_source.cpp:85
swri_profiler_tools
Author(s):
autogenerated on Wed Mar 2 2022 01:06:28