Renamed version of revpipycontrol written with Qt framework

This commit is contained in:
2020-08-24 18:14:42 +02:00
parent b76dee8ee4
commit 0f22a2812b
73 changed files with 13002 additions and 0 deletions

160
include/ui/aclmanager_ui.py Normal file
View File

@@ -0,0 +1,160 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'aclmanager.ui'
#
# Created by: PyQt5 UI code generator 5.10.1
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_diag_aclmanager(object):
def setupUi(self, diag_aclmanager):
diag_aclmanager.setObjectName("diag_aclmanager")
diag_aclmanager.resize(454, 572)
self.verticalLayout = QtWidgets.QVBoxLayout(diag_aclmanager)
self.verticalLayout.setObjectName("verticalLayout")
self.gb_acls = QtWidgets.QGroupBox(diag_aclmanager)
self.gb_acls.setObjectName("gb_acls")
self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.gb_acls)
self.verticalLayout_2.setObjectName("verticalLayout_2")
self.tb_acls = QtWidgets.QTableWidget(self.gb_acls)
self.tb_acls.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers)
self.tb_acls.setTabKeyNavigation(False)
self.tb_acls.setSelectionMode(QtWidgets.QAbstractItemView.ExtendedSelection)
self.tb_acls.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows)
self.tb_acls.setWordWrap(False)
self.tb_acls.setCornerButtonEnabled(False)
self.tb_acls.setObjectName("tb_acls")
self.tb_acls.setColumnCount(2)
self.tb_acls.setRowCount(0)
item = QtWidgets.QTableWidgetItem()
self.tb_acls.setHorizontalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.tb_acls.setHorizontalHeaderItem(1, item)
self.tb_acls.horizontalHeader().setHighlightSections(False)
self.tb_acls.horizontalHeader().setStretchLastSection(True)
self.tb_acls.verticalHeader().setVisible(False)
self.verticalLayout_2.addWidget(self.tb_acls)
self.hl_acls = QtWidgets.QHBoxLayout()
self.hl_acls.setObjectName("hl_acls")
self.btn_edit = QtWidgets.QPushButton(self.gb_acls)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.btn_edit.sizePolicy().hasHeightForWidth())
self.btn_edit.setSizePolicy(sizePolicy)
self.btn_edit.setObjectName("btn_edit")
self.hl_acls.addWidget(self.btn_edit)
self.btn_remove = QtWidgets.QPushButton(self.gb_acls)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.btn_remove.sizePolicy().hasHeightForWidth())
self.btn_remove.setSizePolicy(sizePolicy)
self.btn_remove.setObjectName("btn_remove")
self.hl_acls.addWidget(self.btn_remove)
self.verticalLayout_2.addLayout(self.hl_acls)
self.verticalLayout.addWidget(self.gb_acls)
self.gb_edit = QtWidgets.QGroupBox(diag_aclmanager)
self.gb_edit.setObjectName("gb_edit")
self.gridLayout_2 = QtWidgets.QGridLayout(self.gb_edit)
self.gridLayout_2.setObjectName("gridLayout_2")
self.btn_clear = QtWidgets.QPushButton(self.gb_edit)
self.btn_clear.setObjectName("btn_clear")
self.gridLayout_2.addWidget(self.btn_clear, 1, 0, 1, 1)
self.btn_add = QtWidgets.QPushButton(self.gb_edit)
self.btn_add.setObjectName("btn_add")
self.gridLayout_2.addWidget(self.btn_add, 1, 1, 1, 1)
self.fl_edit = QtWidgets.QFormLayout()
self.fl_edit.setObjectName("fl_edit")
self.lbl_ip = QtWidgets.QLabel(self.gb_edit)
self.lbl_ip.setObjectName("lbl_ip")
self.fl_edit.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.lbl_ip)
self.lbl_level = QtWidgets.QLabel(self.gb_edit)
self.lbl_level.setObjectName("lbl_level")
self.fl_edit.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.lbl_level)
self.cbb_level = QtWidgets.QComboBox(self.gb_edit)
self.cbb_level.setObjectName("cbb_level")
self.fl_edit.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.cbb_level)
self.hl_ip = QtWidgets.QHBoxLayout()
self.hl_ip.setObjectName("hl_ip")
self.txt_ip_a = QtWidgets.QLineEdit(self.gb_edit)
self.txt_ip_a.setMaxLength(3)
self.txt_ip_a.setObjectName("txt_ip_a")
self.hl_ip.addWidget(self.txt_ip_a)
self.lbl_ip_a = QtWidgets.QLabel(self.gb_edit)
self.lbl_ip_a.setObjectName("lbl_ip_a")
self.hl_ip.addWidget(self.lbl_ip_a)
self.txt_ip_b = QtWidgets.QLineEdit(self.gb_edit)
self.txt_ip_b.setMaxLength(3)
self.txt_ip_b.setObjectName("txt_ip_b")
self.hl_ip.addWidget(self.txt_ip_b)
self.lbl_ip_b = QtWidgets.QLabel(self.gb_edit)
self.lbl_ip_b.setObjectName("lbl_ip_b")
self.hl_ip.addWidget(self.lbl_ip_b)
self.txt_ip_c = QtWidgets.QLineEdit(self.gb_edit)
self.txt_ip_c.setMaxLength(3)
self.txt_ip_c.setObjectName("txt_ip_c")
self.hl_ip.addWidget(self.txt_ip_c)
self.lbl_ip_c = QtWidgets.QLabel(self.gb_edit)
self.lbl_ip_c.setObjectName("lbl_ip_c")
self.hl_ip.addWidget(self.lbl_ip_c)
self.txt_ip_d = QtWidgets.QLineEdit(self.gb_edit)
self.txt_ip_d.setMaxLength(3)
self.txt_ip_d.setObjectName("txt_ip_d")
self.hl_ip.addWidget(self.txt_ip_d)
self.fl_edit.setLayout(0, QtWidgets.QFormLayout.FieldRole, self.hl_ip)
self.gridLayout_2.addLayout(self.fl_edit, 0, 0, 1, 2)
self.verticalLayout.addWidget(self.gb_edit)
self.lbl_level_info = QtWidgets.QLabel(diag_aclmanager)
self.lbl_level_info.setText("")
self.lbl_level_info.setObjectName("lbl_level_info")
self.verticalLayout.addWidget(self.lbl_level_info)
self.btn_box = QtWidgets.QDialogButtonBox(diag_aclmanager)
self.btn_box.setOrientation(QtCore.Qt.Horizontal)
self.btn_box.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel|QtWidgets.QDialogButtonBox.Ok)
self.btn_box.setObjectName("btn_box")
self.verticalLayout.addWidget(self.btn_box)
self.retranslateUi(diag_aclmanager)
self.btn_box.accepted.connect(diag_aclmanager.accept)
self.btn_box.rejected.connect(diag_aclmanager.reject)
QtCore.QMetaObject.connectSlotsByName(diag_aclmanager)
diag_aclmanager.setTabOrder(self.tb_acls, self.btn_edit)
diag_aclmanager.setTabOrder(self.btn_edit, self.btn_remove)
diag_aclmanager.setTabOrder(self.btn_remove, self.txt_ip_a)
diag_aclmanager.setTabOrder(self.txt_ip_a, self.txt_ip_b)
diag_aclmanager.setTabOrder(self.txt_ip_b, self.txt_ip_c)
diag_aclmanager.setTabOrder(self.txt_ip_c, self.txt_ip_d)
diag_aclmanager.setTabOrder(self.txt_ip_d, self.cbb_level)
def retranslateUi(self, diag_aclmanager):
_translate = QtCore.QCoreApplication.translate
diag_aclmanager.setWindowTitle(_translate("diag_aclmanager", "IP access control list"))
self.gb_acls.setTitle(_translate("diag_aclmanager", "Existing ACLs"))
item = self.tb_acls.horizontalHeaderItem(0)
item.setText(_translate("diag_aclmanager", "IP Address"))
item = self.tb_acls.horizontalHeaderItem(1)
item.setText(_translate("diag_aclmanager", "Access Level"))
self.btn_edit.setText(_translate("diag_aclmanager", "&Edit"))
self.btn_remove.setText(_translate("diag_aclmanager", "&Remove"))
self.gb_edit.setTitle(_translate("diag_aclmanager", "Add / Edit access entry"))
self.btn_clear.setText(_translate("diag_aclmanager", "Clear fields"))
self.btn_add.setText(_translate("diag_aclmanager", "&Save entry"))
self.lbl_ip.setText(_translate("diag_aclmanager", "IP address:"))
self.lbl_level.setText(_translate("diag_aclmanager", "Access level:"))
self.lbl_ip_a.setText(_translate("diag_aclmanager", "."))
self.lbl_ip_b.setText(_translate("diag_aclmanager", "."))
self.lbl_ip_c.setText(_translate("diag_aclmanager", "."))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
diag_aclmanager = QtWidgets.QDialog()
ui = Ui_diag_aclmanager()
ui.setupUi(diag_aclmanager)
diag_aclmanager.show()
sys.exit(app.exec_())

View File

