100 Commits
Author SHA1 Message Date
akira 10e838e229 chore: Release 0.12.0
Signed-off-by: Sven Sager <akira@narux.de>
2026-08-07 08:20:06 +02:00
akira 810bf054be feat(i18n): Update German translation files and add new error messages
Update translation entries in `revpicommander_de.ts` and regenerate the
`.qm` file. Includes additions for handling new error states and
messaging, such as SSH authentication failures and RevPiPyLoad
activation issues.

Signed-off-by: Sven Sager <akira@narux.de>
2026-08-07 07:17:53 +02:00
akira 86c644e830 fix: Handle sudo authentication failure during RevPiPyLoad activation
Improve logic to handle scenarios where sudo requires a password for
activating RevPiPyLoad, including user notification and error handling.

Signed-off-by: Sven Sager <akira@narux.de>
2026-08-07 07:11:00 +02:00
akira e7b5848664 feat(ssh): Add ability to send stdin input to send_cmd
Extend the `send_cmd` function to support passing input to stdin when
executing remote shell commands via SSH.

Signed-off-by: Sven Sager <akira@narux.de>
2026-08-07 07:07:22 +02:00
akira 7eda0ac20c refactor: Include exit status in send_cmd and improve decoding logic
Extend `send_cmd` to return `exit_status` along with `stdout` and
`stderr`. Adjust handling to ensure proper decoding of byte outputs to
strings.

Signed-off-by: Sven Sager <akira@narux.de>
2026-08-07 06:26:48 +02:00
akira 393ec93649 fix: Endlessloop during revpipyload activation on remote host
RevPi Commander can activate the `revpipyload` service with an SSH
connection on the remote host and starts a new connection. If the
activation of the service failed, the user was in an endless loop and
had to end the process via the operating system.

Signed-off-by: Sven Sager <akira@narux.de>
2026-08-07 06:09:51 +02:00
akira 31ad5fe228 feat(i18n): Update translations for revpiplclist.ui 2026-08-06 10:00:14 +02:00
akira 2f40a36420 feat: Add support for default local socket in connection settings
Introduces a checkbox to toggle the use of the default local Unix socket
for XML-RPC connections. Updates UI layout and enables dynamic state
handling for related fields, such as address and port, based on socket
usage. Ensures proper state synchronization and settings persistence.

Signed-off-by: Sven Sager <akira@narux.de>
2026-08-06 10:00:14 +02:00
akira 0582925de6 feat: Enhance SSH tunnel handling with Unix socket support
Support forwarding Unix sockets in SSH tunnels by extending
`SSHLocalTunnel`. Update logic to detect and handle remote Unix socket
configurations.

Signed-off-by: Sven Sager <akira@narux.de>
2026-08-06 10:00:14 +02:00
akira 23c09949bb refactor: Replace paramiko with asyncssh for SSH connections
Switches the SSH implementation from `paramiko` to `asyncssh` for
improved capabilities and performance. Updates logic in SSH tunnel
handling, authentication, and dependencies.

