File indexing completed on 2024-05-12 03:49:29

0001 /*
0002     File                 : MQTT_test.h
0003     Project              : LabPlot
0004     Description          : Tests for MQTT import.
0005     --------------------------------------------------------------------
0006     SPDX-FileCopyrightText: 2018 Kovacs Ferencz <kferike98@gmail.com>
0007     SPDX-License-Identifier: GPL-2.0-or-later
0008 */
0009 
0010 #ifndef MQTT_TEST_H
0011 #define MQTT_TEST_H
0012 
0013 #include <QMainWindow>
0014 #include <QMqttClient>
0015 #include <QMqttTopicName>
0016 #include <QTimer>
0017 #include <QVector>
0018 #include <random>
0019 
0020 namespace Ui {
0021 class MainWindow;
0022 }
0023 
0024 class MainWindow : public QMainWindow {
0025     Q_OBJECT
0026 
0027 public:
0028     explicit MainWindow(QWidget* parent = 0);
0029     ~MainWindow();
0030 
0031 public Q_SLOTS:
0032     void setClientPort(int p);
0033 
0034 private Q_SLOTS:
0035     void on_buttonConnect_clicked();
0036     void on_buttonQuit_clicked();
0037     void brokerDisconnected();
0038     void on_buttonSubscribe_clicked();
0039     void onTimeout();
0040     void intervalChanged(const QString&);
0041     void onConnect();
0042 
0043 private:
0044     Ui::MainWindow* ui;
0045     QMqttClient* m_client;
0046     bool m_run;
0047     QMqttTopicName* m_brownianX;
0048     quint8 m_qos;
0049     QTimer* m_timer;
0050     unsigned int m_seed;
0051     std::default_random_engine* m_generator;
0052     std::normal_distribution<double>* m_distribution;
0053     double m_delta;
0054     double m_dt;
0055     int m_pathes;
0056     int m_iters;
0057     int m_iterCount;
0058     int m_itersTotal;
0059     int m_interval;
0060 
0061     QVector<QMqttTopicName*> m_brownianTopics;
0062     QVector<double> m_x;
0063 };
0064 
0065 #endif // MQTT_TEST_H