datastream_zmq.h
Go to the documentation of this file.
1 #pragma once
2 #include <QDialog>
3 
6 #include "ui_datastream_zmq.h"
7 #include "zmq.hpp"
8 #include <QtPlugin>
9 #include <map>
10 #include <string>
11 #include <thread>
12 
13 class StreamZMQDialog : public QDialog
14 {
15  Q_OBJECT
16 
17 public:
18  explicit StreamZMQDialog(QWidget* parent = nullptr);
20 
21  Ui::DataStreamZMQ* ui;
22 };
23 
25 {
26  Q_OBJECT
27  Q_PLUGIN_METADATA(IID "facontidavide.PlotJuggler3.DataStreamer")
28  Q_INTERFACES(PJ::DataStreamer)
29 
30 public:
31  DataStreamZMQ();
32 
33  virtual ~DataStreamZMQ() override;
34 
35  virtual bool start(QStringList*) override;
36 
37  virtual void shutdown() override;
38 
39  virtual bool isRunning() const override
40  {
41  return _running;
42  }
43 
44  virtual const char* name() const override
45  {
46  return "ZMQ Subscriber";
47  }
48 
49  virtual bool isDebugPlugin() override
50  {
51  return false;
52  }
53 
54 private:
55  bool _running;
59  std::string _socket_address;
60  std::thread _receive_thread;
61  std::vector<std::string> _topic_filters;
62  std::map<std::string, PJ::MessageParserPtr> _parsers;
64  bool _is_connect = false;
65  void receiveLoop();
66  bool parseMessage(const PJ::MessageRef& msg, double& timestamp);
67  bool parseMessage(const std::string& topic, const PJ::MessageRef& msg,
68  double& timestamp);
69  void parseTopicFilters(const QString& filters);
70  void subscribeTopics();
71  void unsubscribeTopics();
72 };
StreamZMQDialog::StreamZMQDialog
StreamZMQDialog(QWidget *parent=nullptr)
Definition: datastream_zmq.cpp:15
PJ::MessageParserPtr
std::shared_ptr< MessageParser > MessageParserPtr
Definition: messageparser_base.h:136
DataStreamZMQ
Definition: datastream_zmq.h:24
DataStreamZMQ::_parser
PJ::MessageParserPtr _parser
Definition: datastream_zmq.h:58
zmq::socket_t
Definition: zmq.hpp:2262
DataStreamZMQ::_parsers
std::map< std::string, PJ::MessageParserPtr > _parsers
Definition: datastream_zmq.h:62
DataStreamZMQ::receiveLoop
void receiveLoop()
Definition: datastream_zmq.cpp:207
DataStreamZMQ::_zmq_socket
zmq::socket_t _zmq_socket
Definition: datastream_zmq.h:57
DataStreamZMQ::_topic_filters
std::vector< std::string > _topic_filters
Definition: datastream_zmq.h:61
mqtt_test_proto.msg
msg
Definition: mqtt_test_proto.py:43
DataStreamZMQ::parseTopicFilters
void parseTopicFilters(const QString &filters)
Definition: datastream_zmq.cpp:325
DataStreamZMQ::_receive_thread
std::thread _receive_thread
Definition: datastream_zmq.h:60
DataStreamZMQ::_socket_address
std::string _socket_address
Definition: datastream_zmq.h:59
zmq.hpp
DataStreamZMQ::DataStreamZMQ
DataStreamZMQ()
Definition: datastream_zmq.cpp:32
zmq::context_t
Definition: zmq.hpp:804
PJ::DataStreamer
The DataStreamer base classm used to read streaming of data.
Definition: datastreamer_base.h:25
DataStreamZMQ::subscribeTopics
void subscribeTopics()
Definition: datastream_zmq.cpp:344
start_test_publisher.timestamp
timestamp
Definition: start_test_publisher.py:32
start_test_publisher.topic
topic
Definition: start_test_publisher.py:31
DataStreamZMQ::_zmq_context
zmq::context_t _zmq_context
Definition: datastream_zmq.h:56
DataStreamZMQ::unsubscribeTopics
void unsubscribeTopics()
Definition: datastream_zmq.cpp:354
StreamZMQDialog::~StreamZMQDialog
~StreamZMQDialog()
Definition: datastream_zmq.cpp:22
DataStreamZMQ::~DataStreamZMQ
virtual ~DataStreamZMQ() override
Definition: datastream_zmq.cpp:37
DataStreamZMQ::shutdown
virtual void shutdown() override
shutdown Stop streaming
Definition: datastream_zmq.cpp:183
DataStreamZMQ::start
virtual bool start(QStringList *) override
start streaming.
Definition: datastream_zmq.cpp:42
PJ::ParserFactoryPlugin::Ptr
std::shared_ptr< ParserFactoryPlugin > Ptr
Definition: messageparser_base.h:142
DataStreamZMQ::parseMessage
bool parseMessage(const PJ::MessageRef &msg, double &timestamp)
Definition: datastream_zmq.cpp:290
DataStreamZMQ::name
virtual const char * name() const override
Name of the plugin type, NOT the particular instance.
Definition: datastream_zmq.h:44
PJ::MessageRef
Definition: messageparser_base.h:28
DataStreamZMQ::isDebugPlugin
virtual bool isDebugPlugin() override
Definition: datastream_zmq.h:49
DataStreamZMQ::isRunning
virtual bool isRunning() const override
isRunning
Definition: datastream_zmq.h:39
DataStreamZMQ::_running
bool _running
Definition: datastream_zmq.h:55
DataStreamZMQ::_is_connect
bool _is_connect
Definition: datastream_zmq.h:64
StreamZMQDialog::ui
Ui::DataStreamZMQ * ui
Definition: datastream_zmq.h:21
DataStreamZMQ::_parser_creator
PJ::ParserFactoryPlugin::Ptr _parser_creator
Definition: datastream_zmq.h:63
datastreamer_base.h
messageparser_base.h
StreamZMQDialog
Definition: datastream_zmq.h:13


plotjuggler
Author(s): Davide Faconti
autogenerated on Mon May 26 2025 02:22:36