Renamed version of revpipycontrol written with Qt framework
160
include/ui/aclmanager_ui.py
Normal 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_())
|
||||
|
||||
93
include/ui/avahisearch_ui.py
Normal 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_())
|
||||
|
||||
83
include/ui/debugcontrol_ui.py
Normal 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
@@ -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_())
|
||||
|
||||
155
include/ui/mqttmanager_ui.py
Normal 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
167
include/ui/revpicommander_ui.py
Normal 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_())
|
||||
|
||||
88
include/ui/revpidevelop_ui.py
Normal 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
@@ -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_())
|
||||
|
||||
96
include/ui/revpilogfile_ui.py
Normal 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_())
|
||||
|
||||
144
include/ui/revpioption_ui.py
Normal 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_())
|
||||
|
||||
126
include/ui/revpiplclist_ui.py
Normal 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_())
|
||||
|
||||
152
include/ui/revpiprogram_ui.py
Normal 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_())
|
||||
|
||||
258
include/ui_dev/aclmanager.ui
Normal file
@@ -0,0 +1,258 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>diag_aclmanager</class>
|
||||
<widget class="QDialog" name="diag_aclmanager">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>454</width>
|
||||
<height>572</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>IP access control list</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="gb_acls">
|
||||
<property name="title">
|
||||
<string>Existing ACLs</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||
<item>
|
||||
<widget class="QTableWidget" name="tb_acls">
|
||||
<property name="editTriggers">
|
||||
<set>QAbstractItemView::NoEditTriggers</set>
|
||||
</property>
|
||||
<property name="tabKeyNavigation">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="selectionMode">
|
||||
<enum>QAbstractItemView::ExtendedSelection</enum>
|
||||
</property>
|
||||
<property name="selectionBehavior">
|
||||
<enum>QAbstractItemView::SelectRows</enum>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="cornerButtonEnabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<attribute name="horizontalHeaderHighlightSections">
|
||||
<bool>false</bool>
|
||||
</attribute>
|
||||
<attribute name="horizontalHeaderStretchLastSection">
|
||||
<bool>true</bool>
|
||||
</attribute>
|
||||
<attribute name="verticalHeaderVisible">
|
||||
<bool>false</bool>
|
||||
</attribute>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>IP Address</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Access Level</string>
|
||||
</property>
|
||||
</column>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="hl_acls">
|
||||
<item>
|
||||
<widget class="QPushButton" name="btn_edit">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>&Edit</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="btn_remove">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>&Remove</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="gb_edit">
|
||||
<property name="title">
|
||||
<string>Add / Edit access entry</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_2">
|
||||
<item row="1" column="0">
|
||||
<widget class="QPushButton" name="btn_clear">
|
||||
<property name="text">
|
||||
<string>Clear fields</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QPushButton" name="btn_add">
|
||||
<property name="text">
|
||||
<string>&Save entry</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0" colspan="2">
|
||||
<layout class="QFormLayout" name="fl_edit">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="lbl_ip">
|
||||
<property name="text">
|
||||
<string>IP address:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="lbl_level">
|
||||
<property name="text">
|
||||
<string>Access level:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QComboBox" name="cbb_level"/>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<layout class="QHBoxLayout" name="hl_ip">
|
||||
<item>
|
||||
<widget class="QLineEdit" name="txt_ip_a">
|
||||
<property name="maxLength">
|
||||
<number>3</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="lbl_ip_a">
|
||||
<property name="text">
|
||||
<string>.</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="txt_ip_b">
|
||||
<property name="maxLength">
|
||||
<number>3</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="lbl_ip_b">
|
||||
<property name="text">
|
||||
<string>.</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="txt_ip_c">
|
||||
<property name="maxLength">
|
||||
<number>3</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="lbl_ip_c">
|
||||
<property name="text">
|
||||
<string>.</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="txt_ip_d">
|
||||
<property name="maxLength">
|
||||
<number>3</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="lbl_level_info">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QDialogButtonBox" name="btn_box">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="standardButtons">
|
||||
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<tabstops>
|
||||
<tabstop>tb_acls</tabstop>
|
||||
<tabstop>btn_edit</tabstop>
|
||||
<tabstop>btn_remove</tabstop>
|
||||
<tabstop>txt_ip_a</tabstop>
|
||||
<tabstop>txt_ip_b</tabstop>
|
||||
<tabstop>txt_ip_c</tabstop>
|
||||
<tabstop>txt_ip_d</tabstop>
|
||||
<tabstop>cbb_level</tabstop>
|
||||
</tabstops>
|
||||
<resources/>
|
||||
<connections>
|
||||
<connection>
|
||||
<sender>btn_box</sender>
|
||||
<signal>accepted()</signal>
|
||||
<receiver>diag_aclmanager</receiver>
|
||||
<slot>accept()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>247</x>
|
||||
<y>538</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>157</x>
|
||||
<y>274</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>btn_box</sender>
|
||||
<signal>rejected()</signal>
|
||||
<receiver>diag_aclmanager</receiver>
|
||||
<slot>reject()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>315</x>
|
||||
<y>538</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>286</x>
|
||||
<y>274</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
</connections>
|
||||
</ui>
|
||||
145
include/ui_dev/avahisearch.ui
Normal file
@@ -0,0 +1,145 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>diag_search</class>
|
||||
<widget class="QDialog" name="diag_search">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>480</width>
|
||||
<height>360</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Search Revolution Pi devices</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0" colspan="2">
|
||||
<layout class="QHBoxLayout" name="hl_header">
|
||||
<item>
|
||||
<widget class="QLabel" name="lbl_search">
|
||||
<property name="text">
|
||||
<string>Searching for Revolution Pi devices in your network...</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="btn_restart">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Restart search</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="ressources.qrc">
|
||||
<normaloff>:/action/ico/reload.ico</normaloff>:/action/ico/reload.ico</iconset>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>24</width>
|
||||
<height>24</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="2">
|
||||
<widget class="QTableWidget" name="tb_revpi">
|
||||
<property name="editTriggers">
|
||||
<set>QAbstractItemView::NoEditTriggers</set>
|
||||
</property>
|
||||
<property name="tabKeyNavigation">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="selectionMode">
|
||||
<enum>QAbstractItemView::SingleSelection</enum>
|
||||
</property>
|
||||
<property name="selectionBehavior">
|
||||
<enum>QAbstractItemView::SelectRows</enum>
|
||||
</property>
|
||||
<property name="sortingEnabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="cornerButtonEnabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<attribute name="horizontalHeaderHighlightSections">
|
||||
<bool>false</bool>
|
||||
</attribute>
|
||||
<attribute name="horizontalHeaderStretchLastSection">
|
||||
<bool>true</bool>
|
||||
</attribute>
|
||||
<attribute name="verticalHeaderVisible">
|
||||
<bool>false</bool>
|
||||
</attribute>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Zero conf Name</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>IP address</string>
|
||||
</property>
|
||||
</column>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QPushButton" name="btn_connect">
|
||||
<property name="text">
|
||||
<string>&Connect to Revolution Pi</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QPushButton" name="btn_save">
|
||||
<property name="text">
|
||||
<string>&Save connection</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0" colspan="2">
|
||||
<widget class="QDialogButtonBox" name="btn_box">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="standardButtons">
|
||||
<set>QDialogButtonBox::Close</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources>
|
||||
<include location="ressources.qrc"/>
|
||||
</resources>
|
||||
<connections>
|
||||
<connection>
|
||||
<sender>btn_box</sender>
|
||||
<signal>rejected()</signal>
|
||||
<receiver>diag_search</receiver>
|
||||
<slot>reject()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>239</x>
|
||||
<y>338</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>239</x>
|
||||
<y>179</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
</connections>
|
||||
</ui>
|
||||
126
include/ui_dev/debugcontrol.ui
Normal file
@@ -0,0 +1,126 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>wid_debugcontrol</class>
|
||||
<widget class="QWidget" name="wid_debugcontrol">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>402</width>
|
||||
<height>214</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item row="0" column="0">
|
||||
<widget class="QGroupBox" name="gb_devices">
|
||||
<property name="title">
|
||||
<string>Revolution Pi devices</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="vl_devices"/>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QCheckBox" name="cbx_stay_on_top">
|
||||
<property name="text">
|
||||
<string>Open to stay on top</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1" rowspan="2">
|
||||
<widget class="QGroupBox" name="gb_control">
|
||||
<property name="title">
|
||||
<string>IO Control</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="QPushButton" name="btn_read_io">
|
||||
<property name="toolTip">
|
||||
<string>Read all IO values and discard local changes (F4)</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Read &all IO values</string>
|
||||
</property>
|
||||
<property name="shortcut">
|
||||
<string>F4</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="btn_refresh_io">
|
||||
<property name="toolTip">
|
||||
<string>Refresh all IO values which are locally not changed (F5)</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>&Refresh unchanged IOs</string>
|
||||
</property>
|
||||
<property name="shortcut">
|
||||
<string>F5</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="btn_write_o">
|
||||
<property name="toolTip">
|
||||
<string>Write locally changed output values to process image (F6)</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>&Write changed outputs</string>
|
||||
</property>
|
||||
<property name="shortcut">
|
||||
<string>F6</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="cbx_refresh">
|
||||
<property name="text">
|
||||
<string>&Auto refresh values</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="cbx_write">
|
||||
<property name="text">
|
||||
<string>and write outputs</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>1</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
110
include/ui_dev/debugios.ui
Normal file
@@ -0,0 +1,110 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>win_debugios</class>
|
||||
<widget class="QMainWindow" name="win_debugios">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>434</width>
|
||||
<height>343</height>
|
||||
</rect>
|
||||
</property>
|
||||
<widget class="QWidget" name="centralwidget">
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="gb_io">
|
||||
<property name="title">
|
||||
<string>{0}: Inputs | Outputs</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QSplitter" name="splitter">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="childrenCollapsible">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<widget class="QScrollArea" name="sca_inp">
|
||||
<property name="lineWidth">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="widgetResizable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<widget class="QWidget" name="saw_inp">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>201</width>
|
||||
<height>275</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QFormLayout" name="form_inp">
|
||||
<property name="labelAlignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>6</number>
|
||||
</property>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QScrollArea" name="sca_out">
|
||||
<property name="lineWidth">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="widgetResizable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<widget class="QWidget" name="saw_out">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>201</width>
|
||||
<height>275</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QFormLayout" name="form_out">
|
||||
<property name="labelAlignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>6</number>
|
||||
</property>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QStatusBar" name="stat_bar"/>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
BIN
include/ui_dev/ico/arrow-down.ico
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
BIN
include/ui_dev/ico/arrow-up.ico
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
BIN
include/ui_dev/ico/cpu.ico
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
BIN
include/ui_dev/ico/edit-add.ico
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
BIN
include/ui_dev/ico/edit-delete.ico
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
BIN
include/ui_dev/ico/file-else.ico
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
BIN
include/ui_dev/ico/file-python.ico
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
BIN
include/ui_dev/ico/folder-open.ico
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
BIN
include/ui_dev/ico/folder.ico
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
BIN
include/ui_dev/ico/refresh.ico
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
BIN
include/ui_dev/ico/reload.ico
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
BIN
include/ui_dev/ico/revpipycontrol.ico
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
257
include/ui_dev/mqttmanager.ui
Normal file
@@ -0,0 +1,257 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>diag_mqtt</class>
|
||||
<widget class="QDialog" name="diag_mqtt">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>492</width>
|
||||
<height>704</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>MQTT settings</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="gb_basetopic">
|
||||
<property name="title">
|
||||
<string>Base topic</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="1" column="0" colspan="4">
|
||||
<widget class="QLabel" name="lbl_basetopic_description">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>450</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string><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></string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="lbl_basetopic">
|
||||
<property name="text">
|
||||
<string>Base topic:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QLineEdit" name="txt_basetopic"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="gb_send_on_event">
|
||||
<property name="title">
|
||||
<string>Publish settings</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_2">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="lbl_sendinterval">
|
||||
<property name="text">
|
||||
<string>Publish all exported values every n seconds:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QSpinBox" name="sbx_sendinterval">
|
||||
<property name="minimum">
|
||||
<number>1</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>21600</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="2">
|
||||
<widget class="QLabel" name="lbl_topic_io">
|
||||
<property name="text">
|
||||
<string>Topic: [basetopic]/io/[ioname]</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0" colspan="2">
|
||||
<widget class="QCheckBox" name="cbx_send_on_event">
|
||||
<property name="text">
|
||||
<string>Send exported values immediately on value change</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0" colspan="2">
|
||||
<widget class="QLabel" name="lbl_topic_event">
|
||||
<property name="text">
|
||||
<string>Topic: [basetopic]/event/[ioname]</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="gb_write_outputs">
|
||||
<property name="title">
|
||||
<string>Set outputs</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_3">
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="lbl_write_outputs">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>450</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>The Revolution Pi will subscribe a topic on which your mqtt client can publish messages with the new io value as payload.
|
||||
|
||||
Publish values with topic: [basetopic]/set/[outputname]</string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QCheckBox" name="cbx_write_outputs">
|
||||
<property name="text">
|
||||
<string>Allow MQTT to to set outputs on Revolution Pi</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="gb_broker">
|
||||
<property name="title">
|
||||
<string>Brocker settings</string>
|
||||
</property>
|
||||
<layout class="QFormLayout" name="formLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="lbl_broker_address">
|
||||
<property name="text">
|
||||
<string>Broker address:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QLineEdit" name="txt_broker_address"/>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="lbl_port">
|
||||
<property name="text">
|
||||
<string>Broker port:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="lbl_username">
|
||||
<property name="text">
|
||||
<string>User name:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="lbl_password">
|
||||
<property name="text">
|
||||
<string>Password:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QLabel" name="lbl_client_id">
|
||||
<property name="text">
|
||||
<string>Client ID:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QLineEdit" name="txt_username"/>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QLineEdit" name="txt_password"/>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="QLineEdit" name="txt_client_id"/>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QSpinBox" name="sbx_port">
|
||||
<property name="minimum">
|
||||
<number>1</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>65535</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="cbx_tls_set">
|
||||
<property name="text">
|
||||
<string>Use TLS</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QDialogButtonBox" name="btn_box">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="standardButtons">
|
||||
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections>
|
||||
<connection>
|
||||
<sender>btn_box</sender>
|
||||
<signal>accepted()</signal>
|
||||
<receiver>diag_mqtt</receiver>
|
||||
<slot>accept()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>248</x>
|
||||
<y>254</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>157</x>
|
||||
<y>274</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>btn_box</sender>
|
||||
<signal>rejected()</signal>
|
||||
<receiver>diag_mqtt</receiver>
|
||||
<slot>reject()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>316</x>
|
||||
<y>260</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>286</x>
|
||||
<y>274</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
</connections>
|
||||
</ui>
|
||||
20
include/ui_dev/ressources.qrc
Normal file
@@ -0,0 +1,20 @@
|
||||
<RCC>
|
||||
<qresource prefix="main">
|
||||
<file>ico/cpu.ico</file>
|
||||
<file>ico/folder.ico</file>
|
||||
<file>ico/revpipycontrol.ico</file>
|
||||
</qresource>
|
||||
<qresource prefix="file">
|
||||
<file>ico/file-else.ico</file>
|
||||
<file>ico/file-python.ico</file>
|
||||
</qresource>
|
||||
<qresource prefix="action">
|
||||
<file>ico/folder-open.ico</file>
|
||||
<file>ico/refresh.ico</file>
|
||||
<file>ico/reload.ico</file>
|
||||
<file>ico/arrow-down.ico</file>
|
||||
<file>ico/arrow-up.ico</file>
|
||||
<file>ico/edit-add.ico</file>
|
||||
<file>ico/edit-delete.ico</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
264
include/ui_dev/revpicommander.ui
Normal file
@@ -0,0 +1,264 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<author>Sven Sager</author>
|
||||
<class>win_revpicommander</class>
|
||||
<widget class="QMainWindow" name="win_revpicommander">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>318</width>
|
||||
<height>273</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>RevPi Python PLC Commander</string>
|
||||
</property>
|
||||
<property name="windowIcon">
|
||||
<iconset resource="ressources.qrc">
|
||||
<normaloff>:/main/ico/revpipycontrol.ico</normaloff>:/main/ico/revpipycontrol.ico</iconset>
|
||||
</property>
|
||||
<widget class="QWidget" name="centralwidget">
|
||||
<layout class="QGridLayout" name="gl">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLineEdit" name="txt_connection">
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QPushButton" name="btn_plc_start">
|
||||
<property name="text">
|
||||
<string>PLC &start</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QPushButton" name="btn_plc_stop">
|
||||
<property name="text">
|
||||
<string>PLC s&top</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QPushButton" name="btn_plc_restart">
|
||||
<property name="text">
|
||||
<string>PLC restart</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QPushButton" name="btn_plc_logs">
|
||||
<property name="text">
|
||||
<string>PLC &logs</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0">
|
||||
<widget class="QLineEdit" name="txt_status">
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="0">
|
||||
<widget class="QPushButton" name="btn_plc_debug">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>300</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>PLC watch &mode</string>
|
||||
</property>
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QMenuBar" name="menubar">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>318</width>
|
||||
<height>22</height>
|
||||
</rect>
|
||||
</property>
|
||||
<widget class="QMenu" name="men_file">
|
||||
<property name="title">
|
||||
<string>&File</string>
|
||||
</property>
|
||||
<addaction name="act_connections"/>
|
||||
<addaction name="act_search"/>
|
||||
<addaction name="separator"/>
|
||||
<addaction name="act_simulator"/>
|
||||
<addaction name="separator"/>
|
||||
<addaction name="act_quit"/>
|
||||
</widget>
|
||||
<widget class="QMenu" name="men_help">
|
||||
<property name="title">
|
||||
<string>&Help</string>
|
||||
</property>
|
||||
<addaction name="act_webpage"/>
|
||||
<addaction name="separator"/>
|
||||
<addaction name="act_info"/>
|
||||
</widget>
|
||||
<widget class="QMenu" name="men_plc">
|
||||
<property name="title">
|
||||
<string>&PLC</string>
|
||||
</property>
|
||||
<addaction name="act_logs"/>
|
||||
<addaction name="act_options"/>
|
||||
<addaction name="act_program"/>
|
||||
<addaction name="act_developer"/>
|
||||
<addaction name="separator"/>
|
||||
<addaction name="act_pictory"/>
|
||||
<addaction name="act_reset"/>
|
||||
<addaction name="separator"/>
|
||||
<addaction name="act_disconnect"/>
|
||||
</widget>
|
||||
<widget class="QMenu" name="men_connections">
|
||||
<property name="title">
|
||||
<string>&Connections</string>
|
||||
</property>
|
||||
</widget>
|
||||
<addaction name="men_file"/>
|
||||
<addaction name="men_plc"/>
|
||||
<addaction name="men_connections"/>
|
||||
<addaction name="men_help"/>
|
||||
</widget>
|
||||
<widget class="QStatusBar" name="statusbar">
|
||||
<property name="sizeGripEnabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<action name="act_connections">
|
||||
<property name="text">
|
||||
<string>&Connections...</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="act_search">
|
||||
<property name="text">
|
||||
<string>&Search Revolution Pi...</string>
|
||||
</property>
|
||||
<property name="shortcut">
|
||||
<string>Ctrl+F</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="act_quit">
|
||||
<property name="text">
|
||||
<string>&Quit</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="act_webpage">
|
||||
<property name="text">
|
||||
<string>Visit &webpage...</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="act_info">
|
||||
<property name="text">
|
||||
<string>&Info...</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="act_logs">
|
||||
<property name="text">
|
||||
<string>PLC &logs...</string>
|
||||
</property>
|
||||
<property name="shortcut">
|
||||
<string>F3</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="act_options">
|
||||
<property name="text">
|
||||
<string>PLC &options...</string>
|
||||
</property>
|
||||
<property name="shortcut">
|
||||
<string>Ctrl+O</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="act_program">
|
||||
<property name="text">
|
||||
<string>PLC progra&m...</string>
|
||||
</property>
|
||||
<property name="shortcut">
|
||||
<string>Ctrl+P</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="act_developer">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>PLC de&veloper...</string>
|
||||
</property>
|
||||
<property name="shortcut">
|
||||
<string>F9</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="act_pictory">
|
||||
<property name="text">
|
||||
<string>piCtory configuraiton...</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="act_disconnect">
|
||||
<property name="text">
|
||||
<string>&Disconnect</string>
|
||||
</property>
|
||||
<property name="shortcut">
|
||||
<string>Ctrl+X</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="act_reset">
|
||||
<property name="text">
|
||||
<string>Reset driver...</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="act_simulator">
|
||||
<property name="text">
|
||||
<string>Start local si&mulator...</string>
|
||||
</property>
|
||||
</action>
|
||||
</widget>
|
||||
<tabstops>
|
||||
<tabstop>btn_plc_start</tabstop>
|
||||
<tabstop>btn_plc_stop</tabstop>
|
||||
<tabstop>btn_plc_restart</tabstop>
|
||||
<tabstop>btn_plc_logs</tabstop>
|
||||
<tabstop>btn_plc_debug</tabstop>
|
||||
</tabstops>
|
||||
<resources>
|
||||
<include location="ressources.qrc"/>
|
||||
</resources>
|
||||
<connections>
|
||||
<connection>
|
||||
<sender>act_quit</sender>
|
||||
<signal>triggered()</signal>
|
||||
<receiver>win_revpicommander</receiver>
|
||||
<slot>close()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>-1</x>
|
||||
<y>-1</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>159</x>
|
||||
<y>136</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
</connections>
|
||||
</ui>
|
||||
136
include/ui_dev/revpidevelop.ui
Normal file
@@ -0,0 +1,136 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>wid_develop</class>
|
||||
<widget class="QWidget" name="wid_develop">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>374</width>
|
||||
<height>444</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item row="2" column="0">
|
||||
<widget class="QPushButton" name="btn_all">
|
||||
<property name="text">
|
||||
<string>Stop / Upload / Start</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QPushButton" name="btn_upload">
|
||||
<property name="text">
|
||||
<string>Just upload</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="2">
|
||||
<widget class="QTreeWidget" name="tree_files">
|
||||
<property name="editTriggers">
|
||||
<set>QAbstractItemView::NoEditTriggers</set>
|
||||
</property>
|
||||
<property name="selectionMode">
|
||||
<enum>QAbstractItemView::MultiSelection</enum>
|
||||
</property>
|
||||
<property name="selectionBehavior">
|
||||
<enum>QAbstractItemView::SelectRows</enum>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>24</width>
|
||||
<height>24</height>
|
||||
</size>
|
||||
</property>
|
||||
<attribute name="headerVisible">
|
||||
<bool>false</bool>
|
||||
</attribute>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string notr="true">1</string>
|
||||
</property>
|
||||
</column>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0" colspan="2">
|
||||
<widget class="QGroupBox" name="gb_select">
|
||||
<property name="title">
|
||||
<string>File watcher for PLC development</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_2" columnstretch="1,0,0">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="lbl_select">
|
||||
<property name="text">
|
||||
<string>Path to development root:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QPushButton" name="btn_select">
|
||||
<property name="toolTip">
|
||||
<string>Open developer root directory</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="ressources.qrc">
|
||||
<normaloff>:/action/ico/folder-open.ico</normaloff>:/action/ico/folder-open.ico</iconset>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>24</width>
|
||||
<height>24</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="2">
|
||||
<widget class="QLabel" name="lbl_path">
|
||||
<property name="text">
|
||||
<string>/</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="2">
|
||||
<widget class="QPushButton" name="btn_refresh">
|
||||
<property name="toolTip">
|
||||
<string>Reload file list</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="ressources.qrc">
|
||||
<normaloff>:/action/ico/refresh.ico</normaloff>:/action/ico/refresh.ico</iconset>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>24</width>
|
||||
<height>24</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources>
|
||||
<include location="ressources.qrc"/>
|
||||
</resources>
|
||||
<connections/>
|
||||
</ui>
|
||||
187
include/ui_dev/revpiinfo.ui
Normal file
@@ -0,0 +1,187 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>diag_revpiinfo</class>
|
||||
<widget class="QDialog" name="diag_revpiinfo">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>627</width>
|
||||
<height>398</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Dialog</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0" colspan="3">
|
||||
<widget class="QLabel" name="lbl_head">
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>20</pointsize>
|
||||
<weight>75</weight>
|
||||
<bold>true</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>RevPi Python PLC - Control</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="lbl_lbl_version_pyload">
|
||||
<property name="font">
|
||||
<font>
|
||||
<weight>75</weight>
|
||||
<bold>true</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>RevPiPyLoad version on RevPi:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="2" rowspan="4">
|
||||
<widget class="QListWidget" name="lst_files"/>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QLabel" name="lbl_version_pyload">
|
||||
<property name="font">
|
||||
<font>
|
||||
<weight>75</weight>
|
||||
<bold>true</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>0.0.0</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="0">
|
||||
<widget class="QLabel" name="lbl_link">
|
||||
<property name="text">
|
||||
<string><html><head/><body><p><a href="https://revpimodio.org/"><span style=" text-decoration: underline; color:#0000ff;">https://revpimodio.org/</span></a></p></body></html></string>
|
||||
</property>
|
||||
<property name="openExternalLinks">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="0" colspan="3">
|
||||
<widget class="QDialogButtonBox" name="btn_box">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="standardButtons">
|
||||
<set>QDialogButtonBox::Ok</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="3">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QLabel" name="lbl_lbl_version_control">
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Version:</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="lbl_version_control">
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>14</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>0.0.0</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="4" column="0" colspan="2">
|
||||
<widget class="QLabel" name="lbl_info">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>300</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>RevPiModIO, RevPiPyLoad and RevPiPyControl are community driven projects. They are all free and open source software.
|
||||
All of them comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
|
||||
applicable law.
|
||||
|
||||
(c) Sven Sager, License: GPLv3</string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0">
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections>
|
||||
<connection>
|
||||
<sender>btn_box</sender>
|
||||
<signal>accepted()</signal>
|
||||
<receiver>diag_revpiinfo</receiver>
|
||||
<slot>accept()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>248</x>
|
||||
<y>254</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>157</x>
|
||||
<y>274</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>btn_box</sender>
|
||||
<signal>rejected()</signal>
|
||||
<receiver>diag_revpiinfo</receiver>
|
||||
<slot>reject()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>316</x>
|
||||
<y>260</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>286</x>
|
||||
<y>274</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
</connections>
|
||||
</ui>
|
||||
127
include/ui_dev/revpilogfile.ui
Normal file
@@ -0,0 +1,127 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>win_revpilogfile</class>
|
||||
<widget class="QMainWindow" name="win_revpilogfile">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>796</width>
|
||||
<height>347</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>RevPi Python PLC Logfiles</string>
|
||||
</property>
|
||||
<widget class="QWidget" name="centralwidget">
|
||||
<layout class="QGridLayout" name="gridLayout_3">
|
||||
<item row="1" column="0">
|
||||
<widget class="QCheckBox" name="cbx_stay_on_top">
|
||||
<property name="text">
|
||||
<string>Stay on top of all windows</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QCheckBox" name="cbx_wrap">
|
||||
<property name="text">
|
||||
<string>Linewrap</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0" colspan="2">
|
||||
<widget class="QSplitter" name="splitter">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="childrenCollapsible">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<widget class="QWidget" name="gridLayoutWidget">
|
||||
<layout class="QGridLayout" name="grid_daemon" columnstretch="1,0">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="lbl_daemon">
|
||||
<property name="text">
|
||||
<string>RevPiPyLoad - Logfile</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QPushButton" name="btn_daemon">
|
||||
<property name="text">
|
||||
<string>Clear view</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="2">
|
||||
<widget class="QPlainTextEdit" name="txt_daemon">
|
||||
<property name="verticalScrollBarPolicy">
|
||||
<enum>Qt::ScrollBarAlwaysOn</enum>
|
||||
</property>
|
||||
<property name="horizontalScrollBarPolicy">
|
||||
<enum>Qt::ScrollBarAlwaysOn</enum>
|
||||
</property>
|
||||
<property name="tabChangesFocus">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="undoRedoEnabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="lineWrapMode">
|
||||
<enum>QPlainTextEdit::NoWrap</enum>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="gridLayoutWidget_2">
|
||||
<layout class="QGridLayout" name="grid_app" columnstretch="1,0">
|
||||
<item row="0" column="1">
|
||||
<widget class="QPushButton" name="btn_app">
|
||||
<property name="text">
|
||||
<string>Clear view</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="lbl_app">
|
||||
<property name="text">
|
||||
<string>Python PLC program - Logfile</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="2">
|
||||
<widget class="QPlainTextEdit" name="txt_app">
|
||||
<property name="verticalScrollBarPolicy">
|
||||
<enum>Qt::ScrollBarAlwaysOn</enum>
|
||||
</property>
|
||||
<property name="horizontalScrollBarPolicy">
|
||||
<enum>Qt::ScrollBarAlwaysOn</enum>
|
||||
</property>
|
||||
<property name="tabChangesFocus">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="undoRedoEnabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="lineWrapMode">
|
||||
<enum>QPlainTextEdit::NoWrap</enum>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
250
include/ui_dev/revpioption.ui
Normal file
@@ -0,0 +1,250 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>diag_options</class>
|
||||
<widget class="QDialog" name="diag_options">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>452</width>
|
||||
<height>503</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>RevPi Python PLC Options</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="gb_plc">
|
||||
<property name="title">
|
||||
<string>Start / Stop behavior of PLC program</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="6" column="0">
|
||||
<widget class="QLabel" name="lbl_replace_io">
|
||||
<property name="text">
|
||||
<string>Replace IO file:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="2">
|
||||
<widget class="QSpinBox" name="sbx_autoreloaddelay">
|
||||
<property name="minimum">
|
||||
<number>5</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>120</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1" colspan="2">
|
||||
<widget class="QCheckBox" name="cbx_zeroonexit">
|
||||
<property name="text">
|
||||
<string>... sucessfully without error</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="1" colspan="2">
|
||||
<widget class="QCheckBox" name="cbx_zeroonerror">
|
||||
<property name="text">
|
||||
<string>... after exception and errors</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0" colspan="3">
|
||||
<widget class="QCheckBox" name="cbx_autostart">
|
||||
<property name="text">
|
||||
<string>Start PLC program automatically</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="3">
|
||||
<widget class="QCheckBox" name="cbx_autoreload">
|
||||
<property name="text">
|
||||
<string>Restart PLC program after exit or crash</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0" colspan="3">
|
||||
<widget class="QLabel" name="lbl_plc_zero">
|
||||
<property name="text">
|
||||
<string>Set process image to NULL if program terminates...</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="1" colspan="2">
|
||||
<widget class="QLineEdit" name="txt_replace_io"/>
|
||||
</item>
|
||||
<item row="6" column="1" colspan="2">
|
||||
<widget class="QComboBox" name="cbb_replace_io">
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Do not use replace io file</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Use static file from RevPiPyLoad</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Use dynamic file from work directory</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Give own path and filename</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0" colspan="2">
|
||||
<widget class="QLabel" name="lbl_plc_delay">
|
||||
<property name="text">
|
||||
<string>Restart delay in seconds:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="gb_server">
|
||||
<property name="title">
|
||||
<string>RevPiPyLoad server services</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_2">
|
||||
<item row="0" column="1">
|
||||
<widget class="QPushButton" name="btn_aclplcslave">
|
||||
<property name="text">
|
||||
<string>Edit ACL</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QCheckBox" name="cbx_mqtt">
|
||||
<property name="text">
|
||||
<string>MQTT process image publisher</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QCheckBox" name="cbx_plcslave">
|
||||
<property name="text">
|
||||
<string>Start RevPi piControl server</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QLabel" name="lbl_slave_status">
|
||||
<property name="text">
|
||||
<string>status</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="lbl_lbl_slave_status">
|
||||
<property name="text">
|
||||
<string>piControl server is:</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QLabel" name="lbl_mqtt_status">
|
||||
<property name="text">
|
||||
<string>status</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="lbl_lbl_mqtt_status">
|
||||
<property name="text">
|
||||
<string>MQTT publish service is:</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QPushButton" name="btn_mqtt">
|
||||
<property name="text">
|
||||
<string>Settings</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="QPushButton" name="btn_aclxmlrpc">
|
||||
<property name="text">
|
||||
<string>Edit ACL</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QCheckBox" name="cbx_xmlrpc">
|
||||
<property name="text">
|
||||
<string>Activate XML-RPC for RevPiPyControl</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QDialogButtonBox" name="btn_box">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="standardButtons">
|
||||
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections>
|
||||
<connection>
|
||||
<sender>btn_box</sender>
|
||||
<signal>accepted()</signal>
|
||||
<receiver>diag_options</receiver>
|
||||
<slot>accept()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>248</x>
|
||||
<y>254</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>157</x>
|
||||
<y>274</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>btn_box</sender>
|
||||
<signal>rejected()</signal>
|
||||
<receiver>diag_options</receiver>
|
||||
<slot>reject()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>316</x>
|
||||
<y>260</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>286</x>
|
||||
<y>274</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
</connections>
|
||||
</ui>
|
||||
218
include/ui_dev/revpiplclist.ui
Normal file
@@ -0,0 +1,218 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>diag_connections</class>
|
||||
<widget class="QDialog" name="diag_connections">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>520</width>
|
||||
<height>508</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Revolution Pi connections</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QTreeWidget" name="tre_connections">
|
||||
<property name="editTriggers">
|
||||
<set>QAbstractItemView::NoEditTriggers</set>
|
||||
</property>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Connection name</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Address</string>
|
||||
</property>
|
||||
</column>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<layout class="QVBoxLayout" name="vl_edit">
|
||||
<item>
|
||||
<spacer name="vs_edit">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="btn_up">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="ressources.qrc">
|
||||
<normaloff>:/action/ico/arrow-up.ico</normaloff>:/action/ico/arrow-up.ico</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="btn_down">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="ressources.qrc">
|
||||
<normaloff>:/action/ico/arrow-down.ico</normaloff>:/action/ico/arrow-down.ico</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="btn_delete">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="ressources.qrc">
|
||||
<normaloff>:/action/ico/edit-delete.ico</normaloff>:/action/ico/edit-delete.ico</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="btn_add">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="ressources.qrc">
|
||||
<normaloff>:/action/ico/edit-add.ico</normaloff>:/action/ico/edit-add.ico</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="2">
|
||||
<widget class="QGroupBox" name="gb_properties">
|
||||
<property name="title">
|
||||
<string>Connection properties</string>
|
||||
</property>
|
||||
<layout class="QFormLayout" name="formLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="lbl_name">
|
||||
<property name="text">
|
||||
<string>Display name:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="lbl_folder">
|
||||
<property name="text">
|
||||
<string>Sub folder:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="lbl_address">
|
||||
<property name="text">
|
||||
<string>Address (DNS/IP):</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="lbl_port">
|
||||
<property name="text">
|
||||
<string>Port (Default {0}):</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QLineEdit" name="txt_name"/>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QLineEdit" name="txt_address"/>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QSpinBox" name="sbx_port">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimum">
|
||||
<number>1</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>65535</number>
|
||||
</property>
|
||||
<property name="value">
|
||||
<number>55123</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QComboBox" name="cbb_folder">
|
||||
<property name="editable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0" colspan="2">
|
||||
<widget class="QDialogButtonBox" name="btn_box">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="standardButtons">
|
||||
<set>QDialogButtonBox::Discard|QDialogButtonBox::Save</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources>
|
||||
<include location="ressources.qrc"/>
|
||||
</resources>
|
||||
<connections>
|
||||
<connection>
|
||||
<sender>btn_box</sender>
|
||||
<signal>accepted()</signal>
|
||||
<receiver>diag_connections</receiver>
|
||||
<slot>accept()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>248</x>
|
||||
<y>254</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>157</x>
|
||||
<y>274</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>btn_box</sender>
|
||||
<signal>rejected()</signal>
|
||||
<receiver>diag_connections</receiver>
|
||||
<slot>reject()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>316</x>
|
||||
<y>260</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>286</x>
|
||||
<y>274</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
</connections>
|
||||
</ui>
|
||||
248
include/ui_dev/revpiprogram.ui
Normal file
@@ -0,0 +1,248 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>diag_program</class>
|
||||
<widget class="QDialog" name="diag_program">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>488</width>
|
||||
<height>500</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>PLC program</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="gb_plc">
|
||||
<property name="title">
|
||||
<string>PLC program</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="3" column="1">
|
||||
<widget class="QRadioButton" name="rbn_pythonversion_2">
|
||||
<property name="text">
|
||||
<string>Python 2</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1" colspan="2">
|
||||
<widget class="QLineEdit" name="txt_plcarguments"/>
|
||||
</item>
|
||||
<item row="3" column="2">
|
||||
<widget class="QRadioButton" name="rbn_pythonversion_3">
|
||||
<property name="text">
|
||||
<string>Python 3</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0" colspan="3">
|
||||
<widget class="QLabel" name="lbl_plcprogram">
|
||||
<property name="text">
|
||||
<string>Python PLC start program:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0" colspan="3">
|
||||
<widget class="QCheckBox" name="cbx_plcworkdir_set_uid">
|
||||
<property name="text">
|
||||
<string>Set write permissions for plc program to workdirectory</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="3">
|
||||
<widget class="QComboBox" name="cbb_plcprogram"/>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="lbl_pythonversion">
|
||||
<property name="text">
|
||||
<string>Python version:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="lbl_plcarguments">
|
||||
<property name="text">
|
||||
<string>Program arguments:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="cb_transfair">
|
||||
<property name="title">
|
||||
<string>Transfair PLC program</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_2">
|
||||
<item row="0" column="1">
|
||||
<widget class="QComboBox" name="cbb_format">
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Files</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Folder</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>ZIP archive</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>TGZ archive</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QPushButton" name="btn_program_upload">
|
||||
<property name="text">
|
||||
<string>Upload</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QPushButton" name="btn_program_download">
|
||||
<property name="text">
|
||||
<string>Download</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="lbl_format">
|
||||
<property name="text">
|
||||
<string>Transfair format:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="2">
|
||||
<widget class="QCheckBox" name="cbx_pictory">
|
||||
<property name="text">
|
||||
<string>Including piCtory configuration</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0" colspan="2">
|
||||
<widget class="QCheckBox" name="cbx_clear">
|
||||
<property name="text">
|
||||
<string>Remove all files on Revolution Pi before upload</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="gb_control">
|
||||
<property name="title">
|
||||
<string>Control files</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_3">
|
||||
<item row="1" column="1">
|
||||
<widget class="QPushButton" name="btn_procimg_download">
|
||||
<property name="text">
|
||||
<string>Download</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QPushButton" name="btn_pictory_download">
|
||||
<property name="text">
|
||||
<string>Download</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="2">
|
||||
<widget class="QPushButton" name="btn_pictory_upload">
|
||||
<property name="text">
|
||||
<string>Upload</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="lbl_pictory">
|
||||
<property name="text">
|
||||
<string>piCtory configuraiton</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="lbl_procimg">
|
||||
<property name="text">
|
||||
<string>Process image from piControl0</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QDialogButtonBox" name="btn_box">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="standardButtons">
|
||||
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<tabstops>
|
||||
<tabstop>cbb_plcprogram</tabstop>
|
||||
<tabstop>txt_plcarguments</tabstop>
|
||||
<tabstop>rbn_pythonversion_2</tabstop>
|
||||
<tabstop>rbn_pythonversion_3</tabstop>
|
||||
<tabstop>cbx_plcworkdir_set_uid</tabstop>
|
||||
<tabstop>cbb_format</tabstop>
|
||||
<tabstop>cbx_pictory</tabstop>
|
||||
<tabstop>cbx_clear</tabstop>
|
||||
<tabstop>btn_program_download</tabstop>
|
||||
<tabstop>btn_program_upload</tabstop>
|
||||
<tabstop>btn_pictory_download</tabstop>
|
||||
<tabstop>btn_pictory_upload</tabstop>
|
||||
<tabstop>btn_procimg_download</tabstop>
|
||||
</tabstops>
|
||||
<resources/>
|
||||
<connections>
|
||||
<connection>
|
||||
<sender>btn_box</sender>
|
||||
<signal>accepted()</signal>
|
||||
<receiver>diag_program</receiver>
|
||||
<slot>accept()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>257</x>
|
||||
<y>490</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>157</x>
|
||||
<y>274</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>btn_box</sender>
|
||||
<signal>rejected()</signal>
|
||||
<receiver>diag_program</receiver>
|
||||
<slot>reject()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>325</x>
|
||||
<y>490</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>286</x>
|
||||
<y>274</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
</connections>
|
||||
</ui>
|
||||