MqttMonitor/MqttMonitorWidget.py

Thu, 13 May 2021 18:15:49 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Thu, 13 May 2021 18:15:49 +0200
changeset 88
59323cbabb7e
parent 86
620022b14cb4
child 92
2fb5c08019fd
permissions
-rw-r--r--

Added code to install the 'paho-mqtt' library as a plug-in dependency (eric > 21.5).

1
bf1a17419d44 Added first outline of the MQTT Monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
bf1a17419d44 Added first outline of the MQTT Monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
84
044df16e55aa Updated copyright for 2021.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 82
diff changeset
3 # Copyright (c) 2018 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
3
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
4 #
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
5
1
bf1a17419d44 Added first outline of the MQTT Monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
3
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
7 Module implementing the MQTT Monitor widget.
1
bf1a17419d44 Added first outline of the MQTT Monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
bf1a17419d44 Added first outline of the MQTT Monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
bf1a17419d44 Added first outline of the MQTT Monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 import os
7
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
11 import collections
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
12 import copy
86
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 85
diff changeset
13 import contextlib
1
bf1a17419d44 Added first outline of the MQTT Monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14
50
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
15 from PyQt5.QtCore import pyqtSlot, Qt, QTimer, QFileInfo
47
185fac480ed2 MqttMonitorWidget: enhanced the log messages display by colorizing each received message depending on log level.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 46
diff changeset
16 from PyQt5.QtGui import QFont, QTextCursor, QBrush
10
7e0e921dc7ea Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
17 from PyQt5.QtWidgets import QWidget, QDialog
1
bf1a17419d44 Added first outline of the MQTT Monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18
50
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
19 from E5Gui import E5MessageBox, E5FileDialog
44
ca2e03cb6ed4 MqttMonitorWidget: added capability to read the payload data to be published from a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
20 from E5Gui.E5PathPicker import E5PathPickerModes
6
d22f5ce3a07a MqttMonitorWidget: implemented part 1 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
21
1
bf1a17419d44 Added first outline of the MQTT Monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 from .Ui_MqttMonitorWidget import Ui_MqttMonitorWidget
bf1a17419d44 Added first outline of the MQTT Monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23
78
a22328182bc2 Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 67
diff changeset
24 from .MqttClient import (
a22328182bc2 Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 67
diff changeset
25 MqttClient, mqttConnackMessage, mqttErrorMessage, mqttLogLevelString
a22328182bc2 Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 67
diff changeset
26 )
3
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
27
1
bf1a17419d44 Added first outline of the MQTT Monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 import UI.PixmapCache
5
7162c838cfc9 MqttMonitorWidget: added functionality to receive messages and show them in a text edit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
29 import Utilities
1
bf1a17419d44 Added first outline of the MQTT Monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30
bf1a17419d44 Added first outline of the MQTT Monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31
bf1a17419d44 Added first outline of the MQTT Monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 class MqttMonitorWidget(QWidget, Ui_MqttMonitorWidget):
bf1a17419d44 Added first outline of the MQTT Monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 """
3
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
34 Class implementing the MQTT Monitor widget.
1
bf1a17419d44 Added first outline of the MQTT Monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 """
6
d22f5ce3a07a MqttMonitorWidget: implemented part 1 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
36 BrokerStatusTopicPrefix = "$SYS/broker/"
d22f5ce3a07a MqttMonitorWidget: implemented part 1 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
37 BrokerStatusTopic = "$SYS/broker/#"
7
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
38 BrokerStatusTopicLoadPrefix = "$SYS/broker/load/"
6
d22f5ce3a07a MqttMonitorWidget: implemented part 1 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
39
67
a19699c0e71f Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 66
diff changeset
40 def __init__(self, plugin, iconSuffix, parent=None):
1
bf1a17419d44 Added first outline of the MQTT Monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 """
bf1a17419d44 Added first outline of the MQTT Monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 Constructor
bf1a17419d44 Added first outline of the MQTT Monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43
3
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
44 @param plugin reference to the plug-in object
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
45 @type MqttMonitorPlugin
67
a19699c0e71f Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 66
diff changeset
46 @param iconSuffix suffix for the icons
a19699c0e71f Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 66
diff changeset
47 @type str
1
bf1a17419d44 Added first outline of the MQTT Monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 @param parent reference to the parent widget
bf1a17419d44 Added first outline of the MQTT Monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 @type QWidget
bf1a17419d44 Added first outline of the MQTT Monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 """
86
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 85
diff changeset
51 super().__init__(parent)
1
bf1a17419d44 Added first outline of the MQTT Monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 self.setupUi(self)
bf1a17419d44 Added first outline of the MQTT Monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53
3
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
54 self.__plugin = plugin
67
a19699c0e71f Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 66
diff changeset
55 self.__iconSuffix = iconSuffix
3
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
56
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
57 self.__connectedToBroker = False
6
d22f5ce3a07a MqttMonitorWidget: implemented part 1 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
58 self.__brokerStatusTopicSubscribed = False
3
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
59
1
bf1a17419d44 Added first outline of the MQTT Monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 self.pixmapLabel.setPixmap(UI.PixmapCache.getPixmap(
67
a19699c0e71f Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 66
diff changeset
61 os.path.join("MqttMonitor", "icons",
a19699c0e71f Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 66
diff changeset
62 "mqtt48-{0}".format(self.__iconSuffix))
a19699c0e71f Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 66
diff changeset
63 ))
3
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
64
44
ca2e03cb6ed4 MqttMonitorWidget: added capability to read the payload data to be published from a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
65 self.publishPayloadFilePicker.setMode(E5PathPickerModes.OpenFileMode)
ca2e03cb6ed4 MqttMonitorWidget: added capability to read the payload data to be published from a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
66 self.publishPayloadFilePicker.setFilters(self.tr("All Files (*)"))
ca2e03cb6ed4 MqttMonitorWidget: added capability to read the payload data to be published from a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
67
45
696b5d1a7b97 MqttMonitorWidget: enhanced the messages display slightly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
68 self.__messagesFormat = self.messagesEdit.currentCharFormat()
696b5d1a7b97 MqttMonitorWidget: enhanced the messages display slightly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
69 self.__messagesTopicFormat = self.messagesEdit.currentCharFormat()
696b5d1a7b97 MqttMonitorWidget: enhanced the messages display slightly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
70 self.__messagesTopicFormat.setFontWeight(QFont.Bold)
696b5d1a7b97 MqttMonitorWidget: enhanced the messages display slightly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
71 self.__messagesQosFormat = self.messagesEdit.currentCharFormat()
696b5d1a7b97 MqttMonitorWidget: enhanced the messages display slightly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
72 self.__messagesQosFormat.setFontItalic(True)
696b5d1a7b97 MqttMonitorWidget: enhanced the messages display slightly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
73
52
cc8734657162 MqttClient: added search capability for the received messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 50
diff changeset
74 self.messagesSearchWidget.attachTextEdit(self.messagesEdit)
85
1ee3f393af03 Removed support for obsolete eric6 versions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
75 self.messagesSearchWidget.setWidthForHeight(False)
47
185fac480ed2 MqttMonitorWidget: enhanced the log messages display by colorizing each received message depending on log level.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 46
diff changeset
76
52
cc8734657162 MqttClient: added search capability for the received messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 50
diff changeset
77 self.__isAlternate = False
46
a777a37a91e7 MqttMonitorWidget: enhanced the message display by alternating the background color for each received message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
78
43
a0853f7a8b80 MqttClient, MqttMonitorWidget: limited amount of recently used brokers to 20 and added a log level selection to disable logging.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 41
diff changeset
79 for logLevel in (MqttClient.LogDisabled,
a0853f7a8b80 MqttClient, MqttMonitorWidget: limited amount of recently used brokers to 20 and added a log level selection to disable logging.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 41
diff changeset
80 MqttClient.LogDebug,
31
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
81 MqttClient.LogInfo,
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
82 MqttClient.LogNotice,
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
83 MqttClient.LogWarning,
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
84 MqttClient.LogError):
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
85 self.logLevelComboBox.addItem(mqttLogLevelString(
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
86 logLevel, isMqttLogLevel=False), logLevel)
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
87 self.logLevelComboBox.setCurrentIndex(
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
88 self.logLevelComboBox.count() - 1)
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
89
47
185fac480ed2 MqttMonitorWidget: enhanced the log messages display by colorizing each received message depending on log level.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 46
diff changeset
90 self.__logMessagesBackgrounds = {
185fac480ed2 MqttMonitorWidget: enhanced the log messages display by colorizing each received message depending on log level.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 46
diff changeset
91 MqttClient.LogDebug: QBrush(Qt.white),
185fac480ed2 MqttMonitorWidget: enhanced the log messages display by colorizing each received message depending on log level.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 46
diff changeset
92 MqttClient.LogInfo: QBrush(Qt.lightGray),
185fac480ed2 MqttMonitorWidget: enhanced the log messages display by colorizing each received message depending on log level.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 46
diff changeset
93 MqttClient.LogNotice: QBrush(Qt.green),
185fac480ed2 MqttMonitorWidget: enhanced the log messages display by colorizing each received message depending on log level.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 46
diff changeset
94 MqttClient.LogWarning: QBrush(Qt.yellow),
185fac480ed2 MqttMonitorWidget: enhanced the log messages display by colorizing each received message depending on log level.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 46
diff changeset
95 MqttClient.LogError: QBrush(Qt.red),
185fac480ed2 MqttMonitorWidget: enhanced the log messages display by colorizing each received message depending on log level.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 46
diff changeset
96 MqttClient.LogDisabled: QBrush(Qt.magenta)
185fac480ed2 MqttMonitorWidget: enhanced the log messages display by colorizing each received message depending on log level.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 46
diff changeset
97 # reuse LogDisabled for unknown log levels
185fac480ed2 MqttMonitorWidget: enhanced the log messages display by colorizing each received message depending on log level.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 46
diff changeset
98 }
185fac480ed2 MqttMonitorWidget: enhanced the log messages display by colorizing each received message depending on log level.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 46
diff changeset
99
53
10eb15c22d46 MqttClient: added search capability for the received log messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 52
diff changeset
100 self.logSearchWidget.attachTextEdit(self.logEdit)
85
1ee3f393af03 Removed support for obsolete eric6 versions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 84
diff changeset
101 self.logSearchWidget.setWidthForHeight(False)
53
10eb15c22d46 MqttClient: added search capability for the received log messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 52
diff changeset
102
5
7162c838cfc9 MqttMonitorWidget: added functionality to receive messages and show them in a text edit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
103 self.brokerWidget.setCurrentIndex(0)
7162c838cfc9 MqttMonitorWidget: added functionality to receive messages and show them in a text edit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
104
18
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
105 self.__connectionModeProfile = True
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
106 self.__setConnectionMode(True) # initial mode is 'profile connection'
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
107 self.__populateProfileComboBox()
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
108
3
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
109 self.connectButton.setIcon(UI.PixmapCache.getIcon("ircConnect.png"))
10
7e0e921dc7ea Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
110 self.brokerConnectionOptionsButton.setIcon(UI.PixmapCache.getIcon(
67
a19699c0e71f Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 66
diff changeset
111 os.path.join("MqttMonitor", "icons",
a19699c0e71f Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 66
diff changeset
112 "connectionOptions-{0}".format(self.__iconSuffix))
a19699c0e71f Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 66
diff changeset
113 ))
10
7e0e921dc7ea Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
114 self.__populateBrokerComboBoxes()
3
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
115 self.brokerStatusLabel.hide()
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
116
4
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
117 self.subscribeButton.setIcon(UI.PixmapCache.getIcon("plus.png"))
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
118 self.subscribeButton.setEnabled(False)
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
119 self.unsubscribeButton.setIcon(UI.PixmapCache.getIcon("minus.png"))
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
120
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
121 self.__subscribedTopics = []
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
122 self.__topicQueue = {}
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
123 self.__updateUnsubscribeTopicComboBox()
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
124
8
95b56dcfa09b MqttMonitorWidget: implemented publish functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
125 self.__publishedTopics = []
95b56dcfa09b MqttMonitorWidget: implemented publish functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
126 self.__updatePublishTopicComboBox()
95b56dcfa09b MqttMonitorWidget: implemented publish functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
127 self.publishButton.setEnabled(False)
95b56dcfa09b MqttMonitorWidget: implemented publish functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
128
10
7e0e921dc7ea Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
129 self.__connectionOptions = None
7e0e921dc7ea Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
130
7
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
131 prefix = MqttMonitorWidget.BrokerStatusTopicPrefix
6
d22f5ce3a07a MqttMonitorWidget: implemented part 1 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
132 self.__statusLabelMapping = {
7
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
133 # broker
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
134 prefix + "version": self.versionLabel,
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
135 prefix + "timestamp": self.timestampLabel,
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
136 prefix + "uptime": self.uptimeLabel,
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
137 prefix + "subscriptions/count": self.subscriptionsLabel,
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
138 # clients
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
139 prefix + "clients/connected": self.clientsConnectedLabel,
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
140 prefix + "clients/disconnected": self.clientsDisconnectedLabel,
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
141 prefix + "clients/expired": self.clientsExpiredLabel,
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
142 prefix + "clients/maximum": self.clientsMaximumLabel,
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
143 prefix + "clients/total": self.clientsTotalLabel,
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
144 # messages
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
145 prefix + "messages/sent": self.messagesSentLabel,
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
146 prefix + "messages/received": self.messagesReceivedLabel,
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
147 prefix + "messages/stored": self.messagesStoredLabel,
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
148 prefix + "store/messages/count": self.messagesStoredLabel,
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
149 prefix + "messages/inflight": self.messagesInflightLabel,
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
150 prefix + "retained messages/count": self.messagesRetainedLabel,
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
151 # publish messages
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
152 prefix + "publish/messages/sent": self.publishMessagesSentLabel,
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
153 prefix + "publish/messages/received":
6
d22f5ce3a07a MqttMonitorWidget: implemented part 1 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
154 self.publishMessagesReceivedLabel,
7
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
155 prefix + "publish/messages/dropped":
6
d22f5ce3a07a MqttMonitorWidget: implemented part 1 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
156 self.publishMessagesDroppedLabel,
7
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
157 # traffic
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
158 prefix + "bytes/sent": self.bytesSentLabel,
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
159 prefix + "bytes/received": self.bytesReceivedLabel,
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
160 # load
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
161 prefix + "load/bytes/sent": self.loadBytesSentLabel,
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
162 prefix + "load/bytes/received": self.loadBytesReceivedLabel,
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
163 prefix + "load/messages/sent": self.loadMessagesSentLabel,
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
164 prefix + "load/messages/received": self.loadMessagesReceivedLabel,
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
165 prefix + "load/publish/sent": self.loadPublishSentLabel,
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
166 prefix + "load/publish/received": self.loadPublishReceivedLabel,
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
167 prefix + "load/publish/dropped": self.loadPublishDroppedLabel,
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
168 prefix + "load/connections": self.loadConnectionsLabel,
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
169 prefix + "load/sockets": self.loadSocketsLabel,
6
d22f5ce3a07a MqttMonitorWidget: implemented part 1 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
170 }
d22f5ce3a07a MqttMonitorWidget: implemented part 1 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
171
7
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
172 self.__statusLoadValues = collections.defaultdict(
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
173 self.__loadDefaultDictFactory)
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
174
3
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
175 self.__client = MqttClient()
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
176
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
177 # connect the MQTT client signals
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
178 self.__client.onConnect.connect(self.__brokerConnected)
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
179 self.__client.onDisconnected.connect(self.__brokerDisconnected)
31
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
180 self.__client.onLog.connect(self.__clientLog)
3
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
181 self.__client.onMessage.connect(self.__messageReceived)
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
182 self.__client.onPublish.connect(self.__messagePublished)
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
183 self.__client.onSubscribe.connect(self.__topicSubscribed)
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
184 self.__client.onUnsubscribe.connect(self.__topicUnsubscribed)
31
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
185
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
186 self.__client.connectTimeout.connect(self.__connectTimeout)
3
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
187
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
188 #######################################################################
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
189 ## Slots handling MQTT related signals
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
190 #######################################################################
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
191
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
192 @pyqtSlot(dict, int)
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
193 def __brokerConnected(self, flags, rc):
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
194 """
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
195 Private slot to handle being connected to a broker.
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
196
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
197 @param flags flags set for the connection
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
198 @type dict
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
199 @param rc CONNACK result code
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
200 @type int
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
201 """
30
17ef10819773 Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 28
diff changeset
202 self.brokerStatusLabel.hide()
17ef10819773 Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 28
diff changeset
203
17ef10819773 Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 28
diff changeset
204 # TODO: add support for flags[‘session present’]
3
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
205 if rc == 0:
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
206 self.__connectedToBroker = True
10
7e0e921dc7ea Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
207 self.__connectionOptions = None
3
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
208
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
209 msg = mqttConnackMessage(rc)
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
210 self.__flashBrokerStatusLabel(msg)
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
211
30
17ef10819773 Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 28
diff changeset
212 self.connectButton.setEnabled(True)
17ef10819773 Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 28
diff changeset
213 if rc == 0:
17ef10819773 Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 28
diff changeset
214 self.__connectedToBroker = True
17ef10819773 Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 28
diff changeset
215 self.__connectionOptions = None
17ef10819773 Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 28
diff changeset
216
17ef10819773 Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 28
diff changeset
217 self.connectButton.setIcon(
17ef10819773 Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 28
diff changeset
218 UI.PixmapCache.getIcon("ircDisconnect.png"))
17ef10819773 Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 28
diff changeset
219
17ef10819773 Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 28
diff changeset
220 self.subscribeGroup.setEnabled(True)
17ef10819773 Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 28
diff changeset
221 self.unsubscribeGroup.setEnabled(True)
17ef10819773 Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 28
diff changeset
222 self.publishGroup.setEnabled(True)
17ef10819773 Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 28
diff changeset
223 self.brokerStatusButton.setEnabled(True)
17ef10819773 Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 28
diff changeset
224
17ef10819773 Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 28
diff changeset
225 self.__statusLoadValues.clear()
17ef10819773 Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 28
diff changeset
226 self.__clearBrokerStatusLabels()
17ef10819773 Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 28
diff changeset
227 self.__setBrokerStatusSubscribed(False)
17ef10819773 Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 28
diff changeset
228 else:
17ef10819773 Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 28
diff changeset
229 self.__client.stopLoop()
3
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
230
31
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
231 @pyqtSlot()
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
232 def __connectTimeout(self):
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
233 """
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
234 Private slot handling a timeout during a connection attempt.
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
235 """
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
236 self.__flashBrokerStatusLabel(self.tr("Connection timed out"))
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
237 self.__setConnectButtonState()
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
238
3
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
239 @pyqtSlot(int)
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
240 def __brokerDisconnected(self, rc):
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
241 """
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
242 Private slot to handle a disconnection from the broker.
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
243
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
244 @param rc MQTT error result code
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
245 @type int
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
246 """
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
247 self.__connectedToBroker = False
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
248
4
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
249 # ensure, the client loop is stopped
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
250 self.__client.stopLoop()
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
251
86
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 85
diff changeset
252 msg = (
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 85
diff changeset
253 mqttErrorMessage(rc)
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 85
diff changeset
254 if rc > 0 else
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 85
diff changeset
255 self.tr("Connection to Broker shut down cleanly.")
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 85
diff changeset
256 )
3
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
257 self.__flashBrokerStatusLabel(msg)
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
258
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
259 self.connectButton.setIcon(UI.PixmapCache.getIcon("ircConnect.png"))
31
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
260 self.__setConnectButtonState()
4
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
261
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
262 self.__subscribedTopics = []
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
263 self.__topicQueue = {}
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
264 self.__updateUnsubscribeTopicComboBox()
8
95b56dcfa09b MqttMonitorWidget: implemented publish functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
265 self.__updatePublishTopicComboBox()
3
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
266
4
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
267 self.subscribeGroup.setEnabled(False)
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
268 self.unsubscribeGroup.setEnabled(False)
8
95b56dcfa09b MqttMonitorWidget: implemented publish functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
269 self.publishGroup.setEnabled(False)
6
d22f5ce3a07a MqttMonitorWidget: implemented part 1 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
270 self.brokerStatusButton.setEnabled(False)
7
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
271
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
272 self.__statusLoadValues.clear()
3
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
273
31
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
274 @pyqtSlot(int, str)
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
275 def __clientLog(self, level, message):
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
276 """
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
277 Private slot to handle the receipt of a log message.
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
278
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
279 @param level log level
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
280 @type int
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
281 @param message log message
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
282 @type str
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
283 """
86
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 85
diff changeset
284 with contextlib.suppress(KeyError):
31
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
285 if MqttClient.LogLevelMap[level] < self.logLevelComboBox.itemData(
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
286 self.logLevelComboBox.currentIndex()):
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
287 return
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
288
48
41dd2bfee4e4 MqttMonitorWidget: added code to keep the scrollbar position while appending new messages or log messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 47
diff changeset
289 scrollbarValue = self.logEdit.verticalScrollBar().value()
41dd2bfee4e4 MqttMonitorWidget: added code to keep the scrollbar position while appending new messages or log messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 47
diff changeset
290
47
185fac480ed2 MqttMonitorWidget: enhanced the log messages display by colorizing each received message depending on log level.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 46
diff changeset
291 textCursor = self.logEdit.textCursor()
185fac480ed2 MqttMonitorWidget: enhanced the log messages display by colorizing each received message depending on log level.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 46
diff changeset
292 if not self.logEdit.document().isEmpty():
185fac480ed2 MqttMonitorWidget: enhanced the log messages display by colorizing each received message depending on log level.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 46
diff changeset
293 textCursor.movePosition(QTextCursor.End)
185fac480ed2 MqttMonitorWidget: enhanced the log messages display by colorizing each received message depending on log level.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 46
diff changeset
294 self.logEdit.setTextCursor(textCursor)
185fac480ed2 MqttMonitorWidget: enhanced the log messages display by colorizing each received message depending on log level.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 46
diff changeset
295 self.logEdit.insertPlainText("\n")
31
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
296
47
185fac480ed2 MqttMonitorWidget: enhanced the log messages display by colorizing each received message depending on log level.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 46
diff changeset
297 textBlockFormat = textCursor.blockFormat()
185fac480ed2 MqttMonitorWidget: enhanced the log messages display by colorizing each received message depending on log level.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 46
diff changeset
298 try:
185fac480ed2 MqttMonitorWidget: enhanced the log messages display by colorizing each received message depending on log level.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 46
diff changeset
299 textBlockFormat.setBackground(
185fac480ed2 MqttMonitorWidget: enhanced the log messages display by colorizing each received message depending on log level.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 46
diff changeset
300 self.__logMessagesBackgrounds[MqttClient.LogLevelMap[level]])
185fac480ed2 MqttMonitorWidget: enhanced the log messages display by colorizing each received message depending on log level.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 46
diff changeset
301 except KeyError:
185fac480ed2 MqttMonitorWidget: enhanced the log messages display by colorizing each received message depending on log level.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 46
diff changeset
302 textBlockFormat.setBackground(
185fac480ed2 MqttMonitorWidget: enhanced the log messages display by colorizing each received message depending on log level.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 46
diff changeset
303 self.__logMessagesBackgrounds[MqttClient.LogDisabled])
185fac480ed2 MqttMonitorWidget: enhanced the log messages display by colorizing each received message depending on log level.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 46
diff changeset
304 textCursor.setBlockFormat(textBlockFormat)
185fac480ed2 MqttMonitorWidget: enhanced the log messages display by colorizing each received message depending on log level.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 46
diff changeset
305 textCursor.movePosition(QTextCursor.End)
185fac480ed2 MqttMonitorWidget: enhanced the log messages display by colorizing each received message depending on log level.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 46
diff changeset
306 self.logEdit.setTextCursor(textCursor)
185fac480ed2 MqttMonitorWidget: enhanced the log messages display by colorizing each received message depending on log level.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 46
diff changeset
307
185fac480ed2 MqttMonitorWidget: enhanced the log messages display by colorizing each received message depending on log level.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 46
diff changeset
308 txt = self.tr("{0}: {1}").format(mqttLogLevelString(level), message)
185fac480ed2 MqttMonitorWidget: enhanced the log messages display by colorizing each received message depending on log level.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 46
diff changeset
309 self.logEdit.insertPlainText(Utilities.filterAnsiSequences(txt))
48
41dd2bfee4e4 MqttMonitorWidget: added code to keep the scrollbar position while appending new messages or log messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 47
diff changeset
310
41dd2bfee4e4 MqttMonitorWidget: added code to keep the scrollbar position while appending new messages or log messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 47
diff changeset
311 if self.followLogMessagesCheckBox.isChecked():
47
185fac480ed2 MqttMonitorWidget: enhanced the log messages display by colorizing each received message depending on log level.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 46
diff changeset
312 self.logEdit.ensureCursorVisible()
48
41dd2bfee4e4 MqttMonitorWidget: added code to keep the scrollbar position while appending new messages or log messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 47
diff changeset
313 else:
41dd2bfee4e4 MqttMonitorWidget: added code to keep the scrollbar position while appending new messages or log messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 47
diff changeset
314 self.logEdit.verticalScrollBar().setValue(scrollbarValue)
31
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
315
3
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
316 @pyqtSlot(str, bytes, int, bool)
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
317 def __messageReceived(self, topic, payload, qos, retain):
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
318 """
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
319 Private slot to handle the receipt of a message.
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
320
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
321 @param topic topic of the message
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
322 @type str
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
323 @param payload payload (i.e. data) of the message
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
324 @type bytes
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
325 @param qos quality of service indicator
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
326 @type int
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
327 @param retain flag indicating a retained message
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
328 @type bool
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
329 """
6
d22f5ce3a07a MqttMonitorWidget: implemented part 1 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
330 if topic.startswith(MqttMonitorWidget.BrokerStatusTopicPrefix):
5
7162c838cfc9 MqttMonitorWidget: added functionality to receive messages and show them in a text edit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
331 # handle broker status messages
7162c838cfc9 MqttMonitorWidget: added functionality to receive messages and show them in a text edit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
332 self.__handleBrokerStatusMessage(topic, payload)
7162c838cfc9 MqttMonitorWidget: added functionality to receive messages and show them in a text edit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
333 else:
45
696b5d1a7b97 MqttMonitorWidget: enhanced the messages display slightly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
334 self.__appendMessage(topic, payload, qos)
3
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
335
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
336 @pyqtSlot(int)
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
337 def __messagePublished(self, mid):
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
338 """
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
339 Private slot to handle a message being published.
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
340
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
341 @param mid ID of the published message
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
342 @type int
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
343 """
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
344 pass
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
345
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
346 @pyqtSlot(int, tuple)
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
347 def __topicSubscribed(self, mid, grantedQos):
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
348 """
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
349 Private slot to handle being subscribed to topics.
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
350
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
351 @param mid ID of the subscribe request
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
352 @type int
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
353 @param grantedQos tuple of granted quality of service
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
354 @type tuple of int
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
355 """
4
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
356 if mid in self.__topicQueue:
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
357 topic = self.__topicQueue.pop(mid)
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
358 self.__subscribedTopics.append(topic)
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
359 self.subscribeTopicEdit.clear()
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
360
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
361 self.__updateUnsubscribeTopicComboBox()
8
95b56dcfa09b MqttMonitorWidget: implemented publish functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
362 self.__updatePublishTopicComboBox()
3
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
363
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
364 @pyqtSlot(int)
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
365 def __topicUnsubscribed(self, mid):
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
366 """
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
367 Private slot to handle being unsubcribed from a topic.
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
368
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
369 @param mid ID of the unsubscribe request
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
370 @type int
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
371 """
4
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
372 if mid in self.__topicQueue:
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
373 topic = self.__topicQueue.pop(mid)
86
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 85
diff changeset
374 with contextlib.suppress(ValueError):
4
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
375 self.__subscribedTopics.remove(topic)
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
376 self.__updateUnsubscribeTopicComboBox()
8
95b56dcfa09b MqttMonitorWidget: implemented publish functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
377 self.__updatePublishTopicComboBox()
3
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
378
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
379 #######################################################################
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
380 ## Slots handling UI interactions
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
381 #######################################################################
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
382
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
383 @pyqtSlot()
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
384 def __flashBrokerStatusLabel(self, message):
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
385 """
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
386 Private slot to show the broker status label with some text for
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
387 5 seconds.
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
388
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
389 @param message message to be shown
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
390 @type str
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
391 """
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
392 self.brokerStatusLabel.setText(message)
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
393 self.brokerStatusLabel.show()
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
394 QTimer.singleShot(5000, self.brokerStatusLabel.hide)
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
395
18
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
396 @pyqtSlot()
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
397 def on_modeButton_clicked(self):
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
398 """
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
399 Private slot to switch between connection profiles and direct
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
400 connection mode.
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
401 """
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
402 self.__setConnectionMode(not self.__connectionModeProfile)
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
403
3
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
404 @pyqtSlot(str)
31
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
405 def on_profileComboBox_currentIndexChanged(self, profileName):
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
406 """
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
407 Private slot handling the change of the selected profile.
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
408
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
409 @param profileName name of the selected profile
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
410 @type str
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
411 """
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
412 self.__setConnectButtonState()
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
413
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
414 @pyqtSlot(str)
3
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
415 def on_brokerComboBox_editTextChanged(self, host):
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
416 """
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
417 Private slot to handling entering or selecting a broker host name.
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
418
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
419 @param host host name of the broker
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
420 @type str
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
421 """
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
422 self.__setConnectButtonState()
3
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
423
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
424 @pyqtSlot()
10
7e0e921dc7ea Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
425 def on_brokerConnectionOptionsButton_clicked(self):
7e0e921dc7ea Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
426 """
18
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
427 Private slot to show a dialog to modify connection options or a
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
428 dialog to edit connection profiles.
10
7e0e921dc7ea Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
429 """
18
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
430 if self.__connectionModeProfile:
78
a22328182bc2 Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 67
diff changeset
431 from .MqttConnectionProfilesDialog import (
18
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
432 MqttConnectionProfilesDialog
78
a22328182bc2 Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 67
diff changeset
433 )
18
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
434 dlg = MqttConnectionProfilesDialog(
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
435 self.__client, self.__plugin.getPreferences("BrokerProfiles"),
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
436 parent=self)
82
4d36daabe993 Changed calls of exec_() into exec().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 78
diff changeset
437 if dlg.exec() == QDialog.Accepted:
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
438 profilesDict = dlg.getProfiles()
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
439 self.__plugin.setPreferences("BrokerProfiles", profilesDict)
18
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
440 self.__populateProfileComboBox()
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
441 else:
78
a22328182bc2 Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 67
diff changeset
442 from .MqttConnectionOptionsDialog import (
18
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
443 MqttConnectionOptionsDialog
78
a22328182bc2 Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 67
diff changeset
444 )
18
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
445 dlg = MqttConnectionOptionsDialog(
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
446 self.__client, self.__connectionOptions, parent=self)
82
4d36daabe993 Changed calls of exec_() into exec().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 78
diff changeset
447 if dlg.exec() == QDialog.Accepted:
18
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
448 self.__connectionOptions = dlg.getConnectionOptions()
25
01d44a4decf5 MqttConnectionOptionsDialog: added support for TLS.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 21
diff changeset
449 if self.__connectionOptions["TlsEnable"]:
01d44a4decf5 MqttConnectionOptionsDialog: added support for TLS.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 21
diff changeset
450 port = self.brokerPortComboBox.currentText().strip()
01d44a4decf5 MqttConnectionOptionsDialog: added support for TLS.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 21
diff changeset
451 if port == "1883":
01d44a4decf5 MqttConnectionOptionsDialog: added support for TLS.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 21
diff changeset
452 # it is default non-encrypted port => set to TLS port
01d44a4decf5 MqttConnectionOptionsDialog: added support for TLS.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 21
diff changeset
453 self.brokerPortComboBox.setEditText("8883")
01d44a4decf5 MqttConnectionOptionsDialog: added support for TLS.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 21
diff changeset
454 else:
01d44a4decf5 MqttConnectionOptionsDialog: added support for TLS.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 21
diff changeset
455 port = self.brokerPortComboBox.currentText().strip()
01d44a4decf5 MqttConnectionOptionsDialog: added support for TLS.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 21
diff changeset
456 if port == "8883":
01d44a4decf5 MqttConnectionOptionsDialog: added support for TLS.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 21
diff changeset
457 # it is default TLS port => set to non-encrypted port
01d44a4decf5 MqttConnectionOptionsDialog: added support for TLS.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 21
diff changeset
458 self.brokerPortComboBox.setEditText("1883")
10
7e0e921dc7ea Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
459
7e0e921dc7ea Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
460 @pyqtSlot()
3
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
461 def on_connectButton_clicked(self):
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
462 """
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
463 Private slot to handle a connect or disconnect request.
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
464 """
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
465 if self.__connectedToBroker:
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
466 self.__client.disconnectFromServer()
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
467 else:
18
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
468 if self.__connectionModeProfile:
21
be4b201d9a41 MqttMonitorWidget: fixed an issue with forgotten '()'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
469 self.__profileConnectToBroker()
18
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
470 else:
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
471 self.__directConnectToBroker()
4
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
472
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
473 @pyqtSlot(str)
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
474 def on_subscribeTopicEdit_textChanged(self, topic):
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
475 """
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
476 Private slot to handle a change of the entered topic.
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
477
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
478 @param topic entered topic text
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
479 @type str
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
480 """
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
481 self.subscribeButton.setEnabled(bool(topic))
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
482
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
483 @pyqtSlot()
27
aeb276d76ec7 MqttMonitorWidget: improved handling of the Publish and Subscribe sections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
484 def on_subscribeTopicEdit_returnPressed(self):
aeb276d76ec7 MqttMonitorWidget: improved handling of the Publish and Subscribe sections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
485 """
aeb276d76ec7 MqttMonitorWidget: improved handling of the Publish and Subscribe sections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
486 Private slot handling the user pressing the return button to subscribe
aeb276d76ec7 MqttMonitorWidget: improved handling of the Publish and Subscribe sections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
487 a topic.
aeb276d76ec7 MqttMonitorWidget: improved handling of the Publish and Subscribe sections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
488 """
aeb276d76ec7 MqttMonitorWidget: improved handling of the Publish and Subscribe sections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
489 self.on_subscribeButton_clicked()
aeb276d76ec7 MqttMonitorWidget: improved handling of the Publish and Subscribe sections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
490
aeb276d76ec7 MqttMonitorWidget: improved handling of the Publish and Subscribe sections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
491 @pyqtSlot()
4
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
492 def on_subscribeButton_clicked(self):
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
493 """
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
494 Private slot to subscribe to the entered topic.
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
495 """
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
496 topic = self.subscribeTopicEdit.text()
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
497 qos = self.subscribeQosSpinBox.value()
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
498 if topic:
6
d22f5ce3a07a MqttMonitorWidget: implemented part 1 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
499 if topic.startswith(MqttMonitorWidget.BrokerStatusTopicPrefix):
d22f5ce3a07a MqttMonitorWidget: implemented part 1 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
500 E5MessageBox.warning(
d22f5ce3a07a MqttMonitorWidget: implemented part 1 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
501 self,
d22f5ce3a07a MqttMonitorWidget: implemented part 1 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
502 self.tr("Subscribe to Topic"),
d22f5ce3a07a MqttMonitorWidget: implemented part 1 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
503 self.tr("Subscriptions to the Status topic '$SYS' shall"
7
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
504 " be done on the 'Status' tab."))
6
d22f5ce3a07a MqttMonitorWidget: implemented part 1 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
505 else:
d22f5ce3a07a MqttMonitorWidget: implemented part 1 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
506 self.__topicQueue[
d22f5ce3a07a MqttMonitorWidget: implemented part 1 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
507 self.__client.subscribe(topic, qos)[1]] = topic
4
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
508
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
509 @pyqtSlot(str)
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
510 def on_unsubscribeTopicComboBox_currentIndexChanged(self, topic):
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
511 """
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
512 Private slot to handle the selection of a topic to unsubscribe from.
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
513
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
514 @param topic topic text
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
515 @type str
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
516 """
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
517 self.unsubscribeButton.setEnabled(bool(topic))
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
518
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
519 @pyqtSlot()
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
520 def on_unsubscribeButton_clicked(self):
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
521 """
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
522 Private slot to unsubscribe from the selected topic.
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
523 """
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
524 topic = self.unsubscribeTopicComboBox.currentText()
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
525 if topic:
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
526 self.__topicQueue[
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
527 self.__client.unsubscribe(topic)[1]] = topic
3
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
528
8
95b56dcfa09b MqttMonitorWidget: implemented publish functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
529 @pyqtSlot(str)
95b56dcfa09b MqttMonitorWidget: implemented publish functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
530 def on_publishTopicComboBox_editTextChanged(self, topic):
95b56dcfa09b MqttMonitorWidget: implemented publish functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
531 """
95b56dcfa09b MqttMonitorWidget: implemented publish functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
532 Private slot to handle changes of the publish topic name.
95b56dcfa09b MqttMonitorWidget: implemented publish functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
533
95b56dcfa09b MqttMonitorWidget: implemented publish functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
534 @param topic topic text
95b56dcfa09b MqttMonitorWidget: implemented publish functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
535 @type str
95b56dcfa09b MqttMonitorWidget: implemented publish functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
536 """
95b56dcfa09b MqttMonitorWidget: implemented publish functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
537 self.publishButton.setEnabled(bool(topic))
95b56dcfa09b MqttMonitorWidget: implemented publish functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
538
95b56dcfa09b MqttMonitorWidget: implemented publish functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
539 @pyqtSlot()
95b56dcfa09b MqttMonitorWidget: implemented publish functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
540 def on_publishButton_clicked(self):
95b56dcfa09b MqttMonitorWidget: implemented publish functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
541 """
95b56dcfa09b MqttMonitorWidget: implemented publish functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
542 Private slot to publish the entered message.
95b56dcfa09b MqttMonitorWidget: implemented publish functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
543 """
95b56dcfa09b MqttMonitorWidget: implemented publish functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
544 topic = self.publishTopicComboBox.currentText()
95b56dcfa09b MqttMonitorWidget: implemented publish functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
545 qos = self.publishQosSpinBox.value()
95b56dcfa09b MqttMonitorWidget: implemented publish functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
546 retain = self.publishRetainCheckBox.isChecked()
44
ca2e03cb6ed4 MqttMonitorWidget: added capability to read the payload data to be published from a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
547 payloadFile = self.publishPayloadFilePicker.text()
78
a22328182bc2 Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 67
diff changeset
548 if (
a22328182bc2 Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 67
diff changeset
549 bool(payloadFile) and
a22328182bc2 Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 67
diff changeset
550 os.path.exists(payloadFile) and
a22328182bc2 Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 67
diff changeset
551 os.path.getsize(payloadFile) <= 268435455
a22328182bc2 Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 67
diff changeset
552 ):
44
ca2e03cb6ed4 MqttMonitorWidget: added capability to read the payload data to be published from a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
553 # payload size limit is 268,435,455 bytes
ca2e03cb6ed4 MqttMonitorWidget: added capability to read the payload data to be published from a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
554 try:
82
4d36daabe993 Changed calls of exec_() into exec().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 78
diff changeset
555 with open(payloadFile, "rb") as f:
4d36daabe993 Changed calls of exec_() into exec().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 78
diff changeset
556 payloadStr = f.read()
50
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
557 except EnvironmentError as err:
44
ca2e03cb6ed4 MqttMonitorWidget: added capability to read the payload data to be published from a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
558 E5MessageBox.critical(
ca2e03cb6ed4 MqttMonitorWidget: added capability to read the payload data to be published from a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
559 self,
ca2e03cb6ed4 MqttMonitorWidget: added capability to read the payload data to be published from a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
560 self.tr("Read Payload from File"),
ca2e03cb6ed4 MqttMonitorWidget: added capability to read the payload data to be published from a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
561 self.tr("""<p>The file <b>{0}</b> could not be read."""
ca2e03cb6ed4 MqttMonitorWidget: added capability to read the payload data to be published from a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
562 """ Aborting...</p><p>Reason: {1}</p>""").format(
ca2e03cb6ed4 MqttMonitorWidget: added capability to read the payload data to be published from a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
563 payloadFile, str(err)))
ca2e03cb6ed4 MqttMonitorWidget: added capability to read the payload data to be published from a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
564 return
ca2e03cb6ed4 MqttMonitorWidget: added capability to read the payload data to be published from a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
565 else:
ca2e03cb6ed4 MqttMonitorWidget: added capability to read the payload data to be published from a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
566 payloadStr = self.publishPayloadEdit.toPlainText()
ca2e03cb6ed4 MqttMonitorWidget: added capability to read the payload data to be published from a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
567 if not payloadStr:
ca2e03cb6ed4 MqttMonitorWidget: added capability to read the payload data to be published from a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
568 # use empty string together with the retain flag to clean
ca2e03cb6ed4 MqttMonitorWidget: added capability to read the payload data to be published from a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
569 # a retained message by sending None instead
ca2e03cb6ed4 MqttMonitorWidget: added capability to read the payload data to be published from a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
570 payloadStr = None
8
95b56dcfa09b MqttMonitorWidget: implemented publish functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
571
95b56dcfa09b MqttMonitorWidget: implemented publish functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
572 msgInfo = self.__client.publish(topic, payloadStr, qos, retain)
95b56dcfa09b MqttMonitorWidget: implemented publish functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
573 if msgInfo.rc == 0:
95b56dcfa09b MqttMonitorWidget: implemented publish functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
574 if topic not in self.__publishedTopics:
95b56dcfa09b MqttMonitorWidget: implemented publish functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
575 self.__publishedTopics.append(topic)
27
aeb276d76ec7 MqttMonitorWidget: improved handling of the Publish and Subscribe sections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
576 self.__updatePublishTopicComboBox(resetTopic=False)
aeb276d76ec7 MqttMonitorWidget: improved handling of the Publish and Subscribe sections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
577 if self.clearPublishCheckBox.isChecked():
aeb276d76ec7 MqttMonitorWidget: improved handling of the Publish and Subscribe sections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
578 self.on_publishClearButton_clicked()
8
95b56dcfa09b MqttMonitorWidget: implemented publish functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
579
6
d22f5ce3a07a MqttMonitorWidget: implemented part 1 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
580 @pyqtSlot()
11
90d3ebed4cc0 Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
581 def on_publishClearButton_clicked(self):
90d3ebed4cc0 Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
582 """
90d3ebed4cc0 Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
583 Private slot to clear the publish data fields.
90d3ebed4cc0 Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
584 """
90d3ebed4cc0 Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
585 self.publishTopicComboBox.clearEditText()
90d3ebed4cc0 Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
586 self.publishPayloadEdit.clear()
90d3ebed4cc0 Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
587 self.publishQosSpinBox.setValue(0)
90d3ebed4cc0 Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
588 self.publishRetainCheckBox.setChecked(False)
44
ca2e03cb6ed4 MqttMonitorWidget: added capability to read the payload data to be published from a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
589 self.publishPayloadFilePicker.clear()
ca2e03cb6ed4 MqttMonitorWidget: added capability to read the payload data to be published from a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
590
ca2e03cb6ed4 MqttMonitorWidget: added capability to read the payload data to be published from a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
591 @pyqtSlot(str)
ca2e03cb6ed4 MqttMonitorWidget: added capability to read the payload data to be published from a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
592 def on_publishPayloadFilePicker_textChanged(self, path):
ca2e03cb6ed4 MqttMonitorWidget: added capability to read the payload data to be published from a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
593 """
ca2e03cb6ed4 MqttMonitorWidget: added capability to read the payload data to be published from a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
594 Private slot handling a change of path of the payload file.
ca2e03cb6ed4 MqttMonitorWidget: added capability to read the payload data to be published from a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
595
ca2e03cb6ed4 MqttMonitorWidget: added capability to read the payload data to be published from a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
596 @param path path of the payload file
ca2e03cb6ed4 MqttMonitorWidget: added capability to read the payload data to be published from a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
597 @type str
ca2e03cb6ed4 MqttMonitorWidget: added capability to read the payload data to be published from a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
598 """
ca2e03cb6ed4 MqttMonitorWidget: added capability to read the payload data to be published from a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
599 self.publishPayloadEdit.setEnabled(not bool(path))
11
90d3ebed4cc0 Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
600
90d3ebed4cc0 Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
601 @pyqtSlot()
6
d22f5ce3a07a MqttMonitorWidget: implemented part 1 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
602 def on_brokerStatusButton_clicked(self):
d22f5ce3a07a MqttMonitorWidget: implemented part 1 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
603 """
d22f5ce3a07a MqttMonitorWidget: implemented part 1 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
604 Private slot to subscribe or unsubscribe the broker status topic.
d22f5ce3a07a MqttMonitorWidget: implemented part 1 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
605 """
d22f5ce3a07a MqttMonitorWidget: implemented part 1 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
606 if self.__brokerStatusTopicSubscribed:
d22f5ce3a07a MqttMonitorWidget: implemented part 1 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
607 # unsubscribe status topic
d22f5ce3a07a MqttMonitorWidget: implemented part 1 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
608 rc, _ = self.__client.unsubscribe(
d22f5ce3a07a MqttMonitorWidget: implemented part 1 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
609 MqttMonitorWidget.BrokerStatusTopic)
d22f5ce3a07a MqttMonitorWidget: implemented part 1 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
610 if rc == 0:
d22f5ce3a07a MqttMonitorWidget: implemented part 1 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
611 # successfully sent
11
90d3ebed4cc0 Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
612 self.__setBrokerStatusSubscribed(False)
6
d22f5ce3a07a MqttMonitorWidget: implemented part 1 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
613 else:
d22f5ce3a07a MqttMonitorWidget: implemented part 1 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
614 # subscribe status topic
d22f5ce3a07a MqttMonitorWidget: implemented part 1 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
615 rc, _ = self.__client.subscribe(
d22f5ce3a07a MqttMonitorWidget: implemented part 1 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
616 MqttMonitorWidget.BrokerStatusTopic)
d22f5ce3a07a MqttMonitorWidget: implemented part 1 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
617 if rc == 0:
d22f5ce3a07a MqttMonitorWidget: implemented part 1 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
618 # successfully sent
11
90d3ebed4cc0 Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
619 self.__setBrokerStatusSubscribed(True)
90d3ebed4cc0 Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
620
50
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
621 @pyqtSlot(int)
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
622 def on_messagesEdit_blockCountChanged(self, newBlockCount):
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
623 """
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
624 Private slot handling changes of received messages.
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
625
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
626 @param newBlockCount (ignored)
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
627 @type int
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
628 """
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
629 enable = not self.messagesEdit.document().isEmpty()
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
630 self.saveMessagesButton.setEnabled(enable)
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
631 self.clearMessagesButton.setEnabled(enable)
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
632
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
633 @pyqtSlot()
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
634 def on_saveMessagesButton_clicked(self):
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
635 """
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
636 Private slot to save the received messages.
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
637 """
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
638 fn, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
639 self,
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
640 self.tr("Save Messages"),
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
641 "",
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
642 self.tr("Messages Files (*.txt);;All Files (*)"),
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
643 "",
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
644 E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
645
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
646 if fn:
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
647 if fn.endswith("."):
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
648 fn = fn[:-1]
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
649
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
650 ext = QFileInfo(fn).suffix()
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
651 if not ext:
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
652 ex = selectedFilter.split("(*")[1].split(")")[0]
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
653 if ex:
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
654 fn += ex
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
655 if QFileInfo(fn).exists():
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
656 res = E5MessageBox.yesNo(
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
657 self,
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
658 self.tr("Save Messages"),
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
659 self.tr("<p>The file <b>{0}</b> already exists."
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
660 " Overwrite it?</p>").format(fn),
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
661 icon=E5MessageBox.Warning)
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
662 if not res:
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
663 return
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
664
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
665 fn = Utilities.toNativeSeparators(fn)
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
666 try:
82
4d36daabe993 Changed calls of exec_() into exec().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 78
diff changeset
667 with open(fn, "w") as f:
4d36daabe993 Changed calls of exec_() into exec().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 78
diff changeset
668 f.write(self.messagesEdit.toPlainText())
50
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
669 except EnvironmentError as err:
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
670 E5MessageBox.critical(
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
671 self,
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
672 self.tr("Save Messages"),
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
673 self.tr("""<p>The file <b>{0}</b> could not be written."""
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
674 """</p><p>Reason: {1}</p>""").format(
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
675 fn, str(err)))
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
676
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
677 @pyqtSlot(int)
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
678 def on_logEdit_blockCountChanged(self, newBlockCount):
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
679 """
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
680 Private slot handling changes of received messages.
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
681
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
682 @param newBlockCount (ignored)
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
683 @type int
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
684 """
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
685 enable = not self.logEdit.document().isEmpty()
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
686 self.saveLogMessagesButton.setEnabled(enable)
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
687 self.clearLogMessagesButton.setEnabled(enable)
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
688
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
689 @pyqtSlot()
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
690 def on_saveLogMessagesButton_clicked(self):
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
691 """
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
692 Private slot to save the log messages.
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
693 """
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
694 fn, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
695 self,
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
696 self.tr("Save Log Messages"),
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
697 "",
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
698 self.tr("Log Files (*.log);;All Files (*)"),
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
699 "",
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
700 E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
701
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
702 if fn:
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
703 if fn.endswith("."):
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
704 fn = fn[:-1]
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
705
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
706 ext = QFileInfo(fn).suffix()
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
707 if not ext:
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
708 ex = selectedFilter.split("(*")[1].split(")")[0]
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
709 if ex:
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
710 fn += ex
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
711 if QFileInfo(fn).exists():
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
712 res = E5MessageBox.yesNo(
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
713 self,
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
714 self.tr("Save Log Messages"),
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
715 self.tr("<p>The file <b>{0}</b> already exists."
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
716 " Overwrite it?</p>").format(fn),
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
717 icon=E5MessageBox.Warning)
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
718 if not res:
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
719 return
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
720
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
721 fn = Utilities.toNativeSeparators(fn)
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
722 try:
82
4d36daabe993 Changed calls of exec_() into exec().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 78
diff changeset
723 with open(fn, "w") as f:
86
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 85
diff changeset
724 f.write(self.logEdit.toPlainText())
50
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
725 except EnvironmentError as err:
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
726 E5MessageBox.critical(
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
727 self,
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
728 self.tr("Save Log Messages"),
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
729 self.tr("""<p>The file <b>{0}</b> could not be written."""
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
730 """</p><p>Reason: {1}</p>""").format(
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
731 fn, str(err)))
8e9e83221c15 MqttMonitorWidget: added capability to save the received messages and log messages to a file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
732
45
696b5d1a7b97 MqttMonitorWidget: enhanced the messages display slightly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
733 #######################################################################
696b5d1a7b97 MqttMonitorWidget: enhanced the messages display slightly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
734 ## Utility methods
696b5d1a7b97 MqttMonitorWidget: enhanced the messages display slightly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
735 #######################################################################
696b5d1a7b97 MqttMonitorWidget: enhanced the messages display slightly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
736
11
90d3ebed4cc0 Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
737 def __setBrokerStatusSubscribed(self, subscribed):
90d3ebed4cc0 Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
738 """
90d3ebed4cc0 Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
739 Private method to set the subscription status for the broker status
90d3ebed4cc0 Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
740 topics.
90d3ebed4cc0 Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
741
90d3ebed4cc0 Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
742 @param subscribed subscription status for the broker status topics
90d3ebed4cc0 Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
743 @type bool
90d3ebed4cc0 Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
744 """
90d3ebed4cc0 Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
745 self.__brokerStatusTopicSubscribed = subscribed
90d3ebed4cc0 Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
746 if subscribed:
90d3ebed4cc0 Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
747 self.brokerStatusButton.setText(self.tr("Unsubscribe"))
90d3ebed4cc0 Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
748 self.brokerStatusButton.setToolTip(
90d3ebed4cc0 Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
749 self.tr("Press to deactivate the status display"))
90d3ebed4cc0 Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
750 else:
90d3ebed4cc0 Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
751 self.brokerStatusButton.setText(self.tr("Subscribe"))
90d3ebed4cc0 Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
752 self.brokerStatusButton.setToolTip(
90d3ebed4cc0 Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
753 self.tr("Press to activate the status display"))
6
d22f5ce3a07a MqttMonitorWidget: implemented part 1 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
754
10
7e0e921dc7ea Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
755 def __addBrokerToRecent(self, host, port):
3
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
756 """
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
757 Private method to add a host name to the list of recently connected
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
758 brokers.
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
759
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
760 @param host host name of broker
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
761 @type str
10
7e0e921dc7ea Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
762 @param port port number of the connection
7e0e921dc7ea Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
763 @type int
3
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
764 """
10
7e0e921dc7ea Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
765 brokerList = self.__plugin.getPreferences("RecentBrokersWithPort")
7e0e921dc7ea Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
766 hostAndPort = [host, port]
7e0e921dc7ea Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
767 if hostAndPort in brokerList:
7e0e921dc7ea Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
768 brokerList.remove(hostAndPort)
7e0e921dc7ea Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
769 brokerList.insert(0, hostAndPort)
43
a0853f7a8b80 MqttClient, MqttMonitorWidget: limited amount of recently used brokers to 20 and added a log level selection to disable logging.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 41
diff changeset
770 # limit to most recently used 20 entries
a0853f7a8b80 MqttClient, MqttMonitorWidget: limited amount of recently used brokers to 20 and added a log level selection to disable logging.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 41
diff changeset
771 brokerList = brokerList[:20]
10
7e0e921dc7ea Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
772 self.__plugin.setPreferences("RecentBrokersWithPort", brokerList)
7e0e921dc7ea Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
773
7e0e921dc7ea Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
774 self.__populateBrokerComboBoxes()
7e0e921dc7ea Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
775
7e0e921dc7ea Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
776 def __populateBrokerComboBoxes(self):
7e0e921dc7ea Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
777 """
7e0e921dc7ea Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
778 Private method to populate the broker name and port combo boxes.
7e0e921dc7ea Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
779 """
43
a0853f7a8b80 MqttClient, MqttMonitorWidget: limited amount of recently used brokers to 20 and added a log level selection to disable logging.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 41
diff changeset
780 brokerPortList = self.__plugin.getPreferences("RecentBrokersWithPort")
3
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
781
10
7e0e921dc7ea Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
782 # step 1: clear combo boxes
3
82845c0fd550 Fixed some code style issues and implemented the broker connect/disconnect group of the MqttMonitorWidget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
783 self.brokerComboBox.clear()
10
7e0e921dc7ea Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
784 self.brokerPortComboBox.clear()
7e0e921dc7ea Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
785
7e0e921dc7ea Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
786 # step 2a: populate the broker name list
86
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 85
diff changeset
787 currentBroker = brokerPortList[0][0] if brokerPortList else ""
43
a0853f7a8b80 MqttClient, MqttMonitorWidget: limited amount of recently used brokers to 20 and added a log level selection to disable logging.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 41
diff changeset
788 brokerSet = {b[0].strip() for b in brokerPortList}
a0853f7a8b80 MqttClient, MqttMonitorWidget: limited amount of recently used brokers to 20 and added a log level selection to disable logging.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 41
diff changeset
789 self.brokerComboBox.addItems(sorted(brokerSet))
a0853f7a8b80 MqttClient, MqttMonitorWidget: limited amount of recently used brokers to 20 and added a log level selection to disable logging.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 41
diff changeset
790 index = self.brokerComboBox.findText(currentBroker)
a0853f7a8b80 MqttClient, MqttMonitorWidget: limited amount of recently used brokers to 20 and added a log level selection to disable logging.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 41
diff changeset
791 self.brokerComboBox.setCurrentIndex(index)
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
792
10
7e0e921dc7ea Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
793 # step 2b: populate the broker ports list
86
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 85
diff changeset
794 currentPort = brokerPortList[0][1] if brokerPortList else 1883
10
7e0e921dc7ea Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
795 currentPortStr = "{0:5}".format(currentPort)
43
a0853f7a8b80 MqttClient, MqttMonitorWidget: limited amount of recently used brokers to 20 and added a log level selection to disable logging.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 41
diff changeset
796 portsSet = {b[1] for b in brokerPortList}
11
90d3ebed4cc0 Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
797 portsSet.update({1883, 8883})
10
7e0e921dc7ea Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
798 self.brokerPortComboBox.addItems(
11
90d3ebed4cc0 Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
799 sorted("{0:5}".format(p) for p in portsSet))
10
7e0e921dc7ea Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
800 index = self.brokerPortComboBox.findText(currentPortStr)
7e0e921dc7ea Started to implement the connection options dialog and methods to specify these connection options connecting to the server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
801 self.brokerPortComboBox.setCurrentIndex(index)
43
a0853f7a8b80 MqttClient, MqttMonitorWidget: limited amount of recently used brokers to 20 and added a log level selection to disable logging.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 41
diff changeset
802
a0853f7a8b80 MqttClient, MqttMonitorWidget: limited amount of recently used brokers to 20 and added a log level selection to disable logging.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 41
diff changeset
803 # step 3: update the connect button state
a0853f7a8b80 MqttClient, MqttMonitorWidget: limited amount of recently used brokers to 20 and added a log level selection to disable logging.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 41
diff changeset
804 self.__setConnectButtonState()
4
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
805
18
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
806 def __populateProfileComboBox(self):
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
807 """
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
808 Private method to populate the profiles selection box.
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
809 """
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
810 profilesDict = self.__plugin.getPreferences("BrokerProfiles")
30
17ef10819773 Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 28
diff changeset
811 mostRecentProfile = self.__plugin.getPreferences("MostRecentProfile")
18
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
812
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
813 self.profileComboBox.clear()
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
814 self.profileComboBox.addItems(sorted(profilesDict.keys()))
30
17ef10819773 Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 28
diff changeset
815 if mostRecentProfile:
17ef10819773 Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 28
diff changeset
816 index = self.profileComboBox.findText(mostRecentProfile)
17ef10819773 Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 28
diff changeset
817 if index >= 0:
17ef10819773 Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 28
diff changeset
818 self.profileComboBox.setCurrentIndex(index)
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
819
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
820 self.__setConnectButtonState()
18
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
821
4
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
822 def __updateUnsubscribeTopicComboBox(self):
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
823 """
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
824 Private method to update the unsubcribe topic combo box.
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
825 """
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
826 self.unsubscribeTopicComboBox.clear()
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
827 self.unsubscribeTopicComboBox.addItems(sorted(self.__subscribedTopics))
991db89bda9c MqttMonitorWidget: added functionality to subscribe to and unsubscribe from topics.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
828 self.unsubscribeButton.setEnabled(len(self.__subscribedTopics) > 0)
5
7162c838cfc9 MqttMonitorWidget: added functionality to receive messages and show them in a text edit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
829
27
aeb276d76ec7 MqttMonitorWidget: improved handling of the Publish and Subscribe sections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
830 def __updatePublishTopicComboBox(self, resetTopic=True):
8
95b56dcfa09b MqttMonitorWidget: implemented publish functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
831 """
95b56dcfa09b MqttMonitorWidget: implemented publish functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
832 Private method to update the publish topic combo box.
27
aeb276d76ec7 MqttMonitorWidget: improved handling of the Publish and Subscribe sections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
833
aeb276d76ec7 MqttMonitorWidget: improved handling of the Publish and Subscribe sections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
834 @param resetTopic flag indicating to reset the topic
aeb276d76ec7 MqttMonitorWidget: improved handling of the Publish and Subscribe sections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
835 @type bool
8
95b56dcfa09b MqttMonitorWidget: implemented publish functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
836 """
27
aeb276d76ec7 MqttMonitorWidget: improved handling of the Publish and Subscribe sections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
837 currentTopic = self.publishTopicComboBox.currentText()
8
95b56dcfa09b MqttMonitorWidget: implemented publish functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
838 self.publishTopicComboBox.clear()
95b56dcfa09b MqttMonitorWidget: implemented publish functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
839 self.publishTopicComboBox.addItems(
27
aeb276d76ec7 MqttMonitorWidget: improved handling of the Publish and Subscribe sections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
840 list(set(self.__publishedTopics + self.__subscribedTopics)))
aeb276d76ec7 MqttMonitorWidget: improved handling of the Publish and Subscribe sections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
841 if resetTopic:
aeb276d76ec7 MqttMonitorWidget: improved handling of the Publish and Subscribe sections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
842 self.publishTopicComboBox.clearEditText()
aeb276d76ec7 MqttMonitorWidget: improved handling of the Publish and Subscribe sections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
843 else:
aeb276d76ec7 MqttMonitorWidget: improved handling of the Publish and Subscribe sections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
844 topicIndex = self.publishTopicComboBox.findText(currentTopic)
aeb276d76ec7 MqttMonitorWidget: improved handling of the Publish and Subscribe sections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
845 self.publishTopicComboBox.setCurrentIndex(topicIndex)
8
95b56dcfa09b MqttMonitorWidget: implemented publish functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
846
45
696b5d1a7b97 MqttMonitorWidget: enhanced the messages display slightly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
847 def __appendMessage(self, topic, payload, qos):
5
7162c838cfc9 MqttMonitorWidget: added functionality to receive messages and show them in a text edit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
848 """
7162c838cfc9 MqttMonitorWidget: added functionality to receive messages and show them in a text edit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
849 Private method to append a received message to the output.
7162c838cfc9 MqttMonitorWidget: added functionality to receive messages and show them in a text edit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
850
7162c838cfc9 MqttMonitorWidget: added functionality to receive messages and show them in a text edit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
851 @param topic topic of the received message
7162c838cfc9 MqttMonitorWidget: added functionality to receive messages and show them in a text edit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
852 @type str
7162c838cfc9 MqttMonitorWidget: added functionality to receive messages and show them in a text edit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
853 @param payload payload of the received message
7162c838cfc9 MqttMonitorWidget: added functionality to receive messages and show them in a text edit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
854 @type bytes
45
696b5d1a7b97 MqttMonitorWidget: enhanced the messages display slightly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
855 @param qos quality of service indicator (0, 1, 2)
696b5d1a7b97 MqttMonitorWidget: enhanced the messages display slightly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
856 @type int
5
7162c838cfc9 MqttMonitorWidget: added functionality to receive messages and show them in a text edit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
857 """
48
41dd2bfee4e4 MqttMonitorWidget: added code to keep the scrollbar position while appending new messages or log messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 47
diff changeset
858 scrollbarValue = self.messagesEdit.verticalScrollBar().value()
41dd2bfee4e4 MqttMonitorWidget: added code to keep the scrollbar position while appending new messages or log messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 47
diff changeset
859
47
185fac480ed2 MqttMonitorWidget: enhanced the log messages display by colorizing each received message depending on log level.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 46
diff changeset
860 textCursor = self.messagesEdit.textCursor()
185fac480ed2 MqttMonitorWidget: enhanced the log messages display by colorizing each received message depending on log level.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 46
diff changeset
861 if not self.messagesEdit.document().isEmpty():
185fac480ed2 MqttMonitorWidget: enhanced the log messages display by colorizing each received message depending on log level.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 46
diff changeset
862 textCursor.movePosition(QTextCursor.End)
185fac480ed2 MqttMonitorWidget: enhanced the log messages display by colorizing each received message depending on log level.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 46
diff changeset
863 self.messagesEdit.setTextCursor(textCursor)
46
a777a37a91e7 MqttMonitorWidget: enhanced the message display by alternating the background color for each received message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
864 self.messagesEdit.insertPlainText("\n")
a777a37a91e7 MqttMonitorWidget: enhanced the message display by alternating the background color for each received message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
865
a777a37a91e7 MqttMonitorWidget: enhanced the message display by alternating the background color for each received message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
866 textBlockFormat = textCursor.blockFormat()
a777a37a91e7 MqttMonitorWidget: enhanced the message display by alternating the background color for each received message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
867 if self.__isAlternate:
a777a37a91e7 MqttMonitorWidget: enhanced the message display by alternating the background color for each received message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
868 textBlockFormat.setBackground(
a777a37a91e7 MqttMonitorWidget: enhanced the message display by alternating the background color for each received message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
869 self.messagesEdit.palette().alternateBase())
a777a37a91e7 MqttMonitorWidget: enhanced the message display by alternating the background color for each received message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
870 else:
a777a37a91e7 MqttMonitorWidget: enhanced the message display by alternating the background color for each received message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
871 textBlockFormat.setBackground(
a777a37a91e7 MqttMonitorWidget: enhanced the message display by alternating the background color for each received message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
872 self.messagesEdit.palette().base())
a777a37a91e7 MqttMonitorWidget: enhanced the message display by alternating the background color for each received message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
873 textCursor.setBlockFormat(textBlockFormat)
47
185fac480ed2 MqttMonitorWidget: enhanced the log messages display by colorizing each received message depending on log level.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 46
diff changeset
874 textCursor.movePosition(QTextCursor.End)
46
a777a37a91e7 MqttMonitorWidget: enhanced the message display by alternating the background color for each received message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
875 self.messagesEdit.setTextCursor(textCursor)
a777a37a91e7 MqttMonitorWidget: enhanced the message display by alternating the background color for each received message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
876
45
696b5d1a7b97 MqttMonitorWidget: enhanced the messages display slightly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
877 self.messagesEdit.setCurrentCharFormat(self.__messagesTopicFormat)
46
a777a37a91e7 MqttMonitorWidget: enhanced the message display by alternating the background color for each received message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
878 self.messagesEdit.insertPlainText(topic + "\n")
47
185fac480ed2 MqttMonitorWidget: enhanced the log messages display by colorizing each received message depending on log level.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 46
diff changeset
879
46
a777a37a91e7 MqttMonitorWidget: enhanced the message display by alternating the background color for each received message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
880 self.messagesEdit.setCurrentCharFormat(self.__messagesQosFormat)
a777a37a91e7 MqttMonitorWidget: enhanced the message display by alternating the background color for each received message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
881 self.messagesEdit.insertPlainText(self.tr("QoS: {0}\n").format(qos))
47
185fac480ed2 MqttMonitorWidget: enhanced the log messages display by colorizing each received message depending on log level.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 46
diff changeset
882
185fac480ed2 MqttMonitorWidget: enhanced the log messages display by colorizing each received message depending on log level.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 46
diff changeset
883 payloadStr = str(payload, encoding="utf-8", errors="replace")
45
696b5d1a7b97 MqttMonitorWidget: enhanced the messages display slightly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
884 self.messagesEdit.setCurrentCharFormat(self.__messagesFormat)
46
a777a37a91e7 MqttMonitorWidget: enhanced the message display by alternating the background color for each received message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
885 self.messagesEdit.insertPlainText(
45
696b5d1a7b97 MqttMonitorWidget: enhanced the messages display slightly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
886 Utilities.filterAnsiSequences(payloadStr))
47
185fac480ed2 MqttMonitorWidget: enhanced the log messages display by colorizing each received message depending on log level.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 46
diff changeset
887
48
41dd2bfee4e4 MqttMonitorWidget: added code to keep the scrollbar position while appending new messages or log messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 47
diff changeset
888 if self.followMessagesCheckBox.isChecked():
47
185fac480ed2 MqttMonitorWidget: enhanced the log messages display by colorizing each received message depending on log level.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 46
diff changeset
889 self.messagesEdit.ensureCursorVisible()
48
41dd2bfee4e4 MqttMonitorWidget: added code to keep the scrollbar position while appending new messages or log messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 47
diff changeset
890 else:
41dd2bfee4e4 MqttMonitorWidget: added code to keep the scrollbar position while appending new messages or log messages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 47
diff changeset
891 self.messagesEdit.verticalScrollBar().setValue(scrollbarValue)
46
a777a37a91e7 MqttMonitorWidget: enhanced the message display by alternating the background color for each received message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
892
a777a37a91e7 MqttMonitorWidget: enhanced the message display by alternating the background color for each received message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 45
diff changeset
893 self.__isAlternate = not self.__isAlternate
5
7162c838cfc9 MqttMonitorWidget: added functionality to receive messages and show them in a text edit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
894
7162c838cfc9 MqttMonitorWidget: added functionality to receive messages and show them in a text edit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
895 def __handleBrokerStatusMessage(self, topic, payload):
7162c838cfc9 MqttMonitorWidget: added functionality to receive messages and show them in a text edit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
896 """
7162c838cfc9 MqttMonitorWidget: added functionality to receive messages and show them in a text edit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
897 Private method to append a received message to the output.
7162c838cfc9 MqttMonitorWidget: added functionality to receive messages and show them in a text edit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
898
7162c838cfc9 MqttMonitorWidget: added functionality to receive messages and show them in a text edit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
899 @param topic topic of the received message
7162c838cfc9 MqttMonitorWidget: added functionality to receive messages and show them in a text edit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
900 @type str
7162c838cfc9 MqttMonitorWidget: added functionality to receive messages and show them in a text edit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
901 @param payload payload of the received message
7162c838cfc9 MqttMonitorWidget: added functionality to receive messages and show them in a text edit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
902 @type bytes
7162c838cfc9 MqttMonitorWidget: added functionality to receive messages and show them in a text edit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
903 """
6
d22f5ce3a07a MqttMonitorWidget: implemented part 1 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
904 payloadStr = str(payload, encoding="utf-8", errors="replace").strip()
7
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
905 topic = topic.strip()
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
906
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
907 if topic.startswith(MqttMonitorWidget.BrokerStatusTopicLoadPrefix):
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
908 self.__handleBrokerLoadStatusMessage(topic, payloadStr)
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
909 else:
86
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 85
diff changeset
910 with contextlib.suppress(KeyError):
7
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
911 label = self.__statusLabelMapping[topic]
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
912 label.setText(payloadStr)
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
913
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
914 def __handleBrokerLoadStatusMessage(self, topic, payloadStr):
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
915 """
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
916 Private method to append a received message to the output.
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
917
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
918 @param topic topic of the received message
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
919 @type str
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
920 @param payloadStr string representation of the payload of the
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
921 received message
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
922 @type str
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
923 """
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
924 subtopic, topicElement = topic.rsplit("/", 1)
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
925 self.__statusLoadValues[subtopic][topicElement] = payloadStr
6
d22f5ce3a07a MqttMonitorWidget: implemented part 1 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
926
86
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 85
diff changeset
927 with contextlib.suppress(KeyError):
7
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
928 label = self.__statusLabelMapping[subtopic]
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
929 label.setText("{0} / {1} / {2}".format(
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
930 self.__statusLoadValues[subtopic]["1min"],
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
931 self.__statusLoadValues[subtopic]["5min"],
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
932 self.__statusLoadValues[subtopic]["15min"],
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
933 ))
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
934
11
90d3ebed4cc0 Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
935 def __clearBrokerStatusLabels(self):
90d3ebed4cc0 Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
936 """
90d3ebed4cc0 Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
937 Private method to clear the broker status labels.
90d3ebed4cc0 Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
938 """
90d3ebed4cc0 Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
939 for statusLabelKey in self.__statusLabelMapping:
86
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 85
diff changeset
940 label = (
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 85
diff changeset
941 "- / - / -"
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 85
diff changeset
942 if statusLabelKey.startswith(
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 85
diff changeset
943 MqttMonitorWidget.BrokerStatusTopicLoadPrefix) else
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 85
diff changeset
944 "-"
620022b14cb4 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 85
diff changeset
945 )
11
90d3ebed4cc0 Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
946 self.__statusLabelMapping[statusLabelKey].setText(label)
90d3ebed4cc0 Finished implementing the connection options dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
947
7
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
948 def __loadDefaultDictFactory(self):
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
949 """
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
950 Private method to populate non-existing load items.
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
951
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
952 @return default dictionary entry
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
953 @rtype dict
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
954 """
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
955 return {
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
956 "1min": "-",
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
957 "5min": "-",
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
958 "15min": "-",
63e046d95702 MqttMonitorWidget: implemented part 2 of the status tab.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
959 }
18
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
960
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
961 def __setConnectionMode(self, profileMode):
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
962 """
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
963 Private method to set the connection mode.
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
964
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
965 @param profileMode flag indicating the profile connection mode
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
966 @type bool
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
967 """
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
968 self.__connectionModeProfile = profileMode
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
969 if profileMode:
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
970 self.modeButton.setIcon(UI.PixmapCache.getIcon(
67
a19699c0e71f Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 66
diff changeset
971 os.path.join("MqttMonitor", "icons",
a19699c0e71f Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 66
diff changeset
972 "profiles-{0}".format(self.__iconSuffix))
a19699c0e71f Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 66
diff changeset
973 ))
18
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
974 else:
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
975 self.modeButton.setIcon(UI.PixmapCache.getIcon(
67
a19699c0e71f Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 66
diff changeset
976 os.path.join("MqttMonitor", "icons",
a19699c0e71f Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 66
diff changeset
977 "quickopen-{0}".format(self.__iconSuffix))
a19699c0e71f Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 66
diff changeset
978 ))
18
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
979
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
980 self.profileComboBox.setVisible(profileMode)
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
981 self.brokerConnectionWidget.setVisible(not profileMode)
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
982 self.__setConnectButtonState()
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
983
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
984 def __setConnectButtonState(self):
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
985 """
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
986 Private method to set the enabled state of the connect button.
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
987 """
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
988 if self.__connectionModeProfile:
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
989 self.connectButton.setEnabled(
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
990 bool(self.profileComboBox.currentText()))
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
991 else:
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
992 self.connectButton.setEnabled(
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
993 bool(self.brokerComboBox.currentText()))
18
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
994
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
995 def __directConnectToBroker(self):
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
996 """
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
997 Private method to connect to the broker with entered data.
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
998 """
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
999 host = self.brokerComboBox.currentText()
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1000 port = self.brokerPortComboBox.currentText().strip()
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1001 try:
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1002 port = int(port)
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1003 except ValueError:
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1004 # use standard port at 1883
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1005 port = 1883
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1006 if host:
30
17ef10819773 Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 28
diff changeset
1007 self.brokerStatusLabel.setText(
17ef10819773 Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 28
diff changeset
1008 self.tr("Connecting to {0}:{1} ...").format(
31
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
1009 host, port))
30
17ef10819773 Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 28
diff changeset
1010 self.brokerStatusLabel.show()
17ef10819773 Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 28
diff changeset
1011
18
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1012 self.__addBrokerToRecent(host, port)
30
17ef10819773 Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 28
diff changeset
1013 self.connectButton.setEnabled(False)
18
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1014 if self.__connectionOptions is None:
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1015 self.__client.connectToServer(host, port=port)
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1016 else:
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1017 self.__client.connectToServerWithOptions(
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1018 host, port=port, options=self.__connectionOptions)
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1019
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1020 def __profileConnectToBroker(self):
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1021 """
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1022 Private method to connect to the broker with selected profile.
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1023 """
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1024 profileName = self.profileComboBox.currentText()
bbfe5866b6aa MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1025 if profileName:
30
17ef10819773 Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 28
diff changeset
1026 self.__plugin.setPreferences("MostRecentProfile", profileName)
17ef10819773 Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 28
diff changeset
1027
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
1028 profilesDict = self.__plugin.getPreferences("BrokerProfiles")
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
1029 profile = copy.copy(profilesDict[profileName]) # play it save
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
1030 host = profile["BrokerAddress"]
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
1031 port = profile["BrokerPort"]
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
1032
30
17ef10819773 Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 28
diff changeset
1033 self.brokerStatusLabel.setText(
17ef10819773 Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 28
diff changeset
1034 self.tr("Connecting to {0}:{1} ...").format(
31
40582e448c4b Added a connect timeout function with a settable timeout value.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 30
diff changeset
1035 host, port))
30
17ef10819773 Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 28
diff changeset
1036 self.brokerStatusLabel.show()
17ef10819773 Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 28
diff changeset
1037
17ef10819773 Some smaller improvements and added some TODOs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 28
diff changeset
1038 self.connectButton.setEnabled(False)
19
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
1039 self.__client.connectToServerWithOptions(host, port=port,
889a7c3c0e63 MqttConnectionProfilesDialog: continued implementing the connections profile dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
1040 options=profile)

eric ide

mercurial