@@ -0,0 +1,93 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'avahisearch.ui'
#
# Created by: PyQt5 UI code generator 5.10.1
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_diag_search(object):
def setupUi(self, diag_search):
diag_search.setObjectName("diag_search")
diag_search.resize(480, 360)
self.gridLayout = QtWidgets.QGridLayout(diag_search)
self.gridLayout.setObjectName("gridLayout")
self.hl_header = QtWidgets.QHBoxLayout()
self.hl_header.setObjectName("hl_header")
self.lbl_search = QtWidgets.QLabel(diag_search)
self.lbl_search.setObjectName("lbl_search")
self.hl_header.addWidget(self.lbl_search)
self.btn_restart = QtWidgets.QPushButton(diag_search)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.btn_restart.sizePolicy().hasHeightForWidth())
self.btn_restart.setSizePolicy(sizePolicy)
self.btn_restart.setText("")
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap(":/action/ico/reload.ico"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.btn_restart.setIcon(icon)
self.btn_restart.setIconSize(QtCore.QSize(24, 24))
self.btn_restart.setObjectName("btn_restart")
self.hl_header.addWidget(self.btn_restart)
self.gridLayout.addLayout(self.hl_header, 0, 0, 1, 2)
self.tb_revpi = QtWidgets.QTableWidget(diag_search)
self.tb_revpi.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers)
self.tb_revpi.setTabKeyNavigation(False)
self.tb_revpi.setSelectionMode(QtWidgets.QAbstractItemView.SingleSelection)
self.tb_revpi.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows)
self.tb_revpi.setWordWrap(False)
self.tb_revpi.setCornerButtonEnabled(False)
self.tb_revpi.setObjectName("tb_revpi")
self.tb_revpi.setColumnCount(2)
self.tb_revpi.setRowCount(0)
item = QtWidgets.QTableWidgetItem()
self.tb_revpi.setHorizontalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.tb_revpi.setHorizontalHeaderItem(1, item)
self.tb_revpi.horizontalHeader().setHighlightSections(False)
self.tb_revpi.horizontalHeader().setStretchLastSection(True)
self.tb_revpi.verticalHeader().setVisible(False)
self.gridLayout.addWidget(self.tb_revpi, 1, 0, 1, 2)
self.btn_connect = QtWidgets.QPushButton(diag_search)
self.btn_connect.setObjectName("btn_connect")
self.gridLayout.addWidget(self.btn_connect, 2, 0, 1, 1)
self.btn_save = QtWidgets.QPushButton(diag_search)
self.btn_save.setObjectName("btn_save")
self.gridLayout.addWidget(self.btn_save, 2, 1, 1, 1)
self.btn_box = QtWidgets.QDialogButtonBox(diag_search)
self.btn_box.setOrientation(QtCore.Qt.Horizontal)
self.btn_box.setStandardButtons(QtWidgets.QDialogButtonBox.Close)
self.btn_box.setObjectName("btn_box")
self.gridLayout.addWidget(self.btn_box, 3, 0, 1, 2)
self.retranslateUi(diag_search)
self.btn_box.rejected.connect(diag_search.reject)
QtCore.QMetaObject.connectSlotsByName(diag_search)
def retranslateUi(self, diag_search):
_translate = QtCore.QCoreApplication.translate
diag_search.setWindowTitle(_translate("diag_search", "Search Revolution Pi devices"))
self.lbl_search.setText(_translate("diag_search", "Searching for Revolution Pi devices in your network..."))
self.btn_restart.setToolTip(_translate("diag_search", "Restart search"))
self.tb_revpi.setSortingEnabled(True)
item = self.tb_revpi.horizontalHeaderItem(0)
item.setText(_translate("diag_search", "Zero conf Name"))
item = self.tb_revpi.horizontalHeaderItem(1)
item.setText(_translate("diag_search", "IP address"))
self.btn_connect.setText(_translate("diag_search", "&Connect to Revolution Pi"))
self.btn_save.setText(_translate("diag_search", "&Save connection"))
from . import ressources_rc
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
diag_search = QtWidgets.QDialog()
ui = Ui_diag_search()
ui.setupUi(diag_search)
diag_search.show()
sys.exit(app.exec_())

View File