Signed-off-by: Sven Sager <akira@narux.de>
2026-08-06 09:59:54 +02:00
akira 50915fd07c fix: State management in connection manager 2026-08-06 09:59:54 +02:00
akira c4531a33bf feat: Option to use unix sockets for xml-rpc 2026-08-06 09:59:53 +02:00
akira 0f04b210d0 chore: Update Jetbrains IDE settings 2026-07-28 08:06:54 +02:00
akira f08ea8ebc6 build(app): Collect complete zeroconf module with PyInstaller
From `zeroconf` version 0.128.5 `zeroconf._utils` has been changed. The
PyInstaller does not collect all submodules automatically, this is now
forced via `--collect-submodules`.
2024-12-02 10:52:28 +01:00
akira 1a087f213d build: Use right backslashes in make.bat file for Windows
Calling programs is written with a single backslash. When passing
parameters to a program, double backslashes should be used, otherwise a
single one could be interpreted as an escape character.
2024-12-02 10:52:28 +01:00
akira 44d9ea4561 build: Let target venv run combined with other targets
The venv target always had to be created as a separate command. Now it
is possible to use it with other targets in a command.
2024-12-02 10:52:28 +01:00
akira 6a1e989e19 chore: Release 0.11.0 2023-11-24 11:59:28 +01:00
akira 6619a172c7 build: Wrong values in make.bat file for windows
During the upgrade of the build system this error was merged. Missing
app-data files and wrong PyInstaller format.
2023-11-24 11:59:28 +01:00
akira eb48557c77 fix: Update proginit to a compatible windows version 2023-11-15 13:42:27 +01:00
akira 356f1d29ff chore: Release 0.11.0rc2 2023-11-15 13:26:38 +01:00
akira af68db167c feat: New context menu entries for DI counters and RO switching cycles
Adds functions to the context menu entries to reset the counters of a DI
module and read the switching cycles of a RO module. In addition, the
labels were also equipped with the context menu, which was otherwise
only on the value fields.
2023-11-15 13:03:52 +01:00
akira 90fde110f3 chore: Release 0.11.0rc1 2023-10-27 11:57:19 +02:00
akira 0050e7ed94 feat: Select start program in developer dialog
In the 'PLC developer', a Python file can now be selected as a start
project on the Revolution Pi. This is transferred to the Revolution
Pi via the new XML-RPC function 'set_plcprogram'. This version is
available from 'revpipyload' 0.11.0.
2023-10-26 12:24:38 +02:00
akira 49298d40a7 refactor: Set new tool tips with version information
Some functions are only available from certain 'revpipyload' versions.
The interface shows this as ToolTips, which now also contain the
version information.
2023-10-26 12:22:18 +02:00
akira a24035be0f fix: Signal connection_recovered when connected via XML-RPC native
The signal 'connection_recovered' was only sent when reconnecting SSH
connections. Now it is also sent after error if the connection is
via the native XML RPC.
2023-10-26 09:03:28 +02:00
akira 6984945a30 refactor: Remove info logs of ssh transport handler loop 2023-10-26 06:26:02 +02:00
akira 649f6cdafa refactor: Remove logging of debug logs from external modules 2023-10-26 06:24:10 +02:00
akira e147c57bf9 style: Change the selection method in developer file lists.
This behavior is now similar to common file browsers, in which
further elements are selected by holding a button, but a new
selection begins with a simple click.
2023-10-26 06:17:42 +02:00
akira 929f7d04d2 feat: Remove selector for Python version
It could be selected between Python 2 and Python 3. Since Python 2 has
not been in support since 31.12.2019, it is now time to set the version
firmly to Python 3.
2023-10-26 06:17:42 +02:00
akira 844ebcb234 feat: Add open-source license viewer to help menu
If the application is built with the Target app*, all license
information of the packages used is collected. These can now be
viewed in the GUI in the help menu.
2023-10-26 06:17:42 +02:00
akira 24f4d688ba build: Upgrade buildsystem with new Makefile and make.bat
If a PyInstaller target is called from the Makefile, all libraries
installed in the virtual environment are captured with version and
license. The file 'bundled-libraries.md' contains a list of libraries
with version and license. The file 'open-source-licenses.txt'
includes the name, version, author, project URL, description and
complete license for each installed library. The files are included
in the output of the PyInstaller.
2023-10-26 06:17:42 +02:00
akira d2be450d98 feat: Upgrade proginit to version 1.3.0 2023-10-26 06:17:42 +02:00
akira 8c2f66b2b5 refactor: Using module based logger and not root logger from proginit 2023-10-26 06:17:42 +02:00
akira 32ee413d9b chore: Recompile UI files with PyQt generator 5.15.7 2023-10-26 06:17:42 +02:00
akira c10a50fa56 chore: Release 0.10.0
Signed-off-by: Sven Sager <akira@narux.de>
2023-09-16 17:11:11 +02:00
akira e4d18f7b4a feat: Change entrypoint name
This will update the alternative shell script as well. It will now just
pass the modules directory to python interpreter to execute the __main__
module.

Signed-off-by: Sven Sager <akira@narux.de>
2023-09-16 17:10:59 +02:00
akira efd27cc96c build: Fix Makefile targets to match GNU coding standards
- Rename target clean-all to distclean
- Add uninstall target
- Install target has to run tests

Signed-off-by: Sven Sager <akira@narux.de>
2023-09-16 10:39:34 +02:00
akira 0494ce53ad fix: Simulator always sets process image to NULL
This fixes the bug that the process image for the simulation is set
to NULL, even though the "Start without changing actual process image"
button is pressed.

Signed-off-by: Sven Sager <akira@narux.de>
2023-09-16 10:39:34 +02:00
akira c56c33f4e5 feat: Try to start RevPiPyLoad via SSH on the Revolution Pi
If the SSH tunnel is used and RevPiPyLoad is not started on the
Revolution Pi, an attempt is now made to start it.

Signed-off-by: Sven Sager <akira@narux.de>
2023-09-16 10:39:34 +02:00
akira e95bf70993 build: Use python interpreter and modules for qt commands in Makefile
The Qt5 commands for creating UI, resources and language files have
now been switched from the shell scripts to the direct call of the
Python modules.

