diff --git a/include/ui/revpiplclist_ui.py b/include/ui/revpiplclist_ui.py
index 82aaa28..d1e4814 100644
--- a/include/ui/revpiplclist_ui.py
+++ b/include/ui/revpiplclist_ui.py
@@ -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
diff --git a/include/ui_dev/revpiplclist.ui b/include/ui_dev/revpiplclist.ui
index ec6e78b..1f9b2ea 100644
--- a/include/ui_dev/revpiplclist.ui
+++ b/include/ui_dev/revpiplclist.ui
@@ -105,7 +105,7 @@
- -
+
-
Sub folder:
@@ -151,7 +151,7 @@
- -
+
-
true
@@ -163,6 +163,32 @@
+ -
+
+
+ Connection timeout:
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ sec.
+
+
+ 5
+
+
+ 30
+
+
+
diff --git a/revpicommander/helper.py b/revpicommander/helper.py
index afc4f29..1f7faae 100644
--- a/revpicommander/helper.py
+++ b/revpicommander/helper.py
@@ -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))
diff --git a/revpicommander/locale/revpicommander_de.qm b/revpicommander/locale/revpicommander_de.qm
index 8295392..1dd7987 100644
Binary files a/revpicommander/locale/revpicommander_de.qm and b/revpicommander/locale/revpicommander_de.qm differ
diff --git a/revpicommander/locale/revpicommander_de.ts b/revpicommander/locale/revpicommander_de.ts
index a44c5f1..51f7eea 100644
--- a/revpicommander/locale/revpicommander_de.ts
+++ b/revpicommander/locale/revpicommander_de.ts
@@ -564,12 +564,12 @@ Ungesicherte Änderungen gehen verloren.
Neue Verbindung
-
+
Question
Frage
-
+
Do you really want to quit?
Unsaved changes will be lost.
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
Port (Default {0}):
Port (Standard {0}):
+
+
+ Connection timeout:
+ Verbindungs-Timeout:
+
+
+
+ sec.
+ Sek.
+
diag_mqtt
diff --git a/revpicommander/revpicommander.py b/revpicommander/revpicommander.py
index 2ee82d6..5940111 100755
--- a/revpicommander/revpicommander.py
+++ b/revpicommander/revpicommander.py
@@ -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
diff --git a/revpicommander/revpiplclist.py b/revpicommander/revpiplclist.py
index d9e4c58..f5c7d01 100644
--- a/revpicommander/revpiplclist.py
+++ b/revpicommander/revpiplclist.py
@@ -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))
diff --git a/setup.py b/setup.py
index 6bd4d8a..f6e7a51 100644
--- a/setup.py
+++ b/setup.py
@@ -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"],