runtime/PLCObject.py
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.
Wed, 03 Oct 2018 00:05:32 +0200 Edouard Tisserant Please pylint and pep8
Tue, 21 Aug 2018 16:11:02 +0200 Edouard Tisserant Refactoring. Separated PLC Object, PYRO Server and MainWorker :
Thu, 19 Apr 2018 14:53:42 +0200 Edouard Tisserant PEP-8 and PyLint
Thu, 19 Apr 2018 12:22:40 +0200 Edouard Tisserant Rework of runtime non-real-time threading, and shared object dynamic loading :
Tue, 17 Apr 2018 11:19:18 +0200 Edouard Tisserant Stripped forgotten debug code
Mon, 16 Apr 2018 16:11:18 +0200 Edouard Tisserant Fixed Xenomai 3 PLC stop freeze. Now use explicit finish command with pipes. Closing both ends of pipes doesn't abort blocking read anymore.
Sat, 14 Apr 2018 10:09:33 +0200 Edouard Tisserant PLCObject got more methods serialized through worker : Start, Stop, NewPLC.
Fri, 13 Apr 2018 00:29:52 +0200 Edouard Tisserant Fixed implementation of runtime worker that ensure that PLCObject Load and Unload methods always run main thread.
Thu, 12 Apr 2018 22:20:38 +0200 Edouard Tisserant Intermediate state while implementing runtime worker to ensure that PLCObject Load and Unload methods always run main thread.
Thu, 12 Apr 2018 16:38:09 +0200 Edouard Tisserant Stripped more dead code.
Tue, 20 Feb 2018 15:09:01 +0100 Edouard Tisserant Another attempt to make BitBuket's version of pylint happy.
Tue, 20 Feb 2018 14:46:12 +0100 Edouard Tisserant Attempt to make BitBuket's version of pep8 and pylint happy.