@@ -0,0 +1,83 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'debugcontrol.ui'
#
# Created by: PyQt5 UI code generator 5.10.1
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_wid_debugcontrol(object):
def setupUi(self, wid_debugcontrol):
wid_debugcontrol.setObjectName("wid_debugcontrol")
wid_debugcontrol.resize(402, 214)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(wid_debugcontrol.sizePolicy().hasHeightForWidth())
wid_debugcontrol.setSizePolicy(sizePolicy)
self.gridLayout = QtWidgets.QGridLayout(wid_debugcontrol)
self.gridLayout.setContentsMargins(0, 0, 0, 0)
self.gridLayout.setObjectName("gridLayout")
self.gb_devices = QtWidgets.QGroupBox(wid_debugcontrol)
self.gb_devices.setObjectName("gb_devices")
self.vl_devices = QtWidgets.QVBoxLayout(self.gb_devices)
self.vl_devices.setObjectName("vl_devices")
self.gridLayout.addWidget(self.gb_devices, 0, 0, 1, 1)
self.cbx_stay_on_top = QtWidgets.QCheckBox(wid_debugcontrol)
self.cbx_stay_on_top.setObjectName("cbx_stay_on_top")
self.gridLayout.addWidget(self.cbx_stay_on_top, 1, 0, 1, 1)
self.gb_control = QtWidgets.QGroupBox(wid_debugcontrol)
self.gb_control.setObjectName("gb_control")
self.verticalLayout = QtWidgets.QVBoxLayout(self.gb_control)
self.verticalLayout.setObjectName("verticalLayout")
self.btn_read_io = QtWidgets.QPushButton(self.gb_control)
self.btn_read_io.setObjectName("btn_read_io")
self.verticalLayout.addWidget(self.btn_read_io)
self.btn_refresh_io = QtWidgets.QPushButton(self.gb_control)
self.btn_refresh_io.setObjectName("btn_refresh_io")
self.verticalLayout.addWidget(self.btn_refresh_io)
self.btn_write_o = QtWidgets.QPushButton(self.gb_control)
self.btn_write_o.setObjectName("btn_write_o")
self.verticalLayout.addWidget(self.btn_write_o)
self.cbx_refresh = QtWidgets.QCheckBox(self.gb_control)
self.cbx_refresh.setObjectName("cbx_refresh")
self.verticalLayout.addWidget(self.cbx_refresh)
self.cbx_write = QtWidgets.QCheckBox(self.gb_control)
self.cbx_write.setObjectName("cbx_write")
self.verticalLayout.addWidget(self.cbx_write)
spacerItem = QtWidgets.QSpacerItem(20, 1, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.verticalLayout.addItem(spacerItem)
self.gridLayout.addWidget(self.gb_control, 0, 1, 2, 1)
self.retranslateUi(wid_debugcontrol)
QtCore.QMetaObject.connectSlotsByName(wid_debugcontrol)
def retranslateUi(self, wid_debugcontrol):
_translate = QtCore.QCoreApplication.translate
self.gb_devices.setTitle(_translate("wid_debugcontrol", "Revolution Pi devices"))
self.cbx_stay_on_top.setText(_translate("wid_debugcontrol", "Open to stay on top"))
self.gb_control.setTitle(_translate("wid_debugcontrol", "IO Control"))
self.btn_read_io.setToolTip(_translate("wid_debugcontrol", "Read all IO values and discard local changes (F4)"))
self.btn_read_io.setText(_translate("wid_debugcontrol", "Read &all IO values"))
self.btn_read_io.setShortcut(_translate("wid_debugcontrol", "F4"))
self.btn_refresh_io.setToolTip(_translate("wid_debugcontrol", "Refresh all IO values which are locally not changed (F5)"))
self.btn_refresh_io.setText(_translate("wid_debugcontrol", "&Refresh unchanged IOs"))
self.btn_refresh_io.setShortcut(_translate("wid_debugcontrol", "F5"))
self.btn_write_o.setToolTip(_translate("wid_debugcontrol", "Write locally changed output values to process image (F6)"))
self.btn_write_o.setText(_translate("wid_debugcontrol", "&Write changed outputs"))
self.btn_write_o.setShortcut(_translate("wid_debugcontrol", "F6"))
self.cbx_refresh.setText(_translate("wid_debugcontrol", "&Auto refresh values"))
self.cbx_write.setText(_translate("wid_debugcontrol", "and write outputs"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
wid_debugcontrol = QtWidgets.QWidget()
ui = Ui_wid_debugcontrol()
ui.setupUi(wid_debugcontrol)
wid_debugcontrol.show()
sys.exit(app.exec_())

75
include/ui/debugios_ui.py Normal file
View File

@@ -0,0 +1,75 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'debugios.ui'
#
# Created by: PyQt5 UI code generator 5.10.1
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_win_debugios(object):
def setupUi(self, win_debugios):
win_debugios.setObjectName("win_debugios")
win_debugios.resize(434, 343)
self.centralwidget = QtWidgets.QWidget(win_debugios)
self.centralwidget.setObjectName("centralwidget")
self.verticalLayout = QtWidgets.QVBoxLayout(self.centralwidget)
self.verticalLayout.setObjectName("verticalLayout")
self.gb_io = QtWidgets.QGroupBox(self.centralwidget)
self.gb_io.setObjectName("gb_io")
self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.gb_io)
self.verticalLayout_2.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_2.setObjectName("verticalLayout_2")
self.splitter = QtWidgets.QSplitter(self.gb_io)
self.splitter.setOrientation(QtCore.Qt.Horizontal)
self.splitter.setChildrenCollapsible(False)
self.splitter.setObjectName("splitter")
self.sca_inp = QtWidgets.QScrollArea(self.splitter)
self.sca_inp.setLineWidth(0)
self.sca_inp.setWidgetResizable(True)
self.sca_inp.setObjectName("sca_inp")
self.saw_inp = QtWidgets.QWidget()
self.saw_inp.setGeometry(QtCore.QRect(0, 0, 201, 275))
self.saw_inp.setObjectName("saw_inp")
self.form_inp = QtWidgets.QFormLayout(self.saw_inp)
self.form_inp.setLabelAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.form_inp.setContentsMargins(-1, 6, -1, 6)
self.form_inp.setObjectName("form_inp")
self.sca_inp.setWidget(self.saw_inp)
self.sca_out = QtWidgets.QScrollArea(self.splitter)
self.sca_out.setLineWidth(0)
self.sca_out.setWidgetResizable(True)
self.sca_out.setObjectName("sca_out")
self.saw_out = QtWidgets.QWidget()
self.saw_out.setGeometry(QtCore.QRect(0, 0, 201, 275))
self.saw_out.setObjectName("saw_out")
self.form_out = QtWidgets.QFormLayout(self.saw_out)
self.form_out.setLabelAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.form_out.setContentsMargins(-1, 6, -1, 6)
self.form_out.setObjectName("form_out")
self.sca_out.setWidget(self.saw_out)
self.verticalLayout_2.addWidget(self.splitter)
self.verticalLayout.addWidget(self.gb_io)
win_debugios.setCentralWidget(self.centralwidget)
self.stat_bar = QtWidgets.QStatusBar(win_debugios)
self.stat_bar.setObjectName("stat_bar")
win_debugios.setStatusBar(self.stat_bar)
self.retranslateUi(win_debugios)
QtCore.QMetaObject.connectSlotsByName(win_debugios)
def retranslateUi(self, win_debugios):
_translate = QtCore.QCoreApplication.translate
self.gb_io.setTitle(_translate("win_debugios", "{0}: Inputs | Outputs"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
win_debugios = QtWidgets.QMainWindow()
ui = Ui_win_debugios()
ui.setupUi(win_debugios)
win_debugios.show()
sys.exit(app.exec_())

View File

@@ -0,0 +1,155 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'mqttmanager.ui'
#
# Created by: PyQt5 UI code generator 5.10.1
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_diag_mqtt(object):
def setupUi(self, diag_mqtt):
diag_mqtt.setObjectName("diag_mqtt")
diag_mqtt.resize(492, 704)
self.verticalLayout = QtWidgets.QVBoxLayout(diag_mqtt)
self.verticalLayout.setObjectName("verticalLayout")
self.gb_basetopic = QtWidgets.QGroupBox(diag_mqtt)
self.gb_basetopic.setObjectName("gb_basetopic")
self.gridLayout = QtWidgets.QGridLayout(self.gb_basetopic)
self.gridLayout.setObjectName("gridLayout")
self.lbl_basetopic_description = QtWidgets.QLabel(self.gb_basetopic)
self.lbl_basetopic_description.setMaximumSize(QtCore.QSize(450, 16777215))
self.lbl_basetopic_description.setWordWrap(True)
self.lbl_basetopic_description.setObjectName("lbl_basetopic_description")
self.gridLayout.addWidget(self.lbl_basetopic_description, 1, 0, 1, 4)
self.lbl_basetopic = QtWidgets.QLabel(self.gb_basetopic)
self.lbl_basetopic.setObjectName("lbl_basetopic")
self.gridLayout.addWidget(self.lbl_basetopic, 0, 0, 1, 1)
self.txt_basetopic = QtWidgets.QLineEdit(self.gb_basetopic)
self.txt_basetopic.setObjectName("txt_basetopic")
self.gridLayout.addWidget(self.txt_basetopic, 0, 1, 1, 1)
self.verticalLayout.addWidget(self.gb_basetopic)
self.gb_send_on_event = QtWidgets.QGroupBox(diag_mqtt)
self.gb_send_on_event.setObjectName("gb_send_on_event")
self.gridLayout_2 = QtWidgets.QGridLayout(self.gb_send_on_event)
self.gridLayout_2.setObjectName("gridLayout_2")
self.lbl_sendinterval = QtWidgets.QLabel(self.gb_send_on_event)
self.lbl_sendinterval.setObjectName("lbl_sendinterval")
self.gridLayout_2.addWidget(self.lbl_sendinterval, 0, 0, 1, 1)
self.sbx_sendinterval = QtWidgets.QSpinBox(self.gb_send_on_event)
self.sbx_sendinterval.setMinimum(1)
self.sbx_sendinterval.setMaximum(21600)
self.sbx_sendinterval.setObjectName("sbx_sendinterval")
self.gridLayout_2.addWidget(self.sbx_sendinterval, 0, 1, 1, 1)
self.lbl_topic_io = QtWidgets.QLabel(self.gb_send_on_event)
self.lbl_topic_io.setObjectName("lbl_topic_io")
self.gridLayout_2.addWidget(self.lbl_topic_io, 1, 0, 1, 2)
self.cbx_send_on_event = QtWidgets.QCheckBox(self.gb_send_on_event)
self.cbx_send_on_event.setObjectName("cbx_send_on_event")
self.gridLayout_2.addWidget(self.cbx_send_on_event, 2, 0, 1, 2)
self.lbl_topic_event = QtWidgets.QLabel(self.gb_send_on_event)
self.lbl_topic_event.setObjectName("lbl_topic_event")
self.gridLayout_2.addWidget(self.lbl_topic_event, 3, 0, 1, 2)
self.verticalLayout.addWidget(self.gb_send_on_event)
self.gb_write_outputs = QtWidgets.QGroupBox(diag_mqtt)
self.gb_write_outputs.setObjectName("gb_write_outputs")
self.gridLayout_3 = QtWidgets.QGridLayout(self.gb_write_outputs)
self.gridLayout_3.setObjectName("gridLayout_3")
self.lbl_write_outputs = QtWidgets.QLabel(self.gb_write_outputs)
self.lbl_write_outputs.setMaximumSize(QtCore.QSize(450, 16777215))
self.lbl_write_outputs.setWordWrap(True)
self.lbl_write_outputs.setObjectName("lbl_write_outputs")
self.gridLayout_3.addWidget(self.lbl_write_outputs, 1, 0, 1, 1)
self.cbx_write_outputs = QtWidgets.QCheckBox(self.gb_write_outputs)
self.cbx_write_outputs.setObjectName("cbx_write_outputs")
self.gridLayout_3.addWidget(self.cbx_write_outputs, 0, 0, 1, 1)
self.verticalLayout.addWidget(self.gb_write_outputs)
self.gb_broker = QtWidgets.QGroupBox(diag_mqtt)
self.gb_broker.setObjectName("gb_broker")
self.formLayout = QtWidgets.QFormLayout(self.gb_broker)
self.formLayout.setObjectName("formLayout")
self.lbl_broker_address = QtWidgets.QLabel(self.gb_broker)
self.lbl_broker_address.setObjectName("lbl_broker_address")
self.formLayout.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.lbl_broker_address)
self.txt_broker_address = QtWidgets.QLineEdit(self.gb_broker)
self.txt_broker_address.setObjectName("txt_broker_address")
self.formLayout.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.txt_broker_address)
self.lbl_port = QtWidgets.QLabel(self.gb_broker)
self.lbl_port.setObjectName("lbl_port")
self.formLayout.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.lbl_port)
self.lbl_username = QtWidgets.QLabel(self.gb_broker)
self.lbl_username.setObjectName("lbl_username")
self.formLayout.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.lbl_username)
self.lbl_password = QtWidgets.QLabel(self.gb_broker)
self.lbl_password.setObjectName("lbl_password")
self.formLayout.setWidget(3, QtWidgets.QFormLayout.LabelRole, self.lbl_password)
self.lbl_client_id = QtWidgets.QLabel(self.gb_broker)
self.lbl_client_id.setObjectName("lbl_client_id")
self.formLayout.setWidget(4, QtWidgets.QFormLayout.LabelRole, self.lbl_client_id)
self.txt_username = QtWidgets.QLineEdit(self.gb_broker)
self.txt_username.setObjectName("txt_username")
self.formLayout.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.txt_username)
self.txt_password = QtWidgets.QLineEdit(self.gb_broker)
self.txt_password.setObjectName("txt_password")
self.formLayout.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.txt_password)
self.txt_client_id = QtWidgets.QLineEdit(self.gb_broker)
self.txt_client_id.setObjectName("txt_client_id")
self.formLayout.setWidget(4, QtWidgets.QFormLayout.FieldRole, self.txt_client_id)
self.horizontalLayout = QtWidgets.QHBoxLayout()
self.horizontalLayout.setObjectName("horizontalLayout")
self.sbx_port = QtWidgets.QSpinBox(self.gb_broker)
self.sbx_port.setMinimum(1)
self.sbx_port.setMaximum(65535)
self.sbx_port.setObjectName("sbx_port")
self.horizontalLayout.addWidget(self.sbx_port)
self.cbx_tls_set = QtWidgets.QCheckBox(self.gb_broker)
self.cbx_tls_set.setObjectName("cbx_tls_set")
self.horizontalLayout.addWidget(self.cbx_tls_set)
self.formLayout.setLayout(1, QtWidgets.QFormLayout.FieldRole, self.horizontalLayout)
self.verticalLayout.addWidget(self.gb_broker)
self.btn_box = QtWidgets.QDialogButtonBox(diag_mqtt)
self.btn_box.setOrientation(QtCore.Qt.Horizontal)
self.btn_box.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel|QtWidgets.QDialogButtonBox.Ok)
self.btn_box.setObjectName("btn_box")
self.verticalLayout.addWidget(self.btn_box)
self.retranslateUi(diag_mqtt)
self.btn_box.accepted.connect(diag_mqtt.accept)
self.btn_box.rejected.connect(diag_mqtt.reject)
QtCore.QMetaObject.connectSlotsByName(diag_mqtt)
def retranslateUi(self, diag_mqtt):
_translate = QtCore.QCoreApplication.translate
diag_mqtt.setWindowTitle(_translate("diag_mqtt", "MQTT settings"))
self.gb_basetopic.setTitle(_translate("diag_mqtt", "Base topic"))
self.lbl_basetopic_description.setText(_translate("diag_mqtt", "<html><head/><body><p>The base topic is the first part of any mqtt topic, the Revolution Pi will publish. You can use any character includig \'/\' to structure the messages on your broker.</p><p>For example: revpi0000/data</p></body></html>"))
self.lbl_basetopic.setText(_translate("diag_mqtt", "Base topic:"))
self.gb_send_on_event.setTitle(_translate("diag_mqtt", "Publish settings"))
self.lbl_sendinterval.setText(_translate("diag_mqtt", "Publish all exported values every n seconds:"))
self.lbl_topic_io.setText(_translate("diag_mqtt", "Topic: [basetopic]/io/[ioname]"))
self.cbx_send_on_event.setText(_translate("diag_mqtt", "Send exported values immediately on value change"))
self.lbl_topic_event.setText(_translate("diag_mqtt", "Topic: [basetopic]/event/[ioname]"))
self.gb_write_outputs.setTitle(_translate("diag_mqtt", "Set outputs"))
self.lbl_write_outputs.setText(_translate("diag_mqtt", "The Revolution Pi will subscribe a topic on which your mqtt client can publish messages with the new io value as payload.\n"
"\n"
"Publish values with topic: [basetopic]/set/[outputname]"))
self.cbx_write_outputs.setText(_translate("diag_mqtt", "Allow MQTT to to set outputs on Revolution Pi"))
self.gb_broker.setTitle(_translate("diag_mqtt", "Brocker settings"))
self.lbl_broker_address.setText(_translate("diag_mqtt", "Broker address:"))
self.lbl_port.setText(_translate("diag_mqtt", "Broker port:"))
self.lbl_username.setText(_translate("diag_mqtt", "User name:"))
self.lbl_password.setText(_translate("diag_mqtt", "Password:"))
self.lbl_client_id.setText(_translate("diag_mqtt", "Client ID:"))
self.cbx_tls_set.setText(_translate("diag_mqtt", "Use TLS"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
diag_mqtt = QtWidgets.QDialog()
ui = Ui_diag_mqtt()
ui.setupUi(diag_mqtt)
diag_mqtt.show()
sys.exit(app.exec_())

2761
include/ui/ressources_rc.py Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,167 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'revpicommander.ui'
#
# Created by: PyQt5 UI code generator 5.10.1
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_win_revpicommander(object):
def setupUi(self, win_revpicommander):
win_revpicommander.setObjectName("win_revpicommander")
win_revpicommander.resize(318, 273)
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap(":/main/ico/revpipycontrol.ico"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
win_revpicommander.setWindowIcon(icon)
self.centralwidget = QtWidgets.QWidget(win_revpicommander)
self.centralwidget.setObjectName("centralwidget")
self.gl = QtWidgets.QGridLayout(self.centralwidget)
self.gl.setObjectName("gl")
self.txt_connection = QtWidgets.QLineEdit(self.centralwidget)
self.txt_connection.setFocusPolicy(QtCore.Qt.NoFocus)
self.txt_connection.setReadOnly(True)
self.txt_connection.setObjectName("txt_connection")
self.gl.addWidget(self.txt_connection, 0, 0, 1, 1)
self.btn_plc_start = QtWidgets.QPushButton(self.centralwidget)
self.btn_plc_start.setObjectName("btn_plc_start")
self.gl.addWidget(self.btn_plc_start, 1, 0, 1, 1)
self.btn_plc_stop = QtWidgets.QPushButton(self.centralwidget)
self.btn_plc_stop.setObjectName("btn_plc_stop")
self.gl.addWidget(self.btn_plc_stop, 2, 0, 1, 1)
self.btn_plc_restart = QtWidgets.QPushButton(self.centralwidget)
self.btn_plc_restart.setObjectName("btn_plc_restart")
self.gl.addWidget(self.btn_plc_restart, 3, 0, 1, 1)
self.btn_plc_logs = QtWidgets.QPushButton(self.centralwidget)
self.btn_plc_logs.setObjectName("btn_plc_logs")
self.gl.addWidget(self.btn_plc_logs, 4, 0, 1, 1)
self.txt_status = QtWidgets.QLineEdit(self.centralwidget)
self.txt_status.setFocusPolicy(QtCore.Qt.NoFocus)
self.txt_status.setAlignment(QtCore.Qt.AlignCenter)
self.txt_status.setReadOnly(True)
self.txt_status.setObjectName("txt_status")
self.gl.addWidget(self.txt_status, 5, 0, 1, 1)
self.btn_plc_debug = QtWidgets.QPushButton(self.centralwidget)
self.btn_plc_debug.setMinimumSize(QtCore.QSize(300, 0))
self.btn_plc_debug.setCheckable(True)
self.btn_plc_debug.setObjectName("btn_plc_debug")
self.gl.addWidget(self.btn_plc_debug, 6, 0, 1, 1)
win_revpicommander.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(win_revpicommander)
self.menubar.setGeometry(QtCore.QRect(0, 0, 318, 22))
self.menubar.setObjectName("menubar")
self.men_file = QtWidgets.QMenu(self.menubar)
self.men_file.setObjectName("men_file")
self.men_help = QtWidgets.QMenu(self.menubar)
self.men_help.setObjectName("men_help")
self.men_plc = QtWidgets.QMenu(self.menubar)
self.men_plc.setObjectName("men_plc")
self.men_connections = QtWidgets.QMenu(self.menubar)
self.men_connections.setObjectName("men_connections")
win_revpicommander.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(win_revpicommander)
self.statusbar.setSizeGripEnabled(False)
self.statusbar.setObjectName("statusbar")
win_revpicommander.setStatusBar(self.statusbar)
self.act_connections = QtWidgets.QAction(win_revpicommander)
self.act_connections.setObjectName("act_connections")
self.act_search = QtWidgets.QAction(win_revpicommander)
self.act_search.setObjectName("act_search")
self.act_quit = QtWidgets.QAction(win_revpicommander)
self.act_quit.setObjectName("act_quit")
self.act_webpage = QtWidgets.QAction(win_revpicommander)
self.act_webpage.setObjectName("act_webpage")
self.act_info = QtWidgets.QAction(win_revpicommander)
self.act_info.setObjectName("act_info")
self.act_logs = QtWidgets.QAction(win_revpicommander)
self.act_logs.setObjectName("act_logs")
self.act_options = QtWidgets.QAction(win_revpicommander)
self.act_options.setObjectName("act_options")
self.act_program = QtWidgets.QAction(win_revpicommander)
self.act_program.setObjectName("act_program")
self.act_developer = QtWidgets.QAction(win_revpicommander)
self.act_developer.setCheckable(True)
self.act_developer.setObjectName("act_developer")
self.act_pictory = QtWidgets.QAction(win_revpicommander)
self.act_pictory.setObjectName("act_pictory")
self.act_disconnect = QtWidgets.QAction(win_revpicommander)
self.act_disconnect.setObjectName("act_disconnect")
self.act_reset = QtWidgets.QAction(win_revpicommander)
self.act_reset.setObjectName("act_reset")
self.act_simulator = QtWidgets.QAction(win_revpicommander)
self.act_simulator.setObjectName("act_simulator")
self.men_file.addAction(self.act_connections)
self.men_file.addAction(self.act_search)
self.men_file.addSeparator()
self.men_file.addAction(self.act_simulator)
self.men_file.addSeparator()
self.men_file.addAction(self.act_quit)
self.men_help.addAction(self.act_webpage)
self.men_help.addSeparator()
self.men_help.addAction(self.act_info)
self.men_plc.addAction(self.act_logs)
self.men_plc.addAction(self.act_options)
self.men_plc.addAction(self.act_program)
self.men_plc.addAction(self.act_developer)
self.men_plc.addSeparator()
self.men_plc.addAction(self.act_pictory)
self.men_plc.addAction(self.act_reset)
self.men_plc.addSeparator()
self.men_plc.addAction(self.act_disconnect)
self.menubar.addAction(self.men_file.menuAction())
self.menubar.addAction(self.men_plc.menuAction())
self.menubar.addAction(self.men_connections.menuAction())
self.menubar.addAction(self.men_help.menuAction())
self.retranslateUi(win_revpicommander)
self.act_quit.triggered.connect(win_revpicommander.close)
QtCore.QMetaObject.connectSlotsByName(win_revpicommander)
win_revpicommander.setTabOrder(self.btn_plc_start, self.btn_plc_stop)
win_revpicommander.setTabOrder(self.btn_plc_stop, self.btn_plc_restart)
win_revpicommander.setTabOrder(self.btn_plc_restart, self.btn_plc_logs)
win_revpicommander.setTabOrder(self.btn_plc_logs, self.btn_plc_debug)
def retranslateUi(self, win_revpicommander):
_translate = QtCore.QCoreApplication.translate
win_revpicommander.setWindowTitle(_translate("win_revpicommander", "RevPi Python PLC Commander"))
self.btn_plc_start.setText(_translate("win_revpicommander", "PLC &start"))
self.btn_plc_stop.setText(_translate("win_revpicommander", "PLC s&top"))
self.btn_plc_restart.setText(_translate("win_revpicommander", "PLC restart"))
self.btn_plc_logs.setText(_translate("win_revpicommander", "PLC &logs"))
self.btn_plc_debug.setText(_translate("win_revpicommander", "PLC watch &mode"))
self.men_file.setTitle(_translate("win_revpicommander", "&File"))
self.men_help.setTitle(_translate("win_revpicommander", "&Help"))
self.men_plc.setTitle(_translate("win_revpicommander", "&PLC"))
self.men_connections.setTitle(_translate("win_revpicommander", "&Connections"))
self.act_connections.setText(_translate("win_revpicommander", "&Connections..."))
self.act_search.setText(_translate("win_revpicommander", "&Search Revolution Pi..."))
self.act_search.setShortcut(_translate("win_revpicommander", "Ctrl+F"))
self.act_quit.setText(_translate("win_revpicommander", "&Quit"))
self.act_webpage.setText(_translate("win_revpicommander", "Visit &webpage..."))
self.act_info.setText(_translate("win_revpicommander", "&Info..."))
self.act_logs.setText(_translate("win_revpicommander", "PLC &logs..."))
self.act_logs.setShortcut(_translate("win_revpicommander", "F3"))
self.act_options.setText(_translate("win_revpicommander", "PLC &options..."))
self.act_options.setShortcut(_translate("win_revpicommander", "Ctrl+O"))
self.act_program.setText(_translate("win_revpicommander", "PLC progra&m..."))
self.act_program.setShortcut(_translate("win_revpicommander", "Ctrl+P"))
self.act_developer.setText(_translate("win_revpicommander", "PLC de&veloper..."))
self.act_developer.setShortcut(_translate("win_revpicommander", "F9"))
self.act_pictory.setText(_translate("win_revpicommander", "piCtory configuraiton..."))
self.act_disconnect.setText(_translate("win_revpicommander", "&Disconnect"))
self.act_disconnect.setShortcut(_translate("win_revpicommander", "Ctrl+X"))
self.act_reset.setText(_translate("win_revpicommander", "Reset driver..."))
self.act_simulator.setText(_translate("win_revpicommander", "Start local si&mulator..."))
from . import ressources_rc
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
win_revpicommander = QtWidgets.QMainWindow()
ui = Ui_win_revpicommander()
ui.setupUi(win_revpicommander)
win_revpicommander.show()
sys.exit(app.exec_())

View File

@@ -0,0 +1,88 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'revpidevelop.ui'
#
# Created by: PyQt5 UI code generator 5.10.1
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_wid_develop(object):
def setupUi(self, wid_develop):
wid_develop.setObjectName("wid_develop")
wid_develop.resize(374, 444)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.MinimumExpanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(wid_develop.sizePolicy().hasHeightForWidth())
wid_develop.setSizePolicy(sizePolicy)
self.gridLayout = QtWidgets.QGridLayout(wid_develop)
self.gridLayout.setContentsMargins(0, 0, 0, 0)
self.gridLayout.setObjectName("gridLayout")
self.btn_all = QtWidgets.QPushButton(wid_develop)
self.btn_all.setObjectName("btn_all")
self.gridLayout.addWidget(self.btn_all, 2, 0, 1, 1)
self.btn_upload = QtWidgets.QPushButton(wid_develop)
self.btn_upload.setObjectName("btn_upload")
self.gridLayout.addWidget(self.btn_upload, 2, 1, 1, 1)
self.tree_files = QtWidgets.QTreeWidget(wid_develop)
self.tree_files.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers)
self.tree_files.setSelectionMode(QtWidgets.QAbstractItemView.MultiSelection)
self.tree_files.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows)
self.tree_files.setIconSize(QtCore.QSize(24, 24))
self.tree_files.setObjectName("tree_files")
self.tree_files.headerItem().setText(0, "1")
self.tree_files.header().setVisible(False)
self.gridLayout.addWidget(self.tree_files, 1, 0, 1, 2)
self.gb_select = QtWidgets.QGroupBox(wid_develop)
self.gb_select.setObjectName("gb_select")
self.gridLayout_2 = QtWidgets.QGridLayout(self.gb_select)
self.gridLayout_2.setObjectName("gridLayout_2")
self.lbl_select = QtWidgets.QLabel(self.gb_select)
self.lbl_select.setObjectName("lbl_select")
self.gridLayout_2.addWidget(self.lbl_select, 0, 0, 1, 1)
self.btn_select = QtWidgets.QPushButton(self.gb_select)
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap(":/action/ico/folder-open.ico"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.btn_select.setIcon(icon)
self.btn_select.setIconSize(QtCore.QSize(24, 24))
self.btn_select.setObjectName("btn_select")
self.gridLayout_2.addWidget(self.btn_select, 0, 1, 1, 1)
self.lbl_path = QtWidgets.QLabel(self.gb_select)
self.lbl_path.setObjectName("lbl_path")
self.gridLayout_2.addWidget(self.lbl_path, 1, 0, 1, 2)
self.btn_refresh = QtWidgets.QPushButton(self.gb_select)
icon1 = QtGui.QIcon()
icon1.addPixmap(QtGui.QPixmap(":/action/ico/refresh.ico"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.btn_refresh.setIcon(icon1)
self.btn_refresh.setIconSize(QtCore.QSize(24, 24))
self.btn_refresh.setObjectName("btn_refresh")
self.gridLayout_2.addWidget(self.btn_refresh, 0, 2, 1, 1)
self.gridLayout_2.setColumnStretch(0, 1)
self.gridLayout.addWidget(self.gb_select, 0, 0, 1, 2)
self.retranslateUi(wid_develop)
QtCore.QMetaObject.connectSlotsByName(wid_develop)
def retranslateUi(self, wid_develop):
_translate = QtCore.QCoreApplication.translate
self.btn_all.setText(_translate("wid_develop", "Stop / Upload / Start"))
self.btn_upload.setText(_translate("wid_develop", "Just upload"))
self.gb_select.setTitle(_translate("wid_develop", "File watcher for PLC development"))
self.lbl_select.setText(_translate("wid_develop", "Path to development root:"))
self.btn_select.setToolTip(_translate("wid_develop", "Open developer root directory"))
self.lbl_path.setText(_translate("wid_develop", "/"))
self.btn_refresh.setToolTip(_translate("wid_develop", "Reload file list"))
from . import ressources_rc
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
wid_develop = QtWidgets.QWidget()
ui = Ui_wid_develop()
ui.setupUi(wid_develop)
wid_develop.show()
sys.exit(app.exec_())

106
include/ui/revpiinfo_ui.py Normal file
View File

@@ -0,0 +1,106 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'revpiinfo.ui'
#
# Created by: PyQt5 UI code generator 5.10.1
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_diag_revpiinfo(object):
def setupUi(self, diag_revpiinfo):
diag_revpiinfo.setObjectName("diag_revpiinfo")
diag_revpiinfo.resize(627, 398)
self.gridLayout = QtWidgets.QGridLayout(diag_revpiinfo)
self.gridLayout.setObjectName("gridLayout")
self.lbl_head = QtWidgets.QLabel(diag_revpiinfo)
font = QtGui.QFont()
font.setPointSize(20)
font.setBold(True)
font.setWeight(75)
self.lbl_head.setFont(font)
self.lbl_head.setAlignment(QtCore.Qt.AlignCenter)
self.lbl_head.setObjectName("lbl_head")
self.gridLayout.addWidget(self.lbl_head, 0, 0, 1, 3)
self.lbl_lbl_version_pyload = QtWidgets.QLabel(diag_revpiinfo)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.lbl_lbl_version_pyload.setFont(font)
self.lbl_lbl_version_pyload.setObjectName("lbl_lbl_version_pyload")
self.gridLayout.addWidget(self.lbl_lbl_version_pyload, 3, 0, 1, 1)
self.lst_files = QtWidgets.QListWidget(diag_revpiinfo)
self.lst_files.setObjectName("lst_files")
self.gridLayout.addWidget(self.lst_files, 3, 2, 4, 1)
self.lbl_version_pyload = QtWidgets.QLabel(diag_revpiinfo)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.lbl_version_pyload.setFont(font)
self.lbl_version_pyload.setAlignment(QtCore.Qt.AlignCenter)
self.lbl_version_pyload.setObjectName("lbl_version_pyload")
self.gridLayout.addWidget(self.lbl_version_pyload, 3, 1, 1, 1)
self.lbl_link = QtWidgets.QLabel(diag_revpiinfo)
self.lbl_link.setOpenExternalLinks(True)
self.lbl_link.setObjectName("lbl_link")
self.gridLayout.addWidget(self.lbl_link, 6, 0, 1, 1)
self.btn_box = QtWidgets.QDialogButtonBox(diag_revpiinfo)
self.btn_box.setOrientation(QtCore.Qt.Horizontal)
self.btn_box.setStandardButtons(QtWidgets.QDialogButtonBox.Ok)
self.btn_box.setObjectName("btn_box")
self.gridLayout.addWidget(self.btn_box, 7, 0, 1, 3)
self.horizontalLayout = QtWidgets.QHBoxLayout()
self.horizontalLayout.setObjectName("horizontalLayout")
self.lbl_lbl_version_control = QtWidgets.QLabel(diag_revpiinfo)
font = QtGui.QFont()
font.setPointSize(14)
self.lbl_lbl_version_control.setFont(font)
self.lbl_lbl_version_control.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.lbl_lbl_version_control.setObjectName("lbl_lbl_version_control")
self.horizontalLayout.addWidget(self.lbl_lbl_version_control)
self.lbl_version_control = QtWidgets.QLabel(diag_revpiinfo)
font = QtGui.QFont()
font.setPointSize(14)
self.lbl_version_control.setFont(font)
self.lbl_version_control.setObjectName("lbl_version_control")
self.horizontalLayout.addWidget(self.lbl_version_control)
self.gridLayout.addLayout(self.horizontalLayout, 1, 0, 1, 3)
self.lbl_info = QtWidgets.QLabel(diag_revpiinfo)
self.lbl_info.setMinimumSize(QtCore.QSize(300, 0))
self.lbl_info.setWordWrap(True)
self.lbl_info.setObjectName("lbl_info")
self.gridLayout.addWidget(self.lbl_info, 4, 0, 1, 2)
spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.gridLayout.addItem(spacerItem, 5, 0, 1, 1)
self.retranslateUi(diag_revpiinfo)
self.btn_box.accepted.connect(diag_revpiinfo.accept)
self.btn_box.rejected.connect(diag_revpiinfo.reject)
QtCore.QMetaObject.connectSlotsByName(diag_revpiinfo)
def retranslateUi(self, diag_revpiinfo):
_translate = QtCore.QCoreApplication.translate
diag_revpiinfo.setWindowTitle(_translate("diag_revpiinfo", "Dialog"))
self.lbl_head.setText(_translate("diag_revpiinfo", "RevPi Python PLC - Control"))
self.lbl_lbl_version_pyload.setText(_translate("diag_revpiinfo", "RevPiPyLoad version on RevPi:"))
self.lbl_version_pyload.setText(_translate("diag_revpiinfo", "0.0.0"))
self.lbl_link.setText(_translate("diag_revpiinfo", "<html><head/><body><p><a href=\"https://revpimodio.org/\"><span style=\" text-decoration: underline; color:#0000ff;\">https://revpimodio.org/</span></a></p></body></html>"))
self.lbl_lbl_version_control.setText(_translate("diag_revpiinfo", "Version:"))
self.lbl_version_control.setText(_translate("diag_revpiinfo", "0.0.0"))
self.lbl_info.setText(_translate("diag_revpiinfo", "RevPiModIO, RevPiPyLoad and RevPiPyControl are community driven projects. They are all free and open source software.\n"
"All of them comes with ABSOLUTELY NO WARRANTY, to the extent permitted by\n"
"applicable law.\n"
"\n"
"(c) Sven Sager, License: GPLv3"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
diag_revpiinfo = QtWidgets.QDialog()
ui = Ui_diag_revpiinfo()
ui.setupUi(diag_revpiinfo)
diag_revpiinfo.show()
sys.exit(app.exec_())

View File

@@ -0,0 +1,96 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'revpilogfile.ui'
#
# Created by: PyQt5 UI code generator 5.10.1
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_win_revpilogfile(object):
def setupUi(self, win_revpilogfile):
win_revpilogfile.setObjectName("win_revpilogfile")
win_revpilogfile.resize(796, 347)
self.centralwidget = QtWidgets.QWidget(win_revpilogfile)
self.centralwidget.setObjectName("centralwidget")
self.gridLayout_3 = QtWidgets.QGridLayout(self.centralwidget)
self.gridLayout_3.setObjectName("gridLayout_3")
self.cbx_stay_on_top = QtWidgets.QCheckBox(self.centralwidget)
self.cbx_stay_on_top.setObjectName("cbx_stay_on_top")
self.gridLayout_3.addWidget(self.cbx_stay_on_top, 1, 0, 1, 1)
self.cbx_wrap = QtWidgets.QCheckBox(self.centralwidget)
self.cbx_wrap.setObjectName("cbx_wrap")
self.gridLayout_3.addWidget(self.cbx_wrap, 1, 1, 1, 1)
self.splitter = QtWidgets.QSplitter(self.centralwidget)
self.splitter.setOrientation(QtCore.Qt.Horizontal)
self.splitter.setChildrenCollapsible(False)
self.splitter.setObjectName("splitter")
self.gridLayoutWidget = QtWidgets.QWidget(self.splitter)
self.gridLayoutWidget.setObjectName("gridLayoutWidget")
self.grid_daemon = QtWidgets.QGridLayout(self.gridLayoutWidget)
self.grid_daemon.setContentsMargins(0, 0, 0, 0)
self.grid_daemon.setObjectName("grid_daemon")
self.lbl_daemon = QtWidgets.QLabel(self.gridLayoutWidget)
self.lbl_daemon.setObjectName("lbl_daemon")
self.grid_daemon.addWidget(self.lbl_daemon, 0, 0, 1, 1)
self.btn_daemon = QtWidgets.QPushButton(self.gridLayoutWidget)
self.btn_daemon.setObjectName("btn_daemon")
self.grid_daemon.addWidget(self.btn_daemon, 0, 1, 1, 1)
self.txt_daemon = QtWidgets.QPlainTextEdit(self.gridLayoutWidget)
self.txt_daemon.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
self.txt_daemon.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
self.txt_daemon.setTabChangesFocus(True)
self.txt_daemon.setUndoRedoEnabled(False)
self.txt_daemon.setLineWrapMode(QtWidgets.QPlainTextEdit.NoWrap)
self.txt_daemon.setReadOnly(True)
self.txt_daemon.setObjectName("txt_daemon")
self.grid_daemon.addWidget(self.txt_daemon, 1, 0, 1, 2)
self.grid_daemon.setColumnStretch(0, 1)
self.gridLayoutWidget_2 = QtWidgets.QWidget(self.splitter)
self.gridLayoutWidget_2.setObjectName("gridLayoutWidget_2")
self.grid_app = QtWidgets.QGridLayout(self.gridLayoutWidget_2)
self.grid_app.setContentsMargins(0, 0, 0, 0)
self.grid_app.setObjectName("grid_app")
self.btn_app = QtWidgets.QPushButton(self.gridLayoutWidget_2)
self.btn_app.setObjectName("btn_app")
self.grid_app.addWidget(self.btn_app, 0, 1, 1, 1)
self.lbl_app = QtWidgets.QLabel(self.gridLayoutWidget_2)
self.lbl_app.setObjectName("lbl_app")
self.grid_app.addWidget(self.lbl_app, 0, 0, 1, 1)
self.txt_app = QtWidgets.QPlainTextEdit(self.gridLayoutWidget_2)
self.txt_app.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
self.txt_app.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
self.txt_app.setTabChangesFocus(True)
self.txt_app.setUndoRedoEnabled(False)
self.txt_app.setLineWrapMode(QtWidgets.QPlainTextEdit.NoWrap)
self.txt_app.setReadOnly(True)
self.txt_app.setObjectName("txt_app")
self.grid_app.addWidget(self.txt_app, 1, 0, 1, 2)
self.grid_app.setColumnStretch(0, 1)
self.gridLayout_3.addWidget(self.splitter, 0, 0, 1, 2)
win_revpilogfile.setCentralWidget(self.centralwidget)
self.retranslateUi(win_revpilogfile)
QtCore.QMetaObject.connectSlotsByName(win_revpilogfile)
def retranslateUi(self, win_revpilogfile):
_translate = QtCore.QCoreApplication.translate
win_revpilogfile.setWindowTitle(_translate("win_revpilogfile", "RevPi Python PLC Logfiles"))
self.cbx_stay_on_top.setText(_translate("win_revpilogfile", "Stay on top of all windows"))
self.cbx_wrap.setText(_translate("win_revpilogfile", "Linewrap"))
self.lbl_daemon.setText(_translate("win_revpilogfile", "RevPiPyLoad - Logfile"))
self.btn_daemon.setText(_translate("win_revpilogfile", "Clear view"))
self.btn_app.setText(_translate("win_revpilogfile", "Clear view"))
self.lbl_app.setText(_translate("win_revpilogfile", "Python PLC program - Logfile"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
win_revpilogfile = QtWidgets.QMainWindow()
ui = Ui_win_revpilogfile()
ui.setupUi(win_revpilogfile)
win_revpilogfile.show()
sys.exit(app.exec_())

View File

@@ -0,0 +1,144 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'revpioption.ui'
#
# Created by: PyQt5 UI code generator 5.10.1
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_diag_options(object):
def setupUi(self, diag_options):
diag_options.setObjectName("diag_options")
diag_options.resize(452, 503)
self.verticalLayout = QtWidgets.QVBoxLayout(diag_options)
self.verticalLayout.setObjectName("verticalLayout")
self.gb_plc = QtWidgets.QGroupBox(diag_options)
self.gb_plc.setObjectName("gb_plc")
self.gridLayout = QtWidgets.QGridLayout(self.gb_plc)
self.gridLayout.setObjectName("gridLayout")
self.lbl_replace_io = QtWidgets.QLabel(self.gb_plc)
self.lbl_replace_io.setObjectName("lbl_replace_io")
self.gridLayout.addWidget(self.lbl_replace_io, 6, 0, 1, 1)
self.sbx_autoreloaddelay = QtWidgets.QSpinBox(self.gb_plc)
self.sbx_autoreloaddelay.setMinimum(5)
self.sbx_autoreloaddelay.setMaximum(120)
self.sbx_autoreloaddelay.setObjectName("sbx_autoreloaddelay")
self.gridLayout.addWidget(self.sbx_autoreloaddelay, 2, 2, 1, 1)
self.cbx_zeroonexit = QtWidgets.QCheckBox(self.gb_plc)
self.cbx_zeroonexit.setObjectName("cbx_zeroonexit")
self.gridLayout.addWidget(self.cbx_zeroonexit, 4, 1, 1, 2)
self.cbx_zeroonerror = QtWidgets.QCheckBox(self.gb_plc)
self.cbx_zeroonerror.setObjectName("cbx_zeroonerror")
self.gridLayout.addWidget(self.cbx_zeroonerror, 5, 1, 1, 2)
self.cbx_autostart = QtWidgets.QCheckBox(self.gb_plc)
self.cbx_autostart.setObjectName("cbx_autostart")
self.gridLayout.addWidget(self.cbx_autostart, 0, 0, 1, 3)
self.cbx_autoreload = QtWidgets.QCheckBox(self.gb_plc)
self.cbx_autoreload.setObjectName("cbx_autoreload")
self.gridLayout.addWidget(self.cbx_autoreload, 1, 0, 1, 3)
self.lbl_plc_zero = QtWidgets.QLabel(self.gb_plc)
self.lbl_plc_zero.setObjectName("lbl_plc_zero")
self.gridLayout.addWidget(self.lbl_plc_zero, 3, 0, 1, 3)
self.txt_replace_io = QtWidgets.QLineEdit(self.gb_plc)
self.txt_replace_io.setObjectName("txt_replace_io")
self.gridLayout.addWidget(self.txt_replace_io, 7, 1, 1, 2)
self.cbb_replace_io = QtWidgets.QComboBox(self.gb_plc)
self.cbb_replace_io.setObjectName("cbb_replace_io")
self.cbb_replace_io.addItem("")
self.cbb_replace_io.addItem("")
self.cbb_replace_io.addItem("")
self.cbb_replace_io.addItem("")
self.gridLayout.addWidget(self.cbb_replace_io, 6, 1, 1, 2)
self.lbl_plc_delay = QtWidgets.QLabel(self.gb_plc)
self.lbl_plc_delay.setObjectName("lbl_plc_delay")
self.gridLayout.addWidget(self.lbl_plc_delay, 2, 0, 1, 2)
self.verticalLayout.addWidget(self.gb_plc)
self.gb_server = QtWidgets.QGroupBox(diag_options)
self.gb_server.setObjectName("gb_server")
self.gridLayout_2 = QtWidgets.QGridLayout(self.gb_server)
self.gridLayout_2.setObjectName("gridLayout_2")
self.btn_aclplcslave = QtWidgets.QPushButton(self.gb_server)
self.btn_aclplcslave.setObjectName("btn_aclplcslave")
self.gridLayout_2.addWidget(self.btn_aclplcslave, 0, 1, 1, 1)
self.cbx_mqtt = QtWidgets.QCheckBox(self.gb_server)
self.cbx_mqtt.setObjectName("cbx_mqtt")
self.gridLayout_2.addWidget(self.cbx_mqtt, 2, 0, 1, 1)
self.cbx_plcslave = QtWidgets.QCheckBox(self.gb_server)
self.cbx_plcslave.setObjectName("cbx_plcslave")
self.gridLayout_2.addWidget(self.cbx_plcslave, 0, 0, 1, 1)
self.lbl_slave_status = QtWidgets.QLabel(self.gb_server)
self.lbl_slave_status.setAlignment(QtCore.Qt.AlignCenter)
self.lbl_slave_status.setObjectName("lbl_slave_status")
self.gridLayout_2.addWidget(self.lbl_slave_status, 1, 1, 1, 1)
self.lbl_lbl_slave_status = QtWidgets.QLabel(self.gb_server)
self.lbl_lbl_slave_status.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.lbl_lbl_slave_status.setObjectName("lbl_lbl_slave_status")
self.gridLayout_2.addWidget(self.lbl_lbl_slave_status, 1, 0, 1, 1)
self.lbl_mqtt_status = QtWidgets.QLabel(self.gb_server)
self.lbl_mqtt_status.setAlignment(QtCore.Qt.AlignCenter)
self.lbl_mqtt_status.setObjectName("lbl_mqtt_status")
self.gridLayout_2.addWidget(self.lbl_mqtt_status, 3, 1, 1, 1)
self.lbl_lbl_mqtt_status = QtWidgets.QLabel(self.gb_server)
self.lbl_lbl_mqtt_status.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.lbl_lbl_mqtt_status.setObjectName("lbl_lbl_mqtt_status")
self.gridLayout_2.addWidget(self.lbl_lbl_mqtt_status, 3, 0, 1, 1)
self.btn_mqtt = QtWidgets.QPushButton(self.gb_server)
self.btn_mqtt.setObjectName("btn_mqtt")
self.gridLayout_2.addWidget(self.btn_mqtt, 2, 1, 1, 1)
self.btn_aclxmlrpc = QtWidgets.QPushButton(self.gb_server)
self.btn_aclxmlrpc.setObjectName("btn_aclxmlrpc")
self.gridLayout_2.addWidget(self.btn_aclxmlrpc, 4, 1, 1, 1)
self.cbx_xmlrpc = QtWidgets.QCheckBox(self.gb_server)
self.cbx_xmlrpc.setObjectName("cbx_xmlrpc")
self.gridLayout_2.addWidget(self.cbx_xmlrpc, 4, 0, 1, 1)
self.verticalLayout.addWidget(self.gb_server)
self.btn_box = QtWidgets.QDialogButtonBox(diag_options)
self.btn_box.setOrientation(QtCore.Qt.Horizontal)
self.btn_box.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel|QtWidgets.QDialogButtonBox.Ok)
self.btn_box.setObjectName("btn_box")
self.verticalLayout.addWidget(self.btn_box)
self.retranslateUi(diag_options)
self.btn_box.accepted.connect(diag_options.accept)
self.btn_box.rejected.connect(diag_options.reject)
QtCore.QMetaObject.connectSlotsByName(diag_options)
def retranslateUi(self, diag_options):
_translate = QtCore.QCoreApplication.translate
diag_options.setWindowTitle(_translate("diag_options", "RevPi Python PLC Options"))
self.gb_plc.setTitle(_translate("diag_options", "Start / Stop behavior of PLC program"))
self.lbl_replace_io.setText(_translate("diag_options", "Replace IO file:"))
self.cbx_zeroonexit.setText(_translate("diag_options", "... sucessfully without error"))
self.cbx_zeroonerror.setText(_translate("diag_options", "... after exception and errors"))
self.cbx_autostart.setText(_translate("diag_options", "Start PLC program automatically"))
self.cbx_autoreload.setText(_translate("diag_options", "Restart PLC program after exit or crash"))
self.lbl_plc_zero.setText(_translate("diag_options", "Set process image to NULL if program terminates..."))
self.cbb_replace_io.setItemText(0, _translate("diag_options", "Do not use replace io file"))
self.cbb_replace_io.setItemText(1, _translate("diag_options", "Use static file from RevPiPyLoad"))
self.cbb_replace_io.setItemText(2, _translate("diag_options", "Use dynamic file from work directory"))
self.cbb_replace_io.setItemText(3, _translate("diag_options", "Give own path and filename"))
self.lbl_plc_delay.setText(_translate("diag_options", "Restart delay in seconds:"))
self.gb_server.setTitle(_translate("diag_options", "RevPiPyLoad server services"))
self.btn_aclplcslave.setText(_translate("diag_options", "Edit ACL"))
self.cbx_mqtt.setText(_translate("diag_options", "MQTT process image publisher"))
self.cbx_plcslave.setText(_translate("diag_options", "Start RevPi piControl server"))
self.lbl_slave_status.setText(_translate("diag_options", "status"))
self.lbl_lbl_slave_status.setText(_translate("diag_options", "piControl server is:"))
self.lbl_mqtt_status.setText(_translate("diag_options", "status"))
self.lbl_lbl_mqtt_status.setText(_translate("diag_options", "MQTT publish service is:"))
self.btn_mqtt.setText(_translate("diag_options", "Settings"))
self.btn_aclxmlrpc.setText(_translate("diag_options", "Edit ACL"))
self.cbx_xmlrpc.setText(_translate("diag_options", "Activate XML-RPC for RevPiPyControl"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
diag_options = QtWidgets.QDialog()
ui = Ui_diag_options()
ui.setupUi(diag_options)
diag_options.show()
sys.exit(app.exec_())

View File

@@ -0,0 +1,126 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'revpiplclist.ui'
#
# Created by: PyQt5 UI code generator 5.10.1
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_diag_connections(object):
def setupUi(self, diag_connections):
diag_connections.setObjectName("diag_connections")
diag_connections.resize(520, 508)
self.gridLayout = QtWidgets.QGridLayout(diag_connections)
self.gridLayout.setObjectName("gridLayout")
self.tre_connections = QtWidgets.QTreeWidget(diag_connections)
self.tre_connections.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers)
self.tre_connections.setObjectName("tre_connections")
self.gridLayout.addWidget(self.tre_connections, 0, 0, 1, 1)
self.vl_edit = QtWidgets.QVBoxLayout()
self.vl_edit.setObjectName("vl_edit")
spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.vl_edit.addItem(spacerItem)
self.btn_up = QtWidgets.QPushButton(diag_connections)
self.btn_up.setText("")
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap(":/action/ico/arrow-up.ico"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.btn_up.setIcon(icon)
self.btn_up.setObjectName("btn_up")
self.vl_edit.addWidget(self.btn_up)
self.btn_down = QtWidgets.QPushButton(diag_connections)
self.btn_down.setText("")
icon1 = QtGui.QIcon()
icon1.addPixmap(QtGui.QPixmap(":/action/ico/arrow-down.ico"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.btn_down.setIcon(icon1)
self.btn_down.setObjectName("btn_down")
self.vl_edit.addWidget(self.btn_down)
self.btn_delete = QtWidgets.QPushButton(diag_connections)
self.btn_delete.setText("")
icon2 = QtGui.QIcon()
icon2.addPixmap(QtGui.QPixmap(":/action/ico/edit-delete.ico"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.btn_delete.setIcon(icon2)
self.btn_delete.setObjectName("btn_delete")
self.vl_edit.addWidget(self.btn_delete)
self.btn_add = QtWidgets.QPushButton(diag_connections)
self.btn_add.setText("")
icon3 = QtGui.QIcon()
icon3.addPixmap(QtGui.QPixmap(":/action/ico/edit-add.ico"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.btn_add.setIcon(icon3)
self.btn_add.setObjectName("btn_add")
self.vl_edit.addWidget(self.btn_add)
self.gridLayout.addLayout(self.vl_edit, 0, 1, 1, 1)
self.gb_properties = QtWidgets.QGroupBox(diag_connections)
self.gb_properties.setObjectName("gb_properties")
self.formLayout = QtWidgets.QFormLayout(self.gb_properties)
self.formLayout.setObjectName("formLayout")
self.lbl_name = QtWidgets.QLabel(self.gb_properties)
self.lbl_name.setObjectName("lbl_name")
self.formLayout.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.lbl_name)
self.lbl_folder = QtWidgets.QLabel(self.gb_properties)
self.lbl_folder.setObjectName("lbl_folder")
self.formLayout.setWidget(3, QtWidgets.QFormLayout.LabelRole, self.lbl_folder)
self.lbl_address = QtWidgets.QLabel(self.gb_properties)
self.lbl_address.setObjectName("lbl_address")
self.formLayout.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.lbl_address)
self.lbl_port = QtWidgets.QLabel(self.gb_properties)
self.lbl_port.setObjectName("lbl_port")
self.formLayout.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.lbl_port)
self.txt_name = QtWidgets.QLineEdit(self.gb_properties)
self.txt_name.setObjectName("txt_name")
self.formLayout.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.txt_name)
self.txt_address = QtWidgets.QLineEdit(self.gb_properties)
self.txt_address.setObjectName("txt_address")
self.formLayout.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.txt_address)
self.sbx_port = QtWidgets.QSpinBox(self.gb_properties)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.sbx_port.sizePolicy().hasHeightForWidth())
self.sbx_port.setSizePolicy(sizePolicy)
self.sbx_port.setMinimum(1)
self.sbx_port.setMaximum(65535)
self.sbx_port.setProperty("value", 55123)
self.sbx_port.setObjectName("sbx_port")
self.formLayout.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.sbx_port)
self.cbb_folder = QtWidgets.QComboBox(self.gb_properties)
self.cbb_folder.setEditable(True)
self.cbb_folder.setObjectName("cbb_folder")
self.cbb_folder.addItem("")
self.cbb_folder.setItemText(0, "")
self.formLayout.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.cbb_folder)
self.gridLayout.addWidget(self.gb_properties, 1, 0, 1, 2)
self.btn_box = QtWidgets.QDialogButtonBox(diag_connections)
self.btn_box.setOrientation(QtCore.Qt.Horizontal)
self.btn_box.setStandardButtons(QtWidgets.QDialogButtonBox.Discard|QtWidgets.QDialogButtonBox.Save)
self.btn_box.setObjectName("btn_box")
self.gridLayout.addWidget(self.btn_box, 2, 0, 1, 2)
self.retranslateUi(diag_connections)
self.btn_box.accepted.connect(diag_connections.accept)
self.btn_box.rejected.connect(diag_connections.reject)
QtCore.QMetaObject.connectSlotsByName(diag_connections)
def retranslateUi(self, diag_connections):
_translate = QtCore.QCoreApplication.translate
diag_connections.setWindowTitle(_translate("diag_connections", "Revolution Pi connections"))
self.tre_connections.headerItem().setText(0, _translate("diag_connections", "Connection name"))
self.tre_connections.headerItem().setText(1, _translate("diag_connections", "Address"))
self.gb_properties.setTitle(_translate("diag_connections", "Connection properties"))
self.lbl_name.setText(_translate("diag_connections", "Display name:"))
self.lbl_folder.setText(_translate("diag_connections", "Sub folder:"))
self.lbl_address.setText(_translate("diag_connections", "Address (DNS/IP):"))
self.lbl_port.setText(_translate("diag_connections", "Port (Default {0}):"))
from . import ressources_rc
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
diag_connections = QtWidgets.QDialog()
ui = Ui_diag_connections()
ui.setupUi(diag_connections)
diag_connections.show()
sys.exit(app.exec_())

View File

@@ -0,0 +1,152 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'revpiprogram.ui'
#
# Created by: PyQt5 UI code generator 5.10.1
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_diag_program(object):
def setupUi(self, diag_program):
diag_program.setObjectName("diag_program")
diag_program.resize(488, 500)
self.verticalLayout = QtWidgets.QVBoxLayout(diag_program)
self.verticalLayout.setObjectName("verticalLayout")
self.gb_plc = QtWidgets.QGroupBox(diag_program)
self.gb_plc.setObjectName("gb_plc")
self.gridLayout = QtWidgets.QGridLayout(self.gb_plc)
self.gridLayout.setObjectName("gridLayout")
self.rbn_pythonversion_2 = QtWidgets.QRadioButton(self.gb_plc)
self.rbn_pythonversion_2.setObjectName("rbn_pythonversion_2")
self.gridLayout.addWidget(self.rbn_pythonversion_2, 3, 1, 1, 1)
self.txt_plcarguments = QtWidgets.QLineEdit(self.gb_plc)
self.txt_plcarguments.setObjectName("txt_plcarguments")
self.gridLayout.addWidget(self.txt_plcarguments, 2, 1, 1, 2)
self.rbn_pythonversion_3 = QtWidgets.QRadioButton(self.gb_plc)
self.rbn_pythonversion_3.setObjectName("rbn_pythonversion_3")
self.gridLayout.addWidget(self.rbn_pythonversion_3, 3, 2, 1, 1)
self.lbl_plcprogram = QtWidgets.QLabel(self.gb_plc)
self.lbl_plcprogram.setObjectName("lbl_plcprogram")
self.gridLayout.addWidget(self.lbl_plcprogram, 0, 0, 1, 3)
self.cbx_plcworkdir_set_uid = QtWidgets.QCheckBox(self.gb_plc)
self.cbx_plcworkdir_set_uid.setObjectName("cbx_plcworkdir_set_uid")
self.gridLayout.addWidget(self.cbx_plcworkdir_set_uid, 4, 0, 1, 3)
self.cbb_plcprogram = QtWidgets.QComboBox(self.gb_plc)
self.cbb_plcprogram.setObjectName("cbb_plcprogram")
self.gridLayout.addWidget(self.cbb_plcprogram, 1, 0, 1, 3)
self.lbl_pythonversion = QtWidgets.QLabel(self.gb_plc)
self.lbl_pythonversion.setObjectName("lbl_pythonversion")
self.gridLayout.addWidget(self.lbl_pythonversion, 3, 0, 1, 1)
self.lbl_plcarguments = QtWidgets.QLabel(self.gb_plc)
self.lbl_plcarguments.setObjectName("lbl_plcarguments")
self.gridLayout.addWidget(self.lbl_plcarguments, 2, 0, 1, 1)
self.verticalLayout.addWidget(self.gb_plc)
self.cb_transfair = QtWidgets.QGroupBox(diag_program)
self.cb_transfair.setObjectName("cb_transfair")
self.gridLayout_2 = QtWidgets.QGridLayout(self.cb_transfair)
self.gridLayout_2.setObjectName("gridLayout_2")
self.cbb_format = QtWidgets.QComboBox(self.cb_transfair)
self.cbb_format.setObjectName("cbb_format")
self.cbb_format.addItem("")
self.cbb_format.addItem("")
self.cbb_format.addItem("")
self.cbb_format.addItem("")
self.gridLayout_2.addWidget(self.cbb_format, 0, 1, 1, 1)
self.btn_program_upload = QtWidgets.QPushButton(self.cb_transfair)
self.btn_program_upload.setObjectName("btn_program_upload")
self.gridLayout_2.addWidget(self.btn_program_upload, 3, 1, 1, 1)
self.btn_program_download = QtWidgets.QPushButton(self.cb_transfair)
self.btn_program_download.setObjectName("btn_program_download")
self.gridLayout_2.addWidget(self.btn_program_download, 3, 0, 1, 1)
self.lbl_format = QtWidgets.QLabel(self.cb_transfair)
self.lbl_format.setObjectName("lbl_format")
self.gridLayout_2.addWidget(self.lbl_format, 0, 0, 1, 1)
self.cbx_pictory = QtWidgets.QCheckBox(self.cb_transfair)
self.cbx_pictory.setObjectName("cbx_pictory")
self.gridLayout_2.addWidget(self.cbx_pictory, 1, 0, 1, 2)
self.cbx_clear = QtWidgets.QCheckBox(self.cb_transfair)
self.cbx_clear.setObjectName("cbx_clear")
self.gridLayout_2.addWidget(self.cbx_clear, 2, 0, 1, 2)
self.verticalLayout.addWidget(self.cb_transfair)
self.gb_control = QtWidgets.QGroupBox(diag_program)
self.gb_control.setObjectName("gb_control")
self.gridLayout_3 = QtWidgets.QGridLayout(self.gb_control)
self.gridLayout_3.setObjectName("gridLayout_3")
self.btn_procimg_download = QtWidgets.QPushButton(self.gb_control)
self.btn_procimg_download.setObjectName("btn_procimg_download")
self.gridLayout_3.addWidget(self.btn_procimg_download, 1, 1, 1, 1)
self.btn_pictory_download = QtWidgets.QPushButton(self.gb_control)
self.btn_pictory_download.setObjectName("btn_pictory_download")
self.gridLayout_3.addWidget(self.btn_pictory_download, 0, 1, 1, 1)
self.btn_pictory_upload = QtWidgets.QPushButton(self.gb_control)
self.btn_pictory_upload.setObjectName("btn_pictory_upload")
self.gridLayout_3.addWidget(self.btn_pictory_upload, 0, 2, 1, 1)
self.lbl_pictory = QtWidgets.QLabel(self.gb_control)
self.lbl_pictory.setObjectName("lbl_pictory")
self.gridLayout_3.addWidget(self.lbl_pictory, 0, 0, 1, 1)
self.lbl_procimg = QtWidgets.QLabel(self.gb_control)
self.lbl_procimg.setObjectName("lbl_procimg")
self.gridLayout_3.addWidget(self.lbl_procimg, 1, 0, 1, 1)
self.verticalLayout.addWidget(self.gb_control)
self.btn_box = QtWidgets.QDialogButtonBox(diag_program)
self.btn_box.setOrientation(QtCore.Qt.Horizontal)
self.btn_box.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel|QtWidgets.QDialogButtonBox.Ok)
self.btn_box.setObjectName("btn_box")
self.verticalLayout.addWidget(self.btn_box)
self.retranslateUi(diag_program)
self.btn_box.accepted.connect(diag_program.accept)
self.btn_box.rejected.connect(diag_program.reject)
QtCore.QMetaObject.connectSlotsByName(diag_program)
diag_program.setTabOrder(self.cbb_plcprogram, self.txt_plcarguments)
diag_program.setTabOrder(self.txt_plcarguments, self.rbn_pythonversion_2)
diag_program.setTabOrder(self.rbn_pythonversion_2, self.rbn_pythonversion_3)
diag_program.setTabOrder(self.rbn_pythonversion_3, self.cbx_plcworkdir_set_uid)
diag_program.setTabOrder(self.cbx_plcworkdir_set_uid, self.cbb_format)
diag_program.setTabOrder(self.cbb_format, self.cbx_pictory)
diag_program.setTabOrder(self.cbx_pictory, self.cbx_clear)
diag_program.setTabOrder(self.cbx_clear, self.btn_program_download)
diag_program.setTabOrder(self.btn_program_download, self.btn_program_upload)
diag_program.setTabOrder(self.btn_program_upload, self.btn_pictory_download)
diag_program.setTabOrder(self.btn_pictory_download, self.btn_pictory_upload)
diag_program.setTabOrder(self.btn_pictory_upload, self.btn_procimg_download)
def retranslateUi(self, diag_program):
_translate = QtCore.QCoreApplication.translate
diag_program.setWindowTitle(_translate("diag_program", "PLC program"))
self.gb_plc.setTitle(_translate("diag_program", "PLC program"))
self.rbn_pythonversion_2.setText(_translate("diag_program", "Python 2"))
self.rbn_pythonversion_3.setText(_translate("diag_program", "Python 3"))
self.lbl_plcprogram.setText(_translate("diag_program", "Python PLC start program:"))
self.cbx_plcworkdir_set_uid.setText(_translate("diag_program", "Set write permissions for plc program to workdirectory"))
self.lbl_pythonversion.setText(_translate("diag_program", "Python version:"))
self.lbl_plcarguments.setText(_translate("diag_program", "Program arguments:"))
self.cb_transfair.setTitle(_translate("diag_program", "Transfair PLC program"))
self.cbb_format.setItemText(0, _translate("diag_program", "Files"))
self.cbb_format.setItemText(1, _translate("diag_program", "Folder"))
self.cbb_format.setItemText(2, _translate("diag_program", "ZIP archive"))
self.cbb_format.setItemText(3, _translate("diag_program", "TGZ archive"))
self.btn_program_upload.setText(_translate("diag_program", "Upload"))
self.btn_program_download.setText(_translate("diag_program", "Download"))
self.lbl_format.setText(_translate("diag_program", "Transfair format:"))
self.cbx_pictory.setText(_translate("diag_program", "Including piCtory configuration"))
self.cbx_clear.setText(_translate("diag_program", "Remove all files on Revolution Pi before upload"))
self.gb_control.setTitle(_translate("diag_program", "Control files"))
self.btn_procimg_download.setText(_translate("diag_program", "Download"))
self.btn_pictory_download.setText(_translate("diag_program", "Download"))
self.btn_pictory_upload.setText(_translate("diag_program", "Upload"))
self.lbl_pictory.setText(_translate("diag_program", "piCtory configuraiton"))
self.lbl_procimg.setText(_translate("diag_program", "Process image from piControl0"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
diag_program = QtWidgets.QDialog()
ui = Ui_diag_program()
ui.setupUi(diag_program)
diag_program.show()
sys.exit(app.exec_())