runtime/PLCObject.py
Mon, 22 Jan 2024 21:30:23 +0100 Edouard Tisserant Fix variable forcing. Now works with eRPC. PLCObject API changed. default tip
Wed, 17 Jan 2024 22:09:32 +0100 Edouard Tisserant Replace PYRO with ERPC. Work In Progress.
Thu, 07 Dec 2023 22:41:32 +0100 Edouard Tisserant Merge
Wed, 29 Nov 2023 11:54:56 +0100 Edouard Tisserant Runtime: add GetVersions() call to PLCObject, use it in web settings and expose it in WAMP and Pyro.
Thu, 28 Sep 2023 17:56:03 +0200 Edouard Tisserant Runtime/win32: no sys.stdout with pythonw.exe
Sat, 20 May 2023 00:37:31 +0200 Edouard Tisserant Fix bytes/string confusion with Logging
Sat, 20 May 2023 00:33:22 +0200 Edouard Tisserant Use msgpack and remove serpent's bytes workaround
Sun, 30 Oct 2022 13:20:58 +0800 GP Orcullo switched to Pyro5 python3
Tue, 01 Nov 2022 14:21:16 +0800 GP Orcullo str encoding fixes python3
Fri, 28 Oct 2022 14:07:13 +0800 GP Orcullo removed Python2 modules python3
Fri, 28 Oct 2022 12:39:15 +0800 GP Orcullo automated conversion using 2to3-3.9 tool python3
Fri, 21 Oct 2022 18:33:06 +0200 Edouard Tisserant Runtime: fix PLC not terminating when being Repaired (i.e purged). wxPython4
Tue, 02 Aug 2022 11:53:37 +0200 Edouard Tisserant Runtime: Fix PLC python thread crash in case of exception in PostStart customization hook.
Tue, 02 Aug 2022 11:50:54 +0200 Edouard Tisserant IDE+Runtime: fix exception when reconnecting with non-empty trace/force list.
Thu, 09 Dec 2021 10:21:45 +0100 Edouard Tisserant RUNTIME: Variable forcing now uses limited list and buffer instead of systematical instance tree traversal and in-tree "fvalue" to keep track of forced value for pointed variables (external, located). Pointer swapping is performed when forcing externals and located, with backup being restored when forcing is reset. Retain still uses tree traversal. RuntimeLists
Thu, 15 Jul 2021 11:50:44 +0200 Edouard Tisserant Runtime: Handle errors in user's python code more gracefully : make exceptions and allow repair. svghmi
Wed, 10 Mar 2021 09:59:18 +0100 Edouard Tisserant Runtime: Added PostStart methot to PLCObject, called after PLC is started, with all libraries and python object already created, and python extensions "Start" methods being called.
Tue, 23 Feb 2021 16:16:12 +0100 Edouard Tisserant PLCObject : Ensure that PreStart is executed before starting PLC. Also, make sure that python thread doesn't enter in a start/stop loop when ordered to stop.
Tue, 22 Dec 2020 14:53:15 +0100 Edouard Tisserant Runtime: change PLCObject 'BlobAsFile' method to allow customization by overriding
Thu, 10 Dec 2020 14:54:42 +0100 Edouard Tisserant Fixed "Onchange" object added in previous commit
Thu, 10 Dec 2020 11:37:27 +0100 Edouard Tisserant Python Safe Globals now have more reliable triggering of OnChange call. Added "Onchange" object to accessible runtime variables that let user python code see count of changes and first and last values.
Thu, 10 Sep 2020 16:08:26 +0200 Edouard Tisserant Runtime/PLCObject : move call to PreStartPLC right after call to the "start" method of all python extensions, and then just before the start of the python loop executing python_* blocks.
Fri, 19 Jun 2020 11:07:25 +0200 Edouard Tisserant Runtime: Fix typo in PLCObject leading to exception when reporting failure.
Tue, 16 Jun 2020 15:53:52 +0200 Tomaz Orac Merge
Fri, 12 Jun 2020 10:30:23 +0200 Edouard Tisserant BACnet and Modbus: Remove additional loading and unloading, use the one already in place for extensions.
Tue, 02 Jun 2020 13:37:34 +0200 Edouard Tisserant Runtime: create .md5 file at the end of all transfered files being written to disk, so that it presence indicates completeness of transfer.
Thu, 28 May 2020 11:15:22 +0100 Mario de Sousa BACnet plugin: Add web interface for online parameter configuration
Mon, 01 Jun 2020 14:47:31 +0200 Edouard Tisserant Runtime: fsync() files when transfering them, to prebent data loss when poweroff soon after programming. Fixed variable naming as a side effect.
Thu, 28 May 2020 11:38:09 +0200 Edouard Tisserant PLCObject : reorganize code in StartPLC(), add a PreStartPLC() empty method, to be overloaded by runtime extensions.
Wed, 18 Sep 2019 11:03:56 +0200 Edouard Tisserant PLCobject: Call "stop" and "cleanup" methods from python runtime files in reverse order compared to "init" and "start".
Sun, 14 Jul 2019 08:43:12 +0200 Edouard Tisserant Fixed code quality according to pep8 and pylint.
Fri, 12 Jul 2019 11:53:04 +0200 Edouard Tisserant PurgeBlobs was faulty, but it was never having anything to purge. Fixed.
Thu, 06 Jun 2019 14:03:16 +0200 Edouard Tisserant Fix PLCObject's purge failing silently with extra_files.
Thu, 30 May 2019 11:53:13 +0200 Edouard Tisserant LogMessage shouldn't be serialized (can lead to blocking in case of exception in main thread), and do not require it.
Fri, 19 Apr 2019 13:11:42 +0200 Edouard Tisserant Avoid loading PLC at startup when autostart is not set in command line. As a side effect PLC status is artificially set to Stopped, and StartPLC eventually loads PLC if it is not already loaded.
Thu, 18 Apr 2019 14:32:43 +0200 Edouard Tisserant If call to GetPLCstatus can't be executed in PLC, then obtained status is disconnected. Status on "None" is not relevant anymore, and is replaced by Disconnected. fix_PLC_runtime_shutdown
Wed, 17 Apr 2019 14:18:22 +0200 Edouard Tisserant Named runtime's threads to ease debugging
Tue, 16 Apr 2019 11:26:52 +0200 Edouard Tisserant Added RepairPLC() to PLCObject. For now just calling PurgePLC and quit PLC runtime.
Mon, 15 Apr 2019 13:34:09 +0200 Edouard Tisserant Added PurgePLC() method to PLCObject, to be invoked when PLC Status is broken. It clears PLC shared object an extra files and force status to Empty. Added correponding Repair button to toolbar, visible only when PLC status is broken.
Tue, 09 Apr 2019 13:18:51 +0200 Edouard Tisserant pep8 white spaces
Tue, 09 Apr 2019 13:05:35 +0200 Edouard Tisserant Continue fixing deadlock of previous commit, this time occuring when waiting for 'cleanup' python runtime call to finish. Now 'init' and 'cleanup' python runtime calls are called directly from main thread, and aren't anymore invoked in the context of wxMainloop and/or twisted reactor.
Tue, 09 Apr 2019 09:13:55 +0200 Edouard Tisserant Fix deadlock when indirectly calling PLCObject's evaluator() from twisted of wx event loops. Was freezing while transfer/start/stop through Wamp. Serialize all PLCObject's call to self.PythonRuntimeCall into the same PythonThread thread.
Mon, 18 Mar 2019 12:07:49 +0300 Andrey Skvortsov Fix pylint warning [C0325(superfluous-parens), ] Unnecessary parens after u'if' keyword
Wed, 13 Mar 2019 14:11:13 +0300 Andrey Skvortsov Replace md5 module with hashlib
Wed, 13 Mar 2019 11:47:03 +0300 Andrey Skvortsov Fix various pylint and pep8 errors
Mon, 11 Mar 2019 01:03:32 +0100 Edouard Tisserant check_sources.sh makes me become even less productive
Wed, 13 Feb 2019 09:41:35 +0100 Edouard Tisserant Reworked chunk based transfer to support duplicated files (i.e. files with same content, but different names)
Fri, 01 Feb 2019 14:14:13 +0100 Edouard Tisserant Fixed deadlock in runtime's Worker. Was discovered while using WAMP and PYRO simultaneously.
Thu, 31 Jan 2019 14:10:06 +0100 Edouard Tisserant Add a debugger token to SetTraceVariables and GetTraceVariables to prevent crash an inconsistant data in case of multiple connections. Last connection now takes over existing connections's debug, and first connected IDE gets a wrning.
Tue, 04 Dec 2018 11:31:58 +0100 Edouard Tisserant Chunk based transfer for PLC binary and extra files, and some collateral code refactoring.
Fri, 23 Nov 2018 12:13:24 +0100 Edouard Tisserant Merged. Some changes that should already have been incuded during previous merge (mostly about PlcStatus) have been included this time.
Wed, 10 Oct 2018 10:26:27 +0300 Andrey Skvortsov python3 support: pylint, W1606 # (execfile-builtin) execfile built-in referenced
Tue, 09 Oct 2018 14:03:44 +0300 Andrey Skvortsov python3 support: pylint, W1607 # (file-builtin) file built-in referenced
Thu, 04 Oct 2018 12:07:16 +0300 Andrey Skvortsov python3 support: pylint, W1613 # (xrange-builtin) xrange built-in referenced
Thu, 04 Oct 2018 11:25:42 +0300 Andrey Skvortsov python3 support: pylint, W1648 # (bad-python3-import) Module moved in Python 3
Fri, 23 Nov 2018 00:33:04 +0100 Edouard Tisserant Merge, with surprizingly little conflicts
Wed, 03 Oct 2018 11:44:57 +0300 Andrey Skvortsov Fix old style exception raise and exec syntax
Tue, 02 Oct 2018 18:08:49 +0300 Andrey Skvortsov Use python 3 compatible exception syntax everywhere
Tue, 02 Oct 2018 16:53:14 +0300 Andrey Skvortsov Use predefined constants for PlcStatus instead of string literals
Mon, 29 Oct 2018 11:33:36 +0100 Edouard Tisserant Automatically get PSK and ID when connecting to PYRO[S], so that future connection through PYROS can use that same key. Also fixed case to UPPER for *PSK.