Signed-off-by: Sven Sager <akira@narux.de>
2023-09-16 10:39:34 +02:00
akira 6ee53595e2 feat: SSH tunnel server extended to execute commands on remote host.
Signed-off-by: Sven Sager <akira@narux.de>
2023-09-16 10:39:34 +02:00
akira a0b309ade0 build: Add environment variable to set alternative venv path
Signed-off-by: Sven Sager <akira@narux.de>
2023-09-16 10:39:34 +02:00
akira be03bbe6f3 fix: PLC monitor crashes when a device has no inputs or outputs
The calculation of the length for a device is now carried out
depending on the list content of the inputs and outputs. A length of
0 is now also possible.

Signed-off-by: Sven Sager <akira@narux.de>
2023-09-16 10:39:34 +02:00
akira 92abe46152 chore: Release 0.10.0rc1
At this point we do not release 0.9.10. We will switch directly to
0.10.x because of all the new things and the matching version number
of revpipyload.

Signed-off-by: Sven Sager <akira@narux.de>
2023-09-16 10:39:33 +02:00
akira 27915e5a58 fix: Show program dialog, even if there are no files on the RevPi 2023-08-22 11:58:13 +02:00
akira a8e4638ab9 build: Use system python interpreter in make file 2023-08-22 11:34:37 +02:00
akira 7262ad7e1a Ignore ssh known_hosts from home directory, use own 2023-02-20 17:50:18 +01:00
akira 95d3094623 Bugfix in super call of backgroundworker.py
Change all super calls to default call with no arguments.
2023-02-20 17:42:00 +01:00
akira a96d7d4269 Replaces Master-Slave with Client-Server
Expunging all occurrences of inappropriate language of the query and
response paradigm of PLC communications. We are familiar with the Modbus
terminology and support this change.
https://www.modbus.org/docs/Client-ServerPR-07-2020-final.docx.pdf

An adapted version already exists for the server side. Since the server
side cannot be updated immediately, there is still a translation
function in this project to maintain compatibility.
2023-02-07 13:10:36 +01:00
akira 43d4a97edd Change license from GPLv3 to GPLv2 after approval of all contributors 2023-02-07 10:29:30 +01:00
akira 3eaae9e462 Update translation and messages 2023-02-02 10:48:50 +01:00
akira 7a1038a5ab Bugfix type hinting, PyLoad version handling, piCtory browser
Wrong type hinting for older python versions.
Version string is parsed by regex to match the numbers and ignore rcX.
Open piCtory browser form main dialog was broken.
2023-02-02 09:34:27 +01:00
akira bfaa07aeb4 Add pyinstaller option for linux platform 2023-01-26 19:45:12 +01:00
akira 43d03cc254 Add option to switch word order on debugios
The context menu of a value in debugios has the new Option
"Swap Wordorder". This will first swap words and then apply the byte
order.
2023-01-26 19:43:14 +01:00
akira d203958b5f Bugfix: Add missing packages to install_requires 2023-01-17 13:22:38 +01:00
akira 9202aedf7f Adjustments for creating installations on various operating systems
Add code signing options for macOS.
Adjust make.bat to create venv to use PyInstaller.
Preparing script for Linux to use in /usr/bin.
2023-01-16 17:02:48 +01:00
akira 8e2b8311ef Move version number from __init__.py to __main__.py
This will allow the access from outside the package. setup.py and the
Makefile can use this version number. The __init__.py script imports
the version number, so the module will have the __version__ variable
as usual.
2023-01-15 18:12:26 +01:00
akira 15058feb7e Connection list with add folder button and removed naming bug
The creation of folders was not clear and a bug could rename wrong
elements, which the user does not select.
Now connections and folders are handled in separat ways and the user can
add a new folder by pressing a button.
2023-01-14 16:33:02 +01:00
akira d14b6dccdd New async connection management with user feedback
The fist connection uses the configured timeout of the revpi settings
object.
While the first connection, the user will see a connecting dialog, to
show we are alive and are working. The old behavior was a freezing UI.
2023-01-14 02:42:40 +01:00
akira feb55fe2b5 Move version number from revpicommander.py to __init__.py 2023-01-13 18:26:13 +01:00
akira b36e27a7f2 Clean up keyring when a connection is deleted 2023-01-10 23:23:55 +01:00
akira 5488e7cc81 Bugfix for new settings management
Do not create new internal_id, if the setting already have one.
Do not create new entries, if the setting is the last one in the array.
2023-01-10 15:17:29 +01:00
akira 8790e508ad Show just the hostname without .local in avahisearch.py list 2023-01-10 15:06:46 +01:00
akira 7a7741e60b Save SSH credentials with keyring module
The keyring module will save the username and password of the SSH
connection to the operating system password storage.
2023-01-10 09:08:33 +01:00
akira 2039f6cfe2 Set the use of ssh tunnel to default value for new settings 2023-01-09 20:47:35 +01:00
akira 1e8200cc55 Change most button pressed event to clicked and add global shortcuts
Most events of the buttons was on pressed, which should not be used. Now
the debugcontrol buttons has a repeating pressed event, if you hold the
button, it will read the IOs every 200 ms. The shortcuts F4, F5, F6 to
read/write IOs are now application wide.
2023-01-09 19:40:00 +01:00
akira 98b4879b7f Manage revolution pi saved settings in an own class
Start a complete new setting file with right naming. Import all old
saved connections from old settings file. Revolution Pi saved settings
are now in an own class with all properties and default values. All
modules are using this new setting class, which support the save
function.
2023-01-09 17:22:47 +01:00
akira bfe30513a7 Update Windows setup script to match pyinstaller output 2023-01-07 14:24:10 +01:00
akira 09c95e2319 Update translation file 2023-01-07 13:57:45 +01:00
akira 2c77d7e513 Update Makefile rules 2023-01-07 11:15:39 +01:00
akira d1a0457981 Choose connection type (ssh or xml-rpc) in avahisearch dialog 2023-01-07 11:12:58 +01:00
akira 0c7192e1d4 Configure and start ssh tunneled connections 2023-01-07 10:36:53 +01:00
akira 2f595f66aa Prepare SSH tunnel server and password GUI 2023-01-06 17:59:24 +01:00
akira da5d0a4a59 Use cm.call_remote_function to fetch log files via XML-RPC 2023-01-06 17:05:12 +01:00
akira dee2da0d8c QTranslator uses ui_languages to find translation
Loading translations was very static, now we use the array, the user
set in the gui to find a translation file.
2023-01-06 13:56:33 +01:00
akira d0e6eefd0e Add PyInstaller script for Windows 2023-01-05 15:55:30 +01:00
akira 7f9111b5b0 Update Makefile and requirements.txt for build and clean ui files 2023-01-04 22:26:47 +01:00
akira 2ac1477441 Add icons to commander main window for start, stop and so on 2023-01-04 21:43:20 +01:00
akira a557759063 Switch to setuptools for setup.py 2023-01-04 19:59:47 +01:00
akira 3f2f3e0478 Switch project so src layout
This will make it possible to build pip packages.
Add a make file to compile UI files and build mac and win applications.
2023-01-04 18:12:59 +01:00
akira 2400bd6951 Add context menu with copy and piCtory actions to revpi search dialog 2023-01-03 13:45:32 +01:00
akira 9ec1f1b622 Bugfix: could not open debugcontrol, because of new layout names 2023-01-03 13:24:13 +01:00
akira 0eb28f442e Add translation of status codes 2023-01-03 11:33:13 +01:00
akira 375df9eaba Redesign main window with text boxes to copy host name or ip 2023-01-03 11:08:32 +01:00
akira 0a7eb43d94 Implement update function of ZeroConf ServiceListener 2023-01-03 11:07:11 +01:00
akira 03567dfefe Improved shortcuts to meet the needs of different operating systems 2022-12-01 10:06:04 +01:00
akira cef990df26 Fix qt parents of menu entries in connections 2022-12-01 09:57:04 +01:00
akira 42f43726f6 Add Windows files for pyinstaller and setup generation 2022-11-01 14:52:58 +01:00
akira 0164498a87 Design things: enable HighDpi, dependency versions, icon text 2021-11-19 10:33:13 +01:00
akira ea9a13e18c Bugfix: RevPi simulator could not be startet without existing proc.img file
The simulator will create a new proc.img file on startup if it does not exist.
2021-06-27 11:45:01 +02:00
akira 0831e8253a Fix error in debugios.py with long byte values
Long byte values > 4 Bytes are handled as TEXT values. In some cases this could crash the sps monitor. Now, if we are not able to convert the bytes to a str(), we'll switch that io to "number" format.
2021-06-14 19:51:14 +02:00
akira c1e082107d New release 2021-06-13 21:32:47 +02:00
akira f215b3bbc1 Improved RevPi search window
Show names of already saved connections in parentheses
Show connection error message if we can not connect to RevPi
Save and restore geometry and column width
2021-06-13 21:30:59 +02:00
akira 1354568eb6 Reduce max block to load for log files on slow networks 2021-06-13 20:35:35 +02:00
akira 6bf453790a Fix crash during add new connection 2021-06-04 15:41:43 +02:00
akira 61d543e6c7 Fix error on decoding broken log files 2021-06-03 21:14:18 +02:00
akira 4eec6306a9 Add upload progress display in developer, bugfix on file download in developer 2021-04-26 12:07:47 +02:00
akira 8a2cd9f304 New release 2021-04-25 13:27:42 +02:00
akira 6be0c8d32f Modified translations 2021-04-25 13:17:10 +02:00
akira 3ea43e2931 Bugfix for simulator to prevent GUI crash after first use 2021-04-25 12:44:40 +02:00