diff --git a/requirements.txt b/requirements.txt index 85c2556..5b11c16 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,4 +3,5 @@ PyQt5>=5.14.1 revpimodio2>=2.5.6 zeroconf>=0.24.4 setuptools>=65.6.3 -wheel \ No newline at end of file +wheel +paramiko>=2.12.0 \ No newline at end of file diff --git a/setup.iss b/setup.iss index 0361bcd..174458c 100755 --- a/setup.iss +++ b/setup.iss @@ -2,7 +2,7 @@ ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! #define MyAppName "RevPiCommander" -#define MyAppVersion "0.9.3b" +#define MyAppVersion "0.9.10rc1" #define MyAppPublisher "Sven Sager" #define MyAppURL "https://revpimodio.org/" #define MyAppExeName "revpicommander.exe" diff --git a/src/revpicommander/locale/revpicommander_de.qm b/src/revpicommander/locale/revpicommander_de.qm index 5f3c7e1..d9ed532 100644 Binary files a/src/revpicommander/locale/revpicommander_de.qm and b/src/revpicommander/locale/revpicommander_de.qm differ diff --git a/src/revpicommander/locale/revpicommander_de.ts b/src/revpicommander/locale/revpicommander_de.ts index e90cb7d..2cce3e7 100644 --- a/src/revpicommander/locale/revpicommander_de.ts +++ b/src/revpicommander/locale/revpicommander_de.ts @@ -68,83 +68,119 @@ Nicht gespeicherte Änderunen gehen verloren AvahiSearch - + Auto discovered Automatisch erkannt - + Already in list... Bereits in Liste... - + Success Erfolgreich - + The connection with the name '{0}' was successfully saved to folder '{1}' in your connections. - Die Verbindung mit dem Namen '{0}' wurde erfolgreich im Ordner '{1}' gespeichert. + Die Verbindung mit dem Namen '{0}' wurde erfolgreich im Ordner '{1}' gespeichert. - + The selected Revolution Pi is already saved in your connection list as '{0}'. - Der ausgewählte RevPi ist schon in der Verbindungsliste als '{0}'. + Der ausgewählte RevPi ist schon in der Verbindungsliste als '{0}'. ConnectionManager - + SIMULATING SIMULATION - + NOT CONNECTED NICHT VERBUNDEN - + SERVER ERROR SERVER FEHLER - + RUNNING LÄUFT - + PLC FILE NOT FOUND SPS PROGRAMM NICHT GEFUNDEN - + NOT RUNNING (NO STATUS) LÄUFT NICHT (KEIN STATUS) - + PROGRAM KILLED PROGRAMM GETÖTET - + PROGRAM TERMED PROGRAMM BEENDET - + NOT RUNNING LÄUFT NICHT - + FINISHED WITH CODE {0} BEENDET MIT CODE {0} + + + Error + Fehler + + + + The combination of username and password was rejected from the SSH server. + +Try again. + Die Kombination aus Benutzername und Password wurden vom SSH Server abgelehnt + +Bitte erneut versuchen. + + + + Could not establish a SSH connection to server: + +{0} + Konnte keine Verbindung zum SSH Server herstellen: + +{0} + + + + Can not connect to RevPi XML-RPC Service! + +This could have the following reasons: The RevPi is not online, the XML-RPC service is not running / bind to localhost or the ACL permission is not set for your IP!!! + +Run 'sudo revpipyload_secure_installation' on Revolution Pi to setup this function! + Kann keine Verbindung zum RevPi XML-RPC Dienst herstellen! + +Das kann eine der folgenden Ursachen haben: Der Rev Pi ist nicht online, der XML-RPC Dienst läuft nicht / ist an localhost gebunden order die Berechtigungen sind nicht für diese IP gesetzt!!! + +Führe 'sudo revpipyload_secure_installation' auf dem Revolution Pi aus um diese Funktion zu konfigurieren! + DebugControl @@ -172,7 +208,7 @@ Nicht gespeicherte Änderunen gehen verloren Error set value of device '{0}' Output '{1}': {2} - Fehler beim Setzen des Ausgangs '{1}' auf Modul '{0}': {2} + Fehler beim Setzen des Ausgangs '{1}' auf Modul '{0}': {2} @@ -211,7 +247,7 @@ Nicht gespeicherte Änderunen gehen verloren Can not convert bytes {0} to a text for IO '{1}'. Switch to number format instead! - Kann bytes {0} für '{1}' nicht in Text konvertieren. Wechseln Sie auf Nummernformat! + Kann bytes {0} für '{1}' nicht in Text konvertieren. Wechseln Sie auf Nummernformat! @@ -242,86 +278,86 @@ Ungesicherte Änderungen gehen verloren. RevPiCommander - + Simulator started... Simulator gestartet... - + Can not start... Kann nicht gestartet werden... - + Warning Warnung - + This version of Logviewer ist not supported in version {0} of RevPiPyLoad on your RevPi! You need at least version 0.4.1. Diese Version vom Logbetrachter wird in RevPiPyLoad Version {0} nicht unterstützt! Es wird mindestens Version 0.4.1 benötigt. - + XML-RPC access mode in the RevPiPyLoad configuration is too small to access this dialog! XML-RPC Zugriffsberechtigung in der RevPiPyLoad Konfiguraiton ist zu klein für diese Einstellungen! - + Error Fehler - + The Version of RevPiPyLoad on your Revolution Pi ({0}) is to old. This Version of RevPiCommander require at least version 0.6.0 of RevPiPyLoad. Please update your Revolution Pi! Die Version von RevPiPyLoad ({0}) auf dem Revolution Pi ist zu alt. Diese Version vom RevPiCommander braucht mindestens Version 0.6.0. Bitte aktualisiere deinen Revolution Pi! - + Question Frage - + Are you sure to reset piControl? The pictory configuration will be reloaded. During that time the process image will be interrupted and could rise errors on running control programs! Soll piControl wirklich zurückgesetzt werden? Die piCtory Konfiguration wird neu geladen. Das Prozessabbild wird in dieser Zeit nicht verfügbar sein und es könnten Fehler in Steuerungsprogrammen ausgelöst werden! - + Success Erfolgreich - + piControl reset executed successfully piControl wurde erfolgreich zurückgesetzt - + piControl reset could not be executed successfully piControl konnte nicht zurückgesetzt werden - + Reset to piCtory defaults... Standardwerte von piCtory laden... - + The watch mode ist not supported in version {0} of RevPiPyLoad on your RevPi! You need at least version 0.5.3! Maybe the python3-revpimodio2 module is not installed on your RevPi at least version 2.0.0. Der SPS Betrachter ist in Version {0} von RevPiPyLoad auf dem Rev Pi nicht unterstützt! Es muss mindestens Version 0.5.3 installiert sein! Vielleicht fehlt auch das python3-revpimodio2 Modul, welches mindestens Version 2.0.0 haben muss. - + Can not load this function, because your ACL level is to low! You need at least level 1 to read or level 3 to write. Für diese Funktion ist das Berechtigungslevel zu gering! Es muss mindestens Level 1 zum Lesen oder Level 3 zu Schreiben sein. - + Can not load piCtory configuration. Did you create a hardware configuration? Please check this in piCtory! Kann piCtory Konfiguration nicht laden. @@ -334,14 +370,14 @@ Wurde eine Hardwarekonfiguration in piCtory erzeugt? This could have the following reasons: The RevPi is not online, the XML-RPC service is not running / bind to localhost or the ACL permission is not set for your IP!!! Run 'sudo revpipyload_secure_installation' on Revolution Pi to setup this function! - Kann keine Verbindung zum RevPi XML-RPC Dienst herstellen! + Kann keine Verbindung zum RevPi XML-RPC Dienst herstellen! Das kann eine der folgenden Ursachen haben: Der Rev Pi ist nicht online, der XML-RPC Dienst läuft nicht / ist an localhost gebunden order die Berechtigungen sind nicht für diese IP gesetzt!!! -Führe 'sudo revpipyload_secure_installation' auf dem Revolution Pi aus um diese Funktion zu konfigurieren! +Führe 'sudo revpipyload_secure_installation' auf dem Revolution Pi aus um diese Funktion zu konfigurieren! - + The simulator is running! You can work with this simulator if your call RevPiModIO with this additional parameters: @@ -358,24 +394,24 @@ configrsc={1} Dies kann aus der Textbox oben kopiert werden. - + Can not start the simulator! Maybe the piCtory file is corrupt or you have no write permissions for '{0}'. - Kann Simulator nicht starten! Vielleicht ist die piCtory Datei defekt oder es gibt keine Schreibberechtigung für '{0}`. + Kann Simulator nicht starten! Vielleicht ist die piCtory Datei defekt oder es gibt keine Schreibberechtigung für '{0}`. - + Do you want to reset your process image to {0} values? You have to stop other RevPiModIO programs before doing that, because they could reset the outputs. Soll das virtuelle Prozessabbild auf {0} zurückgesetzt werden? Es sollten alle RevPiModIO Programme vorher beendet werden, da diese ihre IO Werte sofort wieder schreiben würden. - + zero null - + piCtory default piCtory Standardwerte @@ -425,7 +461,7 @@ Es sollten alle RevPiModIO Programme vorher beendet werden, da diese ihre IO Wer Can not open last directory '{0}'. - Kann letztes Verzeichnis '{0}' nicht öffnen. + Kann letztes Verzeichnis '{0}' nicht öffnen. @@ -450,7 +486,7 @@ Es sollten alle RevPiModIO Programme vorher beendet werden, da diese ihre IO Wer Can not access the folder '{0}' to read files. - Keine Berechtigung für Zugriff auf Ordner '{0}'. + Keine Berechtigung für Zugriff auf Ordner '{0}'. @@ -460,7 +496,7 @@ Es sollten alle RevPiModIO Programme vorher beendet werden, da diese ihre IO Wer Error while download file '{0}'. - Fehler beim Herunterladen der Datei '{0}'. + Fehler beim Herunterladen der Datei '{0}'. @@ -474,7 +510,7 @@ Es sollten alle RevPiModIO Programme vorher beendet werden, da diese ihre IO Wer Select 'Yes' to override, 'No' to download only missing files. Eine oder mehrere Dateien existieren auf diesem Computer! Sollen bestehende Dateien überschrieben werden? -Wählen Sie 'Ja' zum Überschreiben, 'Nein' um nur fehlende Dateien zu laden. +Wählen Sie 'Ja' zum Überschreiben, 'Nein' um nur fehlende Dateien zu laden. @@ -489,7 +525,7 @@ Wählen Sie 'Ja' zum Überschreiben, 'Nein' um nur fehlende Dateien zu laden. Error while delete file '{0}'. - Fehler beim Löschen der Datei '{0}'. + Fehler beim Löschen der Datei '{0}'. @@ -523,7 +559,7 @@ Wählen Sie 'Ja' zum Überschreiben, 'Nein' um nur fehlende Dateien zu laden. RevPiLogfile - + Can not access log file on the RevPi Kann auf Logbuch vom RevPi nicht zugreifen @@ -627,12 +663,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? @@ -929,62 +965,65 @@ Dies ist kein Fehler, wenn das SPS Startprogramm bereits auf dem Rev Pi ist. Pr IP access control list - IP Berechtigungsliste + IP Berechtigungsliste Existing ACLs - Aktuelle ACLs + Aktuelle ACLs IP Address - IP Adresse + IP Adresse Access Level - Berechtigungslevel + Berechtigungslevel &Edit - &Bearbeiten + &Bearbeiten &Remove - &Löschen + &Löschen Add / Edit access entry - Eintrag hinzufügen / bearbeiten + Eintrag hinzufügen / bearbeiten Clear fields - Felder leeren + Felder leeren &Save entry - Eintrag &Speichern + Eintrag &Speichern IP address: - IP Adresse: + IP Adresse: Access level: - Berechtigungslevel: + Berechtigungslevel: + + + diag_backgroundworker - - . - + + File transfer... + Dateiübertragung... @@ -992,52 +1031,77 @@ Dies ist kein Fehler, wenn das SPS Startprogramm bereits auf dem Rev Pi ist. Pr Revolution Pi connections - Revolution Pi Verbindungen + Revolution Pi Verbindungen - + Connection name - Verbindungsname + Verbindungsname - + Address - Adresse + Adresse Connection properties - Verbindungseinstellungen + Verbindungseinstellungen - + Display name: - Anzeigename: + Anzeigename: - + Sub folder: - Unterordner: + Unterordner: - + Address (DNS/IP): - Adresse (DNS/IP): + Adresse (DNS/IP): - + Port (Default {0}): - Port (Standard {0}): + Port (Standard {0}): - + Connection timeout: - Verbindungs-Timeout: + Verbindungs-Timeout: - + sec. - Sek. + Sek. + + + + Connection + Verbindung + + + + Over SSH + Über SSH + + + + Connect over SSH tunnel: + Über SSH Tunnel verbinden: + + + + SSH port: + SSH Port: + + + + SSH user name: + SSH Benutzername: @@ -1045,72 +1109,72 @@ Dies ist kein Fehler, wenn das SPS Startprogramm bereits auf dem Rev Pi ist. Pr MQTT settings - MQTT Einstellungen + MQTT Einstellungen Base topic - Basistopic + Basistopic Base topic: - Basistopic: + Basistopic: Publish settings - Publish Einstellungen + Publish Einstellungen Publish all exported values every n seconds: - Exportierte Werte all n Sekunden senden: + Exportierte Werte all n Sekunden senden: Send exported values immediately on value change - Exportierte Werte sofort bei Änderung senden + Exportierte Werte sofort bei Änderung senden Set outputs - Ausgänge setzen + Ausgänge setzen Allow MQTT to to set outputs on Revolution Pi - Erlaube per MQTT Ausgänge auf dem RevPi zu setzen + Erlaube per MQTT Ausgänge auf dem RevPi zu setzen Broker address: - Broker Adresse: + Broker Adresse: Broker port: - Broker Port: + Broker Port: User name: - Benutzername: + Benutzername: Password: - Passwort: + Passwort: Use TLS - TLS benutzen + TLS benutzen Broker settings - Broker Einstellungen + Broker Einstellungen @@ -1122,12 +1186,12 @@ For example: revpi0000/data Topic: [basetopic]/io/[ioname] - + Topic: [basistopic]/io/[eaname] Topic: [basetopic]/event/[ioname] - + Topic: [basistopic]/io/[eaname] @@ -1139,7 +1203,7 @@ Publish values with topic: [basetopic]/set/[outputname] Client ID: - + @@ -1147,137 +1211,137 @@ Publish values with topic: [basetopic]/set/[outputname] RevPi Python PLC Options - RevPi Python SPS Einstellungen + RevPi Python SPS Einstellungen Start / Stop behavior of PLC program - Start- / Stopverhalten des SPS Programms + Start- / Stopverhalten des SPS Programms Replace IO file: - EA Ersetzungsdatei: + EA Ersetzungsdatei: ... sucessfully without error - ... erfolgreich beendet wird + ... erfolgreich beendet wird ... after exception and errors - ...durch Fehler abstürzt + ...durch Fehler abstürzt Start PLC program automatically - Starte SPS Programm automatisch + Starte SPS Programm automatisch Restart PLC program after exit or crash - Starte SPS Programm nach Absturz neu + Starte SPS Programm nach Absturz neu Set process image to NULL if program terminates... - Setze Prozessabbild auf NULL, wenn das Programm... + Setze Prozessabbild auf NULL, wenn das Programm... Do not use replace io file - Keine Ersetzungsdatei verwenden + Keine Ersetzungsdatei verwenden Use static file from RevPiPyLoad - Statische Datei von RevPiPyLoad + Statische Datei von RevPiPyLoad Use dynamic file from work directory - Dynamisch aus Arbeitsverzeichnis + Dynamisch aus Arbeitsverzeichnis Give own path and filename - Eigener Pfad und Dateiname + Eigener Pfad und Dateiname Restart delay in seconds: - Neustartverzögerung in Sekunden: + Neustartverzögerung in Sekunden: RevPiPyLoad server services - RevPiPyLoad Serverdienste + RevPiPyLoad Serverdienste Edit ACL - ACL bearbeiten + ACL bearbeiten MQTT process image publisher - MQTT Processabbild Publisher + MQTT Processabbild Publisher Start RevPi piControl server - Starte RevPi piControl Server + Starte RevPi piControl Server status - Status + Status piControl server is: - piControl Serverstatus: + piControl Serverstatus: MQTT publish service is: - MQTT Servicestatus: + MQTT Servicestatus: Settings - Einstellungen + Einstellungen Do nothing - Keine Aktion + Keine Aktion Restart after piCtory changed - Neustart nach piCtory Änderungen + Neustart nach piCtory Änderungen Always restart the PLC program - SPS Programm immer neu starten + SPS Programm immer neu starten Driver reset action: - Aktion bei Treiberneustart: + Aktion bei Treiberneustart: PLC program behavior after piCtory driver reset clicked - Aktion nach piCtory Neustart mit SPS Programm + Aktion nach piCtory Neustart mit SPS Programm Activate XML-RPC for RevPiCommander - Aktiviere XML-RPC für RevPiCommander + Aktiviere XML-RPC für RevPiCommander @@ -1285,102 +1349,102 @@ Publish values with topic: [basetopic]/set/[outputname] PLC program - PLC Programm + PLC Programm Python PLC start program: - Python PLC Startprogramm: + Python PLC Startprogramm: Set write permissions for plc program to workdirectory - Schreibberechtigung für Arbeitsverzeichnis auf RevPi setzen + Schreibberechtigung für Arbeitsverzeichnis auf RevPi setzen Python version: - Python Version: + Python Version: Program arguments: - Programargumente: + Programargumente: Transfair PLC program - PLC Programm übertragen + PLC Programm übertragen ZIP archive - ZIP Archiv + ZIP Archiv TGZ archive - TGZ Archiv + TGZ Archiv Upload - Hochladen + Hochladen Download - Herunterladen + Herunterladen Transfair format: - Übertragungsformat: + Übertragungsformat: Including piCtory configuration - Inklusive piCtory Konfiguraiton + Inklusive piCtory Konfiguraiton Remove all files on Revolution Pi before upload - Alle Dateien auf Revolution Pi vor dem Hochladen löschen + Alle Dateien auf Revolution Pi vor dem Hochladen löschen Control files - Steuerdateien + Steuerdateien piCtory configuraiton - piCtory Konfiguration + piCtory Konfiguration Process image from piControl0 - Prozessabbild von piControl0 + Prozessabbild von piControl0 sec. - Sek. + Sek. Software watchdog (0=disabled): - Software watchdog (0=deaktiviert): + Software watchdog (0=deaktiviert): Python 3 - + Python 2 - + @@ -1388,17 +1452,17 @@ Publish values with topic: [basetopic]/set/[outputname] RevPiPyLoad version on RevPi: - RevPiPyLoad Version auf RevPi: + RevPiPyLoad Version auf RevPi: Program information - Programminformationen + Programminformationen RevPi Python PLC - Commander - RevPi Python SPS - Commander + RevPi Python SPS - Commander @@ -1408,7 +1472,7 @@ Publish values with topic: [basetopic]/set/[outputname] Version: - + @@ -1425,52 +1489,72 @@ applicable law. Search Revolution Pi devices - Revolution Pi Geräte suchen + Revolution Pi Geräte suchen Searching for Revolution Pi devices in your network... - Netzwerk nach Revolution Pi Geräten durchsuchen... + Netzwerk nach Revolution Pi Geräten durchsuchen... Restart search - Suche neu starten + Suche neu starten IP address - IP Adresse + IP Adresse &Connect to Revolution Pi - Mit RevPi &verbinden + Mit RevPi &verbinden &Save connection - Verbindung &speichern + Verbindung &speichern Zero-conf name - Zero-conf Name + Zero-conf Name Copy host name - + Hostnamen kopieren Copy IP address - + IP Adresse kopieren Open piCtory - + piCtory öffnen + + + + Connect via SSH (recommended) + Über SSH verbinden (empfholen) + + + + Establish a connection via encrypted SSH tunnel + Verbindung über verschlüsselten SSH Tunnel herstellen + + + + Connect via XML-RPC + Über XML-RPC verbinden + + + + You have to configure your Revolution Pi to accept this connections + Sie müssen den Revolution Pi für diese Art der Verbindung konfigurieren @@ -1478,82 +1562,100 @@ applicable law. piControl simulator - piControl Simulator + piControl Simulator Simulator settings - Simulatoreinstellungen + Simulatoreinstellungen Last used: - Zuletzt verwendet: + Zuletzt verwendet: piCtory file: - piCtory Datei: + piCtory Datei: select... - auswählen... + auswählen... Process image: - Prozessabbild: + Prozessabbild: Stop action: - Stopaktion: + Stopaktion: Restart action: - Neustartaktion: + Neustartaktion: Restore piCtory default values - piCtory Standardwerte setzen + piCtory Standardwerte setzen Reset everything to ZERO - Alles auf NULL setzen + Alles auf NULL setzen RevPiModIO integration - RevPiModIO Integration + RevPiModIO Integration Start with piCtory default values - Start mit piCtory Standardwerten + Start mit piCtory Standardwerten Start with empty process image - Start mit leerem Prozessabbild + Start mit leerem Prozessabbild Start without changing actual process image - Start ohne Veränderung des Prozessabbilds + Start ohne Veränderung des Prozessabbilds Remove process image file - Prozessabbilddatei löschen + Prozessabbilddatei löschen You can work with this simulator if you call RevPiModIO with this additional parameters: - Mit diesem Simulator kann gearbeitet werden, indem zum Aufruf von RevPiModIO folgende Parameter hinzugefügt werden: + Mit diesem Simulator kann gearbeitet werden, indem zum Aufruf von RevPiModIO folgende Parameter hinzugefügt werden: + + + + diag_sshauth + + + SSH authentication + SSH Authentifizierung + + + + SSH username: + SSH Benutzername: + + + + SSH password: + SSH Passwort: @@ -1561,72 +1663,57 @@ applicable law. Revolution Pi devices - Revolution Pi Module + Revolution Pi Module Open to stay on top - Immer im Vordergrund + Immer im Vordergrund IO Control - EA Übertragung + EA Übertragung Read all IO values and discard local changes (F4) - Alle EA Werte lesen und lokale Änderungen überschreiben (F4) + Alle EA Werte lesen und lokale Änderungen überschreiben (F4) Read &all IO values - &Alle EA Werte lesen + &Alle EA Werte lesen Refresh all IO values which are locally not changed (F5) - Alle EA Werte aktualisieren, die lokal nicht geändert sind (F5) + Alle EA Werte aktualisieren, die lokal nicht geändert sind (F5) &Refresh unchanged IOs - Unve&ränderte EAs lesen + Unve&ränderte EAs lesen Write locally changed output values to process image (F6) - Schreibe lokal veränderte Ausgangswerte in das Prozessabbild (F6) + Schreibe lokal veränderte Ausgangswerte in das Prozessabbild (F6) &Write changed outputs - Ausgänge &schreiben + Ausgänge &schreiben &Auto refresh values - &Automatisch aktualisieren + &Automatisch aktualisieren and write outputs - und Ausgänge schreiben - - - - F4 - - - - - F5 - - - - - F6 - + und Ausgänge schreiben @@ -1634,7 +1721,7 @@ applicable law. {0}: Inputs | Outputs - {0}: Eingänge | Ausgänge + {0}: Eingänge | Ausgänge @@ -1642,47 +1729,42 @@ applicable law. File manager - Dateimanager + Dateimanager Local computer - Lokaler Computer + Lokaler Computer Path to development root: - Entwicklerverzeichnis: + Entwicklerverzeichnis: Open developer root directory - Öffne Entwicklerverzeichnis + Öffne Entwicklerverzeichnis Reload file list - Dateiliste neu laden + Dateiliste neu laden RevPiPyLoad working directory: - RevPiPyLoad Arbeitsverzeichnis: + RevPiPyLoad Arbeitsverzeichnis: Stop - Upload - Start - Stoppen - Hochladen -Starten - - - - / - + Stoppen - Hochladen -Starten Revolution Pi - + @@ -1690,152 +1772,117 @@ applicable law. PLC &start - SPS &start + SPS &start PLC s&top - SPS s&top + SPS s&top PLC restart - SPS Neustart + SPS Neustart PLC &logs - SPS &Logdateien + SPS &Logdateien Status: - Status: + Status: PLC watch &mode - SPS &Monitor + SPS &Monitor &File - &Datei + &Datei &Help - &Hilfe + &Hilfe &PLC - S&PS + S&PS &Connections - &Verbindungen + &Verbindungen &Connections... - &Verbindungen... + &Verbindungen... &Search Revolution Pi... - &Suche Revolution Pi... + &Suche Revolution Pi... &Quit - &Beenden + &Beenden Visit &webpage... - &Webseite besuchen... + &Webseite besuchen... PLC &logs... - SPS &Logdateien... + SPS &Logdateien... PLC &options... - SPS &Optionen... + SPS &Optionen... PLC progra&m... - SPS Progra&mm... + SPS Progra&mm... PLC de&veloper... - SPS Ent&wickler... + SPS Ent&wickler... piCtory configuraiton... - piCtory Konfiguration... + piCtory Konfiguration... &Disconnect - &Trennen + &Trennen Reset driver... - Treiber zurücksetzen... + Treiber zurücksetzen... RevPi si&mulator... - RevPi Si&mulator... - - - - Ctrl+N - - - - - Ctrl+F - + RevPi Si&mulator... &Info... - - - - - Ctrl+L - - - - - Ctrl+O - - - - - Ctrl+P - - - - - Ctrl+D - - - - - Ctrl+X - + @@ -1843,32 +1890,32 @@ applicable law. RevPi Python PLC Logfiles - RevPi Python PLC Logdateien + RevPi Python PLC Logdateien Stay on top of all windows - Immer im Vordergrund bleiben + Immer im Vordergrund bleiben Linewrap - Zeilenumbruch + Zeilenumbruch RevPiPyLoad - Logfile - RevPiPyLoad - Logdatei + RevPiPyLoad - Logdatei Clear view - Ansicht leeren + Ansicht leeren Python PLC program - Logfile - Python PLC Programm - Logdatei + Python PLC Programm - Logdatei diff --git a/src/revpicommander/ui/aclmanager_ui.py b/src/revpicommander/ui/aclmanager_ui.py index 63b7243..8bd053a 100644 --- a/src/revpicommander/ui/aclmanager_ui.py +++ b/src/revpicommander/ui/aclmanager_ui.py @@ -87,6 +87,7 @@ class Ui_diag_aclmanager(object): 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.setText(".") 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) @@ -94,6 +95,7 @@ class Ui_diag_aclmanager(object): 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.setText(".") 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) @@ -101,6 +103,7 @@ class Ui_diag_aclmanager(object): 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.setText(".") 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) @@ -147,9 +150,6 @@ class Ui_diag_aclmanager(object): 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__": diff --git a/src/revpicommander/ui/avahisearch_ui.py b/src/revpicommander/ui/avahisearch_ui.py index 3bad86e..9ebf312 100644 --- a/src/revpicommander/ui/avahisearch_ui.py +++ b/src/revpicommander/ui/avahisearch_ui.py @@ -98,7 +98,7 @@ class Ui_diag_search(object): self.act_connect_ssh.setText(_translate("diag_search", "Connect via SSH (recommended)")) self.act_connect_ssh.setToolTip(_translate("diag_search", "Establish a connection via encrypted SSH tunnel")) self.act_connect_xmlrpc.setText(_translate("diag_search", "Connect via XML-RPC")) - self.act_connect_xmlrpc.setToolTip(_translate("diag_search", "You have to configure your Revolution Pi to accept this chonnections")) + self.act_connect_xmlrpc.setToolTip(_translate("diag_search", "You have to configure your Revolution Pi to accept this connections")) from . import ressources_rc diff --git a/src/revpicommander/ui/debugcontrol_ui.py b/src/revpicommander/ui/debugcontrol_ui.py index 0aa9928..a742012 100644 --- a/src/revpicommander/ui/debugcontrol_ui.py +++ b/src/revpicommander/ui/debugcontrol_ui.py @@ -36,12 +36,15 @@ class Ui_wid_debugcontrol(object): self.verticalLayout = QtWidgets.QVBoxLayout(self.gb_control) self.verticalLayout.setObjectName("verticalLayout") self.btn_read_io = QtWidgets.QPushButton(self.gb_control) + self.btn_read_io.setShortcut("F4") 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.setShortcut("F5") 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.setShortcut("F6") self.btn_write_o.setObjectName("btn_write_o") self.verticalLayout.addWidget(self.btn_write_o) self.cbx_refresh = QtWidgets.QCheckBox(self.gb_control) @@ -64,13 +67,10 @@ class Ui_wid_debugcontrol(object): 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")) diff --git a/src/revpicommander/ui/files_ui.py b/src/revpicommander/ui/files_ui.py index 593ec9f..48e6560 100644 --- a/src/revpicommander/ui/files_ui.py +++ b/src/revpicommander/ui/files_ui.py @@ -56,6 +56,7 @@ class Ui_win_files(object): sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.lbl_path_local.sizePolicy().hasHeightForWidth()) self.lbl_path_local.setSizePolicy(sizePolicy) + self.lbl_path_local.setToolTip("/") self.lbl_path_local.setText("/") self.lbl_path_local.setObjectName("lbl_path_local") self.gridLayout_2.addWidget(self.lbl_path_local, 1, 0, 1, 3) @@ -99,6 +100,7 @@ class Ui_win_files(object): sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.lbl_path_revpi.sizePolicy().hasHeightForWidth()) self.lbl_path_revpi.setSizePolicy(sizePolicy) + self.lbl_path_revpi.setToolTip("/") self.lbl_path_revpi.setText("/") self.lbl_path_revpi.setObjectName("lbl_path_revpi") self.gridLayout_3.addWidget(self.lbl_path_revpi, 1, 0, 1, 2) @@ -163,10 +165,8 @@ class Ui_win_files(object): self.lbl_select_local.setText(_translate("win_files", "Path to development root:")) self.btn_select_local.setToolTip(_translate("win_files", "Open developer root directory")) self.btn_refresh_local.setToolTip(_translate("win_files", "Reload file list")) - self.lbl_path_local.setToolTip(_translate("win_files", "/")) self.tree_files_local.setSortingEnabled(True) self.gb_select_revpi.setTitle(_translate("win_files", "Revolution Pi")) - self.lbl_path_revpi.setToolTip(_translate("win_files", "/")) self.lbl_select_revpi.setText(_translate("win_files", "RevPiPyLoad working directory:")) self.btn_refresh_revpi.setToolTip(_translate("win_files", "Reload file list")) self.tree_files_revpi.setSortingEnabled(True) diff --git a/src/revpicommander/ui/revpicommander_ui.py b/src/revpicommander/ui/revpicommander_ui.py index 1279356..8aaf280 100644 --- a/src/revpicommander/ui/revpicommander_ui.py +++ b/src/revpicommander/ui/revpicommander_ui.py @@ -101,8 +101,10 @@ class Ui_win_revpicommander(object): self.statusbar.setObjectName("statusbar") win_revpicommander.setStatusBar(self.statusbar) self.act_connections = QtWidgets.QAction(win_revpicommander) + self.act_connections.setShortcut("Ctrl+N") self.act_connections.setObjectName("act_connections") self.act_search = QtWidgets.QAction(win_revpicommander) + self.act_search.setShortcut("Ctrl+F") self.act_search.setObjectName("act_search") self.act_quit = QtWidgets.QAction(win_revpicommander) self.act_quit.setObjectName("act_quit") @@ -111,16 +113,21 @@ class Ui_win_revpicommander(object): self.act_info = QtWidgets.QAction(win_revpicommander) self.act_info.setObjectName("act_info") self.act_logs = QtWidgets.QAction(win_revpicommander) + self.act_logs.setShortcut("Ctrl+L") self.act_logs.setObjectName("act_logs") self.act_options = QtWidgets.QAction(win_revpicommander) + self.act_options.setShortcut("Ctrl+O") self.act_options.setObjectName("act_options") self.act_program = QtWidgets.QAction(win_revpicommander) + self.act_program.setShortcut("Ctrl+P") self.act_program.setObjectName("act_program") self.act_developer = QtWidgets.QAction(win_revpicommander) + self.act_developer.setShortcut("Ctrl+D") 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.setShortcut("Ctrl+X") self.act_disconnect.setObjectName("act_disconnect") self.act_reset = QtWidgets.QAction(win_revpicommander) self.act_reset.setObjectName("act_reset") @@ -170,23 +177,16 @@ class Ui_win_revpicommander(object): 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_connections.setShortcut(_translate("win_revpicommander", "Ctrl+N")) 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", "Ctrl+L")) 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", "Ctrl+D")) 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", "RevPi si&mulator...")) from . import ressources_rc diff --git a/translate.pro b/translate.pro index 861d538..8f935a0 100644 --- a/translate.pro +++ b/translate.pro @@ -15,6 +15,7 @@ SOURCES = src/revpicommander/aclmanager.py \ FORMS = ui_dev/aclmanager.ui \ ui_dev/avahisearch.ui \ + ui_dev/backgroundworker.ui \ ui_dev/debugcontrol.ui \ ui_dev/debugios.ui \ ui_dev/files.ui \ @@ -25,6 +26,7 @@ FORMS = ui_dev/aclmanager.ui \ ui_dev/revpiplclist.ui \ ui_dev/revpiprogram.ui \ ui_dev/simulator.ui \ + ui_dev/sshauth.ui \ ui_dev/revpicommander.ui TRANSLATIONS = src/revpicommander/locale/revpicommander_de.ts diff --git a/ui_dev/aclmanager.ui b/ui_dev/aclmanager.ui index 41132da..d3a91c3 100644 --- a/ui_dev/aclmanager.ui +++ b/ui_dev/aclmanager.ui @@ -145,7 +145,7 @@ - . + . @@ -159,7 +159,7 @@ - . + . @@ -173,7 +173,7 @@ - . + . diff --git a/ui_dev/avahisearch.ui b/ui_dev/avahisearch.ui index ae510ce..ba8dbb8 100644 --- a/ui_dev/avahisearch.ui +++ b/ui_dev/avahisearch.ui @@ -148,7 +148,7 @@ Connect via XML-RPC - You have to configure your Revolution Pi to accept this chonnections + You have to configure your Revolution Pi to accept this connections diff --git a/ui_dev/debugcontrol.ui b/ui_dev/debugcontrol.ui index 8afa1ea..ca3fd6e 100644 --- a/ui_dev/debugcontrol.ui +++ b/ui_dev/debugcontrol.ui @@ -59,7 +59,7 @@ Read &all IO values - F4 + F4 @@ -72,7 +72,7 @@ &Refresh unchanged IOs - F5 + F5 @@ -85,7 +85,7 @@ &Write changed outputs - F6 + F6 diff --git a/ui_dev/files.ui b/ui_dev/files.ui index 4d48485..670386e 100644 --- a/ui_dev/files.ui +++ b/ui_dev/files.ui @@ -84,7 +84,7 @@ - / + / / @@ -180,7 +180,7 @@ - / + / / diff --git a/ui_dev/revpicommander.ui b/ui_dev/revpicommander.ui index a95d90b..d41eff6 100644 --- a/ui_dev/revpicommander.ui +++ b/ui_dev/revpicommander.ui @@ -205,7 +205,7 @@ &Connections... - Ctrl+N + Ctrl+N @@ -213,7 +213,7 @@ &Search Revolution Pi... - Ctrl+F + Ctrl+F @@ -236,7 +236,7 @@ PLC &logs... - Ctrl+L + Ctrl+L @@ -244,7 +244,7 @@ PLC &options... - Ctrl+O + Ctrl+O @@ -252,7 +252,7 @@ PLC progra&m... - Ctrl+P + Ctrl+P @@ -260,7 +260,7 @@ PLC de&veloper... - Ctrl+D + Ctrl+D @@ -273,7 +273,7 @@ &Disconnect - Ctrl+X + Ctrl+X