Add parameter to change connection timeout (default was and is 5 seconds)

This commit is contained in:
2021-04-18 11:03:51 +02:00
parent 2341e2be95
commit f0e6f64389
8 changed files with 77 additions and 14 deletions

View File

@@ -62,7 +62,7 @@ class Ui_diag_connections(object):
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.formLayout.setWidget(4, 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)
@@ -91,7 +91,20 @@ class Ui_diag_connections(object):
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.formLayout.setWidget(4, QtWidgets.QFormLayout.FieldRole, self.cbb_folder)
self.lbl_timeout = QtWidgets.QLabel(self.gb_properties)
self.lbl_timeout.setObjectName("lbl_timeout")
self.formLayout.setWidget(3, QtWidgets.QFormLayout.LabelRole, self.lbl_timeout)
self.sbx_timeout = QtWidgets.QSpinBox(self.gb_properties)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.sbx_timeout.sizePolicy().hasHeightForWidth())
self.sbx_timeout.setSizePolicy(sizePolicy)
self.sbx_timeout.setMinimum(5)
self.sbx_timeout.setMaximum(30)
self.sbx_timeout.setObjectName("sbx_timeout")
self.formLayout.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.sbx_timeout)
self.gridLayout.addWidget(self.gb_properties, 1, 0, 1, 2)
self.btn_box = QtWidgets.QDialogButtonBox(diag_connections)
self.btn_box.setOrientation(QtCore.Qt.Horizontal)
@@ -114,6 +127,8 @@ class Ui_diag_connections(object):
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}):"))
self.lbl_timeout.setText(_translate("diag_connections", "Connection timeout:"))
self.sbx_timeout.setSuffix(_translate("diag_connections", " sec."))
from . import ressources_rc

View File

@@ -105,7 +105,7 @@
</property>
</widget>
</item>
<item row="3" column="0">
<item row="4" column="0">
<widget class="QLabel" name="lbl_folder">
<property name="text">
<string>Sub folder:</string>
@@ -151,7 +151,7 @@
</property>
</widget>
</item>
<item row="3" column="1">
<item row="4" column="1">
<widget class="QComboBox" name="cbb_folder">
<property name="editable">
<bool>true</bool>
@@ -163,6 +163,32 @@
</item>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="lbl_timeout">
<property name="text">
<string>Connection timeout:</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QSpinBox" name="sbx_timeout">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="suffix">
<string> sec.</string>
</property>
<property name="minimum">
<number>5</number>
</property>
<property name="maximum">
<number>30</number>
</property>
</widget>
</item>
</layout>
</widget>
</item>

View File

@@ -25,6 +25,7 @@ class WidgetData(IntEnum):
has_error = 263
port = 264
object_name = 265
timeout = 266
last_dir_upload = 301
last_file_upload = 302
last_dir_pictory = 303
@@ -218,9 +219,10 @@ class ConnectionManager(QtCore.QThread):
settings.beginReadArray("connections")
settings.setArrayIndex(settings_index)
address = settings.value("address")
name = settings.value("name")
port = settings.value("port", defaultValue=55123)
address = settings.value("address", str)
name = settings.value("name", str)
port = settings.value("port", 55123, int)
timeout = settings.value("timeout", 5, int)
self.program_last_dir_upload = settings.value("last_dir_upload", ".", str)
self.program_last_file_upload = settings.value("last_file_upload", ".", str)
@@ -228,8 +230,8 @@ class ConnectionManager(QtCore.QThread):
self.program_last_dir_picontrol = settings.value("last_dir_picontrol", ".", str)
self.program_last_dir_selected = settings.value("last_dir_selected", ".", str)
self.program_last_pictory_file = settings.value("last_pictory_file", "{0}.rsc".format(name), str)
self.program_last_tar_file = settings.value("last_tar_file", "{0}.tgz".format(name))
self.program_last_zip_file = settings.value("last_zip_file", "{0}.zip".format(name))
self.program_last_tar_file = settings.value("last_tar_file", "{0}.tgz".format(name), str)
self.program_last_zip_file = settings.value("last_zip_file", "{0}.zip".format(name), str)
self.develop_watch_files = settings.value("watch_files", [], list)
self.develop_watch_path = settings.value("watch_path", "", str)
self.debug_geos = settings.value("debug_geos", {}, dict)
@@ -256,7 +258,7 @@ class ConnectionManager(QtCore.QThread):
self.xml_mode = xml_mode
with self._lck_cli:
socket.setdefaulttimeout(5)
socket.setdefaulttimeout(timeout)
self._cli = sp
self._cli_connect.put_nowait((address, port))

View File

@@ -564,12 +564,12 @@ Ungesicherte Änderungen gehen verloren.</translation>
<translation>Neue Verbindung</translation>
</message>
<message>
<location filename="../revpiplclist.py" line="146"/>
<location filename="../revpiplclist.py" line="148"/>
<source>Question</source>
<translation>Frage</translation>
</message>
<message>
<location filename="../revpiplclist.py" line="146"/>
<location filename="../revpiplclist.py" line="148"/>
<source>Do you really want to quit?
Unsaved changes will be lost.</source>
<translation>Soll das Fenster wirklich geschlossen werden?
@@ -953,6 +953,16 @@ Dies ist kein Fehler, wenn das SPS Startprogramm bereits auf dem Rev Pi ist. Pr
<source>Port (Default {0}):</source>
<translation>Port (Standard {0}):</translation>
</message>
<message>
<location filename="../../include/ui_dev/revpiplclist.ui" line="169"/>
<source>Connection timeout:</source>
<translation>Verbindungs-Timeout:</translation>
</message>
<message>
<location filename="../../include/ui_dev/revpiplclist.ui" line="182"/>
<source> sec.</source>
<translation> Sek.</translation>
</message>
</context>
<context>
<name>diag_mqtt</name>

View File

@@ -5,7 +5,7 @@
__author__ = "Sven Sager"
__copyright__ = "Copyright (C) 2018 Sven Sager"
__license__ = "GPLv3"
__version__ = "0.9.1"
__version__ = "0.9.1f"
import webbrowser
from os.path import basename, dirname, join

View File

@@ -51,6 +51,7 @@ class RevPiPlcList(QtWidgets.QDialog, Ui_diag_connections):
con_item.setText(0, helper.settings.value("name", "Revolution Pi", str))
con_item.setText(1, helper.settings.value("address", "127.0.0.1", str))
con_item.setData(0, WidgetData.port, helper.settings.value("port", self.__default_port, int))
con_item.setData(0, WidgetData.timeout, helper.settings.value("timeout", 5, int))
con_item.setData(0, WidgetData.last_dir_upload, helper.settings.value("last_dir_upload"))
con_item.setData(0, WidgetData.last_file_upload, helper.settings.value("last_file_upload"))
@@ -95,6 +96,7 @@ class RevPiPlcList(QtWidgets.QDialog, Ui_diag_connections):
helper.settings.setValue("folder", parent.text(0) if parent else "")
helper.settings.setValue("name", node.text(0))
helper.settings.setValue("port", node.data(0, WidgetData.port))
helper.settings.setValue("timeout", node.data(0, WidgetData.timeout))
if node.data(0, WidgetData.last_dir_upload):
helper.settings.setValue("last_dir_upload", node.data(0, WidgetData.last_dir_upload))
@@ -192,6 +194,7 @@ class RevPiPlcList(QtWidgets.QDialog, Ui_diag_connections):
self.txt_name.setEnabled(con_item)
self.txt_address.setEnabled(con_item)
self.sbx_port.setEnabled(con_item)
self.sbx_timeout.setEnabled(con_item)
self.cbb_folder.setEnabled(con_item or dir_item)
def _get_folder_item(self, name: str):
@@ -235,6 +238,7 @@ class RevPiPlcList(QtWidgets.QDialog, Ui_diag_connections):
self.txt_name.setText(current.text(0))
self.txt_address.setText(current.text(1))
self.sbx_port.setValue(current.data(0, WidgetData.port))
self.sbx_timeout.setValue(current.data(0, WidgetData.timeout))
if current.parent() is None:
self.cbb_folder.setCurrentIndex(0)
else:
@@ -303,6 +307,12 @@ class RevPiPlcList(QtWidgets.QDialog, Ui_diag_connections):
return
self.__current_item.setData(0, WidgetData.port, value)
@QtCore.pyqtSlot(int)
def on_sbx_timeout_valueChanged(self, value: int):
if self.__current_item.type() != NodeType.CON:
return
self.__current_item.setData(0, WidgetData.timeout, value)
@QtCore.pyqtSlot(str)
def on_cbb_folder_editTextChanged(self, text: str):
pi.logger.debug("RevPiPlcList.on_cbb_folder_editTextChanged({0})".format(text))

View File

@@ -19,7 +19,7 @@ class MyEggInfo(distutils.command.install_egg_info.install_egg_info):
setup(
version="0.9.1",
version="0.9.1f",
python_requires="~=3.4",
requires=["PyQt5", "revpimodio2", "zeroconf"],