Edouard Tisserant [Fri, 14 Feb 2020 10:29:10 +0100] rev 2837
SVGHMI: ensure that coordinate in CSV file generated by inkscape are both matching svg default unit and in default reference frame
Edouard Tisserant [Thu, 13 Feb 2020 09:43:35 +0100] rev 2836
SVGHMI : still behave, even if important things are missing in SVG widget definitions (ex: needle missing for Meter widget)
Edouard Tisserant [Thu, 13 Feb 2020 09:41:43 +0100] rev 2835
SVGHMI : fix watchdog exception when timeout null
Edouard Tisserant [Tue, 11 Feb 2020 13:56:48 +0100] rev 2834
SVGHMI: be a bit more tolerant with missing HMI paths or missing elements in widgets : continue build (with warning) and fail silently at runtime.
Edouard Tisserant [Thu, 30 Jan 2020 14:33:06 +0100] rev 2833
SVGHMI : fixed bug happening when some SVG ids are containing dashes
Edouard Tisserant [Thu, 23 Jan 2020 13:46:05 +0100] rev 2832
SVGHMI : wait for initial timeout after watchdog is triggered, since it generaly induces HMI restart
Edouard Tisserant [Thu, 23 Jan 2020 11:22:09 +0100] rev 2831
SVGHMI : watchdog is now taking an initial and interval duration as CTN fields.
Edouard Tisserant [Tue, 21 Jan 2020 13:55:03 +0100] rev 2830
SVGHMI : avoid caching of xhtml file by forcing cache-control header in http response.
Edouard Tisserant [Fri, 17 Jan 2020 16:25:45 +0100] rev 2829
SVGHMI : HMI_STRING now also supported from HMI to PLC
Edouard Tisserant [Wed, 15 Jan 2020 11:13:39 +0100] rev 2828
SVGHMI : cosmetic
Edouard Tisserant [Wed, 15 Jan 2020 09:35:29 +0100] rev 2827
SVGHMI non significant fixes
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 14 Jan 2020 11:09:26 +0100] rev 2826
SVGHMI : support for HMI_STRING and HMI_BOOL
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 14 Jan 2020 11:04:18 +0100] rev 2825
plc_debug.c/var_acces.c : whitespace cleanup and other cosmetic changes
Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 13 Jan 2020 15:15:01 +0100] rev 2824
SVGHMI : Added python fomating {port} and {name} to commands so that command can build target URL
Edouard Tisserant [Fri, 10 Jan 2020 17:00:01 +0100] rev 2823
SVGHMI : add on Start, Stop and Watchdog command fields to configuration
Edouard Tisserant [Fri, 10 Jan 2020 13:15:07 +0100] rev 2822
SVGHMI: added a watchdog. To ensure that the whole chain is checked, watchdog use a periodic echo of a hearteat variable. JS client code systematically register /HEARTBEAT at 1s update freq, and reacts on updates of /HEARTBEAT by systematically incrementing it. C code catch /HEARTBEAT update and feeds python-implemented watchdog. For now, watchdog does nothing when tiggered
Edouard Tisserant [Wed, 18 Dec 2019 13:31:22 +0100] rev 2821
Add --on-plc-start --on-plc-stop and --status-change to runtime command line, calling given command respectively on start stop or any event. Command line string is python formated (to eventually include status with {}) before being split (supports quoted strings) and passed to Popen for non-blocking execution.
Edouard Tisserant [Mon, 09 Dec 2019 14:53:42 +0100] rev 2820
SVGHMI : had to move the problem of wkaing up python thread from plc thread to platform specific code.
Since Xenomai's cobalt thread are definitely incompatible with normal posix python interpreter binary's thread, we must synchronize them with arcane rt_pipes (the only ones that really work cross domain) as already done in debug and python async eval blocks.
Edouard Tisserant [Mon, 09 Dec 2019 10:43:54 +0100] rev 2819
SVGHMI: change collect/send thread looping condition to fix infinite loop in some cases
Edouard Tisserant [Tue, 03 Dec 2019 09:46:12 +0100] rev 2818
SVGHMI: re-implemented tree view with classic wxTreeCtl
Edouard Tisserant [Tue, 03 Dec 2019 09:44:48 +0100] rev 2817
Non significant changes, whitespaces, etc.
Edouard Tisserant [Fri, 15 Nov 2019 10:34:14 +0100] rev 2816
SVGHMI: Added simple HMI Tree View.
Edouard Tisserant [Thu, 14 Nov 2019 08:46:32 +0100] rev 2815
SVGHMI: add a class attribute to HMI Tree nodes, set when using HMI_NODE
Edouard Tisserant [Wed, 13 Nov 2019 11:22:53 +0100] rev 2814
SVGHMI: HMI_LABEL and HMI_CLASS become HMI_NODE.
- Name of parent POU becomes HMI tree node name,
- Name of HMI_NODE variable becomes class of the node.
Edouard Tisserant [Wed, 13 Nov 2019 11:21:04 +0100] rev 2813
Add FatalError() method to ConfigTreeNode.
Extensions can report error addressed to user, without a traceback.
Edouard Tisserant [Thu, 07 Nov 2019 16:40:48 +0100] rev 2812
SVGHMI: various fixes to make SVGHMI behave on more versions of twisted and GCC.
Edouard Tisserant [Wed, 30 Oct 2019 15:17:05 +0100] rev 2811
SVGHMI - prepare page with cached data when switching. This prevents values that do not change and that was already subscribed in previous page from keeping undefined.
Edouard Tisserant [Tue, 29 Oct 2019 11:18:58 +0100] rev 2810
SVGHMI: various insignificant code moves, commenting and typos fixes.
Edouard Tisserant [Tue, 29 Oct 2019 09:10:10 +0100] rev 2809
SVGHMI : fancier second page in tests/svghmi
Edouard Tisserant [Mon, 28 Oct 2019 19:52:43 +0100] rev 2808
SVGHMI: SVG viewport now defined so that HMI take scales and fit to the view. Implemented page switch through viewport change, no hiding of widget for now.
Edouard Tisserant [Mon, 28 Oct 2019 10:30:20 +0100] rev 2807
SVGHMI - added simple Meter widget.
Edouard Tisserant [Sun, 27 Oct 2019 22:28:51 +0100] rev 2806
SVGHMI: Quicker update path for input widget when pressing on buttons, do not wait until data comes back, and simply update value text of the pressed widget. Updated PLC prog for more amimated value to display
Edouard Tisserant [Sun, 27 Oct 2019 21:38:10 +0100] rev 2805
SVGHMI: fixed HMI->PLC dataflow : not updates as expected, and not initialized properly after subscribe.
Edouard Tisserant <edouard.tisserant@gmail.com> [Thu, 24 Oct 2019 11:20:04 +0200] rev 2804
Fixed one more sequel of 5f79b194fa63 'SVGHMI: filter out temporary variables created while generating ST code out of FBD.'
Edouard Tisserant [Thu, 24 Oct 2019 10:02:07 +0200] rev 2803
SVGHMI: Added relative changes of HMI value from widgets.
Edouard Tisserant [Tue, 22 Oct 2019 22:58:55 +0200] rev 2802
SVGHMI - Fixed svghmi.{c,js} about HMI -> PLC data unpack.
Edouard Tisserant [Tue, 22 Oct 2019 17:06:31 +0200] rev 2801
SVGHMI: Added init call to all widgets at startup to bind events. More features in Input widget : Edit and Change buttons. WIP HMI->PLC value update, incoherent data detected in C part on update.
Edouard Tisserant [Sat, 19 Oct 2019 01:23:30 +0200] rev 2800
SVGHMI: dispatching data to minimalist "Display" text widget.
Edouard Tisserant [Thu, 17 Oct 2019 15:48:09 +0200] rev 2799
SVGHMI: Many fixes. Subscriptions to HMItree seems to be working, and dispatch function is called in JS with good data. Bidirectional communication now really working.
Edouard Tisserant [Tue, 15 Oct 2019 17:14:48 +0200] rev 2798
SVGHMI : many details about communication implemented in JS, with side effects.
Edouard Tisserant [Fri, 11 Oct 2019 12:03:14 +0200] rev 2797
SVGHMI: added a widgets description object, accessed by id. Added frequency to widgets, as separate template to allow future customization. Excluded non svg elements (i.e inkscape Sets) with HMI: labels from widgets.
Edouard Tisserant [Thu, 10 Oct 2019 10:03:47 +0200] rev 2796
SVGHMI fix logic for page membership detection
Edouard Tisserant [Thu, 10 Oct 2019 09:54:44 +0200] rev 2795
SVGHMI compute default page
Edouard Tisserant [Wed, 09 Oct 2019 11:15:14 +0200] rev 2794
SVGHMI: deduce pages content out of geometry (elements contained in page bounding box are in)
Edouard Tisserant [Wed, 09 Oct 2019 09:04:35 +0200] rev 2793
SVGHMI: use func:function for parsing labels so that it can be used in predicates
Edouard Tisserant [Tue, 08 Oct 2019 13:27:00 +0200] rev 2792
SVGHMI: moved/fixed some templates, avoided namespace problems, added parsing of HMI:* inkscape labels
Edouard Tisserant [Mon, 07 Oct 2019 12:02:45 +0200] rev 2791
SVGHMI: now generating JS object describing widgets and pointing to SVG elements
Edouard Tisserant [Sat, 05 Oct 2019 09:45:58 +0200] rev 2790
SVGHI: compute hmitree variables ordered index in xslt
Edouard Tisserant [Wed, 02 Oct 2019 11:31:02 +0200] rev 2789
SVGHMI: now built.
Edouard Tisserant [Mon, 30 Sep 2019 13:26:11 +0200] rev 2788
SVGHMI: Work in progress. C side mostly implemented, neither built nor tested.
Edouard Tisserant [Fri, 27 Sep 2019 06:54:35 +0200] rev 2787
SVGHMI: More strict formating of active HMI labels : @ separator only used for paths
Edouard Tisserant [Thu, 26 Sep 2019 09:33:49 +0200] rev 2786
SVGHMI: new test svg to drive next implementation
Edouard Tisserant [Wed, 25 Sep 2019 08:53:27 +0200] rev 2785
Non significant changes in generated xslt, side effect of changes in yslt_noindent.yml2
Edouard Tisserant [Tue, 24 Sep 2019 11:58:31 +0200] rev 2784
Merge default in SVGHMI branch
Edouard Tisserant [Fri, 20 Sep 2019 13:38:58 +0200] rev 2783
SVGHMI: Starting to define JS side more in details.
Edouard Tisserant [Thu, 19 Sep 2019 15:32:36 +0200] rev 2782
SVGHMI: added transformation of code given in inkscape's description fields into javascript functions
Edouard Tisserant [Thu, 19 Sep 2019 10:41:39 +0200] rev 2781
SVGHMI: gui.svg -> svghmi.svg
Edouard Tisserant [Thu, 19 Sep 2019 09:01:49 +0200] rev 2780
SVGHMI: moved static JS code to a separate file included at xhtml generation time
Edouard Tisserant [Wed, 18 Sep 2019 11:09:35 +0200] rev 2779
SVGHMI: Work In Progress : fixed pointer types in ctypes interface, cleaned up server startup and cleanup code, changed document type to XHTML, cleaner JS script : encapsulated in a function and in CDATA.
Edouard Tisserant [Wed, 18 Sep 2019 11:03:56 +0200] rev 2778
PLCobject: Call "stop" and "cleanup" methods from python runtime files in reverse order compared to "init" and "start".
Edouard Tisserant [Mon, 16 Sep 2019 13:45:04 +0200] rev 2777
SVGHMI: WIP for python<->C data exchange : message from browser hit the C side.
Edouard Tisserant [Mon, 16 Sep 2019 11:44:20 +0200] rev 2776
SVGHMI: WIP for python<->C data exchange
Edouard Tisserant [Mon, 16 Sep 2019 10:54:15 +0200] rev 2775
SVGHMI: WIP for python<->C data exchange
Edouard Tisserant [Thu, 12 Sep 2019 12:56:47 +0200] rev 2774
SVGHMI: WIP for python<->C data exchange
Edouard Tisserant [Thu, 12 Sep 2019 12:55:32 +0200] rev 2773
SVGHMI: single session for now
Edouard Tisserant [Thu, 12 Sep 2019 12:54:36 +0200] rev 2772
SVGHMI: few fixes on serving
Edouard Tisserant [Wed, 11 Sep 2019 12:24:30 +0200] rev 2771
WIP on svghmi, now builds and runs. HTTP serving + WS transport ready, missing actual data to transmit and thread to collect it.
Edouard Tisserant [Wed, 11 Sep 2019 11:20:11 +0200] rev 2770
Non significant changes to mute GCC warnings about unused variables.
Edouard Tisserant [Thu, 05 Sep 2019 08:35:33 +0200] rev 2769
Fixed sequel of 5f79b194fa63 'SVGHMI: filter out temporary variables created while generating ST code out of FBD.'. Some ref to temporary variables are still not using the _TMP_ prefix. They are quite hard to find, so to be continued...
Edouard Tisserant [Tue, 03 Sep 2019 12:17:33 +0200] rev 2768
SVGHMI: Intermediate state while working on svghmi.c
Edouard Tisserant [Mon, 26 Aug 2019 08:54:02 +0200] rev 2767
svghmi.c : deduplicated variable access code borrowed from plc_debug.c. Added targets/var_access.c.
Edouard Tisserant [Fri, 23 Aug 2019 14:01:31 +0200] rev 2766
SVGHMI: Added iterators in svghmi.c copy-pasted form plc_debug.c
Edouard Tisserant [Fri, 23 Aug 2019 13:01:37 +0200] rev 2765
SVGHMI: svghmi.c now has mutex, iterator, and read/write buffer.
Edouard Tisserant [Thu, 22 Aug 2019 14:58:53 +0200] rev 2764
SVGHMI: draft for svghmi.c. It has all PLC variables pointed in HMI tree in an array.
Edouard Tisserant [Tue, 20 Aug 2019 10:32:34 +0200] rev 2763
Pass HMITree to SVG transform. It seems it could really help to reduce JS tree binding logic in the end.
Edouard Tisserant [Tue, 20 Aug 2019 10:30:59 +0200] rev 2762
Add special nodes at HMI Tree root, fix code to handle special node (no path).
Edouard Tisserant [Tue, 20 Aug 2019 10:08:11 +0200] rev 2761
Swap CTN code gen and Libraries code gen, because SVGHMI use both, and need the library part to produce hmitree before CTN part.
Edouard Tisserant [Tue, 20 Aug 2019 10:01:18 +0200] rev 2760
yslt_noindent : Avoid YSLT's indent logic to interfere when using linequote.
Edouard Tisserant [Wed, 14 Aug 2019 13:06:03 +0200] rev 2759
SVGHMI: make a reasonably basic test
Edouard Tisserant [Wed, 14 Aug 2019 11:05:17 +0200] rev 2758
SVGHMI: filter out temporary variables created while generating ST code out of FBD.
Edouard Tisserant [Tue, 13 Aug 2019 14:04:13 +0200] rev 2757
SVGHMI: added deduction of HMI tree from list of HMI_* instances.
Edouard Tisserant [Mon, 12 Aug 2019 13:09:55 +0200] rev 2756
SVGHMI: added extraction of SVG bounding boxes, obtained from "inkscape -S", and passed to XSLT transform as variable.
Edouard Tisserant [Mon, 12 Aug 2019 13:06:11 +0200] rev 2755
Allow using docutil.get_inkscape_path() on Linux also.
Edouard Tisserant [Fri, 09 Aug 2019 12:12:24 +0200] rev 2754
SVGHMI: little fixes to make the build go through
Edouard Tisserant [Fri, 09 Aug 2019 12:11:31 +0200] rev 2753
SVGHMI: Added XSLT transformation, Makefile to get XSLT from ysl2 (copy of plcopen/Makefile) and a minimal stylesheet to start with.
Edouard Tisserant [Fri, 09 Aug 2019 12:07:33 +0200] rev 2752
Moved XSLT model query python code so that XSLT part can be reused for other transformations (i.e. in SVGHMI)
Edouard Tisserant <edouard.tisserant@gmail.com> [Thu, 08 Aug 2019 15:56:17 +0200] rev 2751
Complete SVGUI test minimal skeleton so that it builds.
Edouard Tisserant [Wed, 07 Aug 2019 14:18:22 +0200] rev 2750
intermediate commit, work in progress
Edouard Tisserant [Thu, 18 Jul 2019 14:09:33 +0200] rev 2749
Use a POU Library's Generate_C to collect all variables in SVGHMI.
Edouard Tisserant [Wed, 17 Jul 2019 09:44:44 +0200] rev 2748
merged
Edouard Tisserant [Wed, 17 Jul 2019 09:44:11 +0200] rev 2747
Enable svghmi plugin in features, and small fixes to skeleton.
Edouard Tisserant [Mon, 15 Jul 2019 09:05:00 +0200] rev 2746
Merged default in svghmi
Edouard Tisserant [Fri, 12 Jul 2019 11:58:22 +0200] rev 2745
Skeleton for svghmi extension
Edouard Tisserant <edouard.tisserant@gmail.com> [Wed, 30 Jun 2021 15:44:32 +0200] rev 2744
IDE: Allow POU Libraries to inject PLC Configurations globals during build.
Ivan Tyagov <ivan@nexedi.com> [Wed, 30 Jun 2021 16:46:14 +0300] rev 2743
WIP: initial setup.
Edouard Tisserant [Wed, 16 Jun 2021 12:15:02 +0200] rev 2742
IDE: Fixed variable traces graphs RingBuffers. Removed an apparently useless wxCallAfter in trend graph that was leading to pydeadobject exception on wxGTK when double-clicking.
Edouard Tisserant [Mon, 14 Jun 2021 16:48:39 +0200] rev 2741
IDE: Cleaned up some useless tests in variable trace data handling code, changed from bare numpy arrays to RingBuffers inorder to avoid RAM outage and crash after long tracing session.
Edouard Tisserant [Fri, 11 Jun 2021 11:56:07 +0200] rev 2740
IDE: Log: Prevent crash when display progress on empty log.
Edouard Tisserant [Thu, 10 Jun 2021 09:40:05 +0200] rev 2739
Copy description when DnD variables from CodeFile CTN to POUs
Edouard Tisserant [Tue, 25 May 2021 15:05:38 +0200] rev 2738
Runtime: Fix exception "Worker is disabled" when connecting while PLC runtime is starting.
Pyro/wamp/UI delegate jobs to Worker, causing race condition if worker isn't already started.
Added a function to ensure that Worker is already created when pyro or UI starts
Edouard Tisserant [Mon, 24 May 2021 14:33:54 +0200] rev 2737
Finished fixing Wx IDs abuse. There was still some wasted IDs because of wx.NewId calls in many places where it wasn't needed, and those IDs were not re-used. As a consequence Beremiz was making exception crashing after a few hours of intensive use.
Edouard Tisserant [Wed, 12 May 2021 11:36:56 +0200] rev 2736
Add ThirPartyPath call in util.path module, so that individual extensions don't have to each implement same logic to find dependencies
Edouard Tisserant [Thu, 01 Apr 2021 15:51:24 +0200] rev 2735
IDE: Add a shortcut to project "Clean" action : F9
Edouard Tisserant [Mon, 29 Mar 2021 15:46:02 +0200] rev 2734
Fixed misuse of GridCellEditor in DurationCellEditor, potentially leading to crash on windows.
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 23 Mar 2021 05:08:51 +0100] rev 2733
Allow using spin() from ProcessLogger even with no logger given.
Edouard Tisserant [Wed, 10 Mar 2021 09:59:18 +0100] rev 2732
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.
This is called before python thread processing py_eval blocks starts. Example purpose: attach additional ressource to web services
Edouard Tisserant [Tue, 02 Mar 2021 10:11:45 +0100] rev 2731
IDE: Fix logging of external process execution time so that it is visible on windows as well.
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 02 Mar 2021 09:42:50 +0100] rev 2730
IDE: Process Logging : Add annotation in log so that user can see build is still alive and how long external process takes.
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 02 Mar 2021 09:28:44 +0100] rev 2729
IDE: Iec2CSettings: Log wasn't available in case of exception when launching iec2c.
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 02 Mar 2021 09:25:55 +0100] rev 2728
IDE: Log: Cosmetic changes, refactoring
Edouard Tisserant [Mon, 01 Mar 2021 15:45:13 +0100] rev 2727
IDE: Make ST code generation more verbose, since it can be really long in case of big programs, and it is better to let the user know build is still in progress.
Edouard Tisserant <edouard.tisserant@gmail.com> [Sun, 28 Feb 2021 21:45:10 +0100] rev 2726
IDE: Fixed log console that was not updating line by line smoothly when building.
Edouard Tisserant [Fri, 09 Apr 2021 09:45:28 +0200] rev 2725
merge
Tomaz Orac [Tue, 02 Feb 2021 13:47:48 +0100] rev 2724
Merge
Mario de Sousa <msousa@fe.up.pt> [Thu, 28 Jan 2021 14:51:16 +0000] rev 2723
merge
Mario de Sousa <msousa@fe.up.pt> [Thu, 28 Jan 2021 14:50:26 +0000] rev 2722
modbus plugin: add (user accessible) transaction bool flags for servers/slaves; FIX BUG in previous commit affecting RTU slaves.
Mario de Sousa <msousa@fe.up.pt> [Thu, 28 Jan 2021 14:17:40 +0000] rev 2721
modbus plugin: add (user accessible) transaction counters for servers/slaves
Edouard Tisserant [Tue, 23 Feb 2021 16:16:12 +0100] rev 2720
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.
Edouard Tisserant [Mon, 18 Jan 2021 10:59:28 +0100] rev 2719
Merge
Mario de Sousa <msousa@fe.up.pt> [Fri, 25 Dec 2020 17:12:02 +0000] rev 2718
merge
Mario de Sousa <msousa@fe.up.pt> [Fri, 25 Dec 2020 17:11:38 +0000] rev 2717
modbus plugin: add/fix comments
Mario de Sousa <msousa@fe.up.pt> [Mon, 21 Dec 2020 22:35:07 +0000] rev 2716
merge
Mario de Sousa <msousa@fe.up.pt> [Mon, 21 Dec 2020 22:32:03 +0000] rev 2715
Modbus plugin: fix bug - map BOOL flag onto C u8 (was incorrectly mapped onto u16)
Mario de Sousa <msousa@fe.up.pt> [Mon, 21 Dec 2020 22:26:36 +0000] rev 2714
Modbus plugin: map status of MB transaction onto 2 located BYTE vars (instead of a singlw WORD var).
Mario de Sousa <msousa@fe.up.pt> [Mon, 21 Dec 2020 21:15:47 +0000] rev 2713
Modbus plugin: provide user programs feedback on current connection status mapped onto a WORD located variable
Edouard Tisserant [Wed, 13 Jan 2021 10:28:09 +0100] rev 2712
Removed harmful assert in ProcessLogger.
ProcessLogger was having an assert in constructor when missing logger, leading to systematic exception when testing options accepted by compiler. This exception was silenced in ProjectController, and then MatIEC was always called without options.
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 22 Dec 2020 18:05:05 +0100] rev 2711
Fix missing import, consequence of bad resolution of conflicting hg graft of f0a822ef9fa0 into d15a997859b1
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 14 Jan 2020 11:04:18 +0100] rev 2710
plc_debug.c/var_acces.c : whitespace cleanup and other cosmetic changes
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 03 Jul 2020 14:02:04 +0200] rev 2709
Prevent global python_poll blocks to be created when accidentally adding content to C-File OnChange column.
Edouard Tisserant [Mon, 11 May 2020 11:10:38 +0200] rev 2708
DEBUG: (IDE side) fixed wrong implementation of anti-rapid-fire leading to systematic delay in subscribing
Edouard Tisserant [Tue, 11 Feb 2020 13:56:48 +0100] rev 2707
XSLTransform.py: added get_error_log()
Edouard Tisserant [Mon, 31 Aug 2020 13:54:08 +0200] rev 2706
Attempt to workaround problem reported about empty plc.xml after unrelated crash. Now, if etree model is corrupted in a way tostring() would generate an empty string, exception prevents saving.
Edouard Tisserant [Thu, 03 Sep 2020 11:16:08 +0200] rev 2705
docsvg.py : Better error message when inkscape is not installed.
Edouard Tisserant <edouard.tisserant@gmail.com> [Sat, 04 Apr 2020 09:41:32 +0200] rev 2704
Fix unmatched "Courier" font for monospace fonts on latest ubuntu 20.04. Selected "FreeMono" instead, present since at least 18.04
Edouard Tisserant [Mon, 13 Jul 2020 13:56:42 +0200] rev 2703
Python Runtime: order of execution of extension's init() and cleanup() now reflects order of appearance of extensions in configuration tree.
Edouard Tisserant [Tue, 22 Dec 2020 14:53:15 +0100] rev 2702
Runtime: change PLCObject 'BlobAsFile' method to allow customization by overriding
Edouard Tisserant [Mon, 21 Dec 2020 11:10:27 +0100] rev 2701
WebInterface: better wording for wiping PLC content: "Repair"
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 18 Dec 2020 11:50:28 +0100] rev 2700
runtime: added restart/reset button in web settings. Accidentaly fixed web settings logging feature.
Edouard Tisserant [Thu, 10 Dec 2020 15:48:15 +0100] rev 2699
Add a little test to see OnChange's .count .first .last in action
Edouard Tisserant [Thu, 10 Dec 2020 14:54:42 +0100] rev 2698
Fixed "Onchange" object added in previous commit
Edouard Tisserant <edouard.tisserant@gmail.com> [Thu, 10 Dec 2020 11:37:27 +0100] rev 2697
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.
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 20 Nov 2020 11:17:40 +0100] rev 2696
Project tree: avoid flickering and glitches in notebook when selecting some still not opened ConfigTreeNode
Edouard Tisserant <edouard.tisserant@gmail.com> [Wed, 18 Nov 2020 23:06:16 +0100] rev 2695
Project tree: Clicking on ConfigTreeNode should have same behaviour as for POUS and other IEC types : simple click to select and double click to open.
Edouard Tisserant [Wed, 18 Nov 2020 10:15:44 +0100] rev 2694
py_ext: better handling of coma separated OnChange attribute for python safe global variables.
Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 02 Nov 2020 10:56:09 +0100] rev 2693
Allow customization of generated py_ext OnChange calls, by adding a static method to PythonFileCTNMixin that can the be later hot patched.
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 20 Oct 2020 00:23:52 +0200] rev 2692
PY_EXT: OnChange is now a coma separated list of callables. Updated tests/python accordingly.
Edouard Tisserant [Tue, 15 Sep 2020 13:57:06 +0200] rev 2691
Modbus: fixed typo in ctype typing.
Edouard Tisserant [Fri, 11 Sep 2020 13:46:41 +0200] rev 2690
MODBUS: Fix saving of websettings.
Edouard Tisserant [Thu, 10 Sep 2020 16:08:26 +0200] rev 2689
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.
Mario de Sousa <msousa@fe.up.pt> [Thu, 13 Aug 2020 19:00:38 +0100] rev 2688
Modbus plugin: reformat code, and add comment.
Mario de Sousa <msousa@fe.up.pt> [Thu, 13 Aug 2020 18:42:02 +0100] rev 2687
Modbus plugin: fix runtime periodic timer (don't use POSIX timer)
Edouard Tisserant [Wed, 01 Jul 2020 10:36:20 +0200] rev 2686
Modbus and Bacnet websettings : Rename variables and functions to avoid name collisions.
Websettings for modbus and bacnet are now passed to runtime as python files loaded (execfile) at init of PLCObject with the same globals.
Because if this, same names used in previously different modules now colide.
Edouard Tisserant [Mon, 29 Jun 2020 14:38:04 +0200] rev 2685
Modbus: fix strange side effect of re-use of condition variables or mutex with Xenomai : without bzero of the associated types, mutex keeps locked.
Edouard Tisserant [Wed, 24 Jun 2020 14:38:11 +0200] rev 2684
Modbus: fix client timer invalid arguments.
Edouard Tisserant [Tue, 23 Jun 2020 13:50:21 +0200] rev 2683
Modbus add a timer thread, and switch timer to SIGEV_THREAD_ID to follow xenomai posix skin restrictions.
Edouard Tisserant [Fri, 19 Jun 2020 11:07:25 +0200] rev 2682
Runtime: Fix typo in PLCObject leading to exception when reporting failure.
Edouard Tisserant [Thu, 18 Jun 2020 14:18:16 +0200] rev 2681
Py_ext: use non-derived type when generating C code for handling Python PLC globals.
Edouard Tisserant [Wed, 17 Jun 2020 14:32:55 +0200] rev 2680
tests/python : add some STRING PLC Python globals with OnChange.
Edouard Tisserant [Wed, 17 Jun 2020 14:30:55 +0200] rev 2679
Runtime: STRING type for Python PLC Globals was making problem with strings, since generated code wasn't doing comparison properly.
Tomaz Orac [Tue, 16 Jun 2020 15:53:52 +0200] rev 2678
Merge
Edouard Tisserant [Tue, 16 Jun 2020 11:12:36 +0200] rev 2677
Modbus: more comments to remember some necessary changes.
Edouard Tisserant [Tue, 16 Jun 2020 10:16:25 +0200] rev 2676
Modbus/BACnet : add some comments so that we don't forget some pending optimization.
Edouard Tisserant [Tue, 16 Jun 2020 10:12:21 +0200] rev 2675
Modbus: Delete stored configuration when identical to default configuration.
Edouard Tisserant [Mon, 15 Jun 2020 14:34:00 +0200] rev 2674
BACnet: prevent saving configuration that is same as default, delete it if so.
Edouard Tisserant [Mon, 15 Jun 2020 14:29:41 +0200] rev 2673
BACnet and Modbus : fix configuration storage directory
Edouard Tisserant [Mon, 15 Jun 2020 14:27:58 +0200] rev 2672
Runtime extrension web settings: distinguish display string and token when calling NS.newExtensionSetting, thus allowing meaningful name to be displayed instead of an id.
Edouard Tisserant [Fri, 12 Jun 2020 14:40:50 +0200] rev 2671
Debug : when BEREMIZ_DEBUG file exist, display all commands issued in console.
Edouard Tisserant [Fri, 12 Jun 2020 14:39:32 +0200] rev 2670
BACnet and Modbus : Simpler configuration management. NevowServer.py now allows each extension to create and delete multiple configuration forms in the setting page, deprecating delSettings and addAfter.
Edouard Tisserant [Fri, 12 Jun 2020 10:30:23 +0200] rev 2669
BACnet and Modbus: Remove additional loading and unloading, use the one already in place for extensions.
Mario de Sousa <msousa@fe.up.pt> [Sun, 07 Jun 2020 23:47:32 +0100] rev 2668
merge
Mario de Sousa <msousa@fe.up.pt> [Sun, 07 Jun 2020 23:46:16 +0100] rev 2667
Bacnet plugin web configuration: strip leading and trailing spaces for net. interface and port numb.
Mario de Sousa <msousa@fe.up.pt> [Sun, 07 Jun 2020 23:38:20 +0100] rev 2666
Modbus plugin, web interface: strip leading and trailing spaces from string parameters
Mario de Sousa <msousa@fe.up.pt> [Sun, 07 Jun 2020 22:32:24 +0100] rev 2665
Modbus plugin web interface: show the keyword "#ANY#" on TCP servers
Mario de Sousa <msousa@fe.up.pt> [Sun, 07 Jun 2020 19:33:32 +0100] rev 2664
Modbus plugin: fix bug: was checking user configuration against wrong limits
Mario de Sousa <msousa@fe.up.pt> [Sun, 07 Jun 2020 18:34:32 +0100] rev 2663
Modbus plugin: fix algorithm detecting Modbus TCP servers using the same IP port on the same network interface
Mario de Sousa <msousa@fe.up.pt> [Sun, 07 Jun 2020 12:28:21 +0100] rev 2662
Modbus plugin: check for duplicate "Configuration_Name"
Mario de Sousa <msousa@fe.up.pt> [Sat, 06 Jun 2020 08:51:32 +0100] rev 2661
add comment
Mario de Sousa <msousa@fe.up.pt> [Sat, 06 Jun 2020 08:50:36 +0100] rev 2660
add comment
Mario de Sousa <msousa@fe.up.pt> [Sat, 06 Jun 2020 08:43:41 +0100] rev 2659
merge
Mario de Sousa <msousa@fe.up.pt> [Sat, 06 Jun 2020 07:34:02 +0100] rev 2658
Modbus plugin web configuration: fix comments, and delete un-used code
Mario de Sousa <msousa@fe.up.pt> [Sat, 06 Jun 2020 07:24:42 +0100] rev 2657
Modbus plugin web configuration: use drop down choices for baud, parity and stop bits.
Mario de Sousa <msousa@fe.up.pt> [Fri, 05 Jun 2020 18:02:12 +0100] rev 2656
Modbus plugin web configuration: save node type and addr type to persistant storage
Mario de Sousa <msousa@fe.up.pt> [Mon, 01 Jun 2020 14:11:22 +0100] rev 2655
Add web extension: configure Modbus Server plugin parameters
Mario de Sousa <msousa@fe.up.pt> [Mon, 01 Jun 2020 08:54:26 +0100] rev 2654
Add web extension: configure Modbus plugin parameters (currently only supports Modbus clients)
Edouard Tisserant [Tue, 02 Jun 2020 13:37:34 +0200] rev 2653
Runtime: create .md5 file at the end of all transfered files being written to disk, so that it presence indicates completeness of transfer.
Edouard Tisserant [Tue, 02 Jun 2020 11:34:50 +0200] rev 2652
IDE: Main toolbar : Show repair button also in stop mode. Move repair button after disconnect button.
Edouard Tisserant [Mon, 01 Jun 2020 14:47:31 +0200] rev 2651
Runtime: fsync() files when transfering them, to prebent data loss when poweroff soon after programming. Fixed variable naming as a side effect.
Mario de Sousa <msousa@fe.up.pt> [Thu, 28 May 2020 11:16:59 +0100] rev 2650
merge
Mario de Sousa <msousa@fe.up.pt> [Thu, 28 May 2020 11:15:22 +0100] rev 2649
BACnet plugin: Add web interface for online parameter configuration
Mario de Sousa <msousa@fe.up.pt> [Thu, 28 May 2020 11:01:42 +0100] rev 2648
modbus_plugin: generate nicer error message, instead of a traceback
Mario de Sousa <msousa@fe.up.pt> [Thu, 28 May 2020 10:54:48 +0100] rev 2647
Modbus plugin: Add "exec. req. flag" and "write on change" features
Edouard Tisserant [Thu, 28 May 2020 11:38:09 +0200] rev 2646
PLCObject : reorganize code in StartPLC(), add a PreStartPLC() empty method, to be overloaded by runtime extensions.
Edouard Tisserant [Tue, 26 May 2020 09:58:20 +0200] rev 2645
Solve import order problem when POULibrary imports ConfigTreeNode because of UserAddressedException. Now UserAddressedException is declared in POULibrary.py, as a quick and dirty fix, but some independant module should be created for beremiz exceptions in general.
Edouard Tisserant [Wed, 18 Dec 2019 13:31:22 +0100] rev 2644
Add --on-plc-start --on-plc-stop and --status-change to runtime command line, calling given command respectively on start stop or any event. Command line string is python formated (to eventually include status with {}) before being split (supports quoted strings) and passed to Popen for non-blocking execution.
Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 25 Nov 2019 08:10:45 +0100] rev 2643
Etherlab : Merged 2014-2018 changes from jblee and others
Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 25 Nov 2019 08:26:55 +0100] rev 2642
Close branch ethercat_from_kosmos
Edouard Tisserant <edouard.tisserant@gmail.com> [Wed, 20 Nov 2019 16:57:15 +0100] rev 2641
EtherCat master plugin : commit changes recovered from KOSMOS 2018 installer, unkown author(s).
Edouard Tisserant [Wed, 13 Nov 2019 11:21:04 +0100] rev 2640
Add FatalError() method to ConfigTreeNode.
Extensions can report error addressed to user, without a traceback.
Edouard Tisserant <edouard.tisserant@gmail.com> [Thu, 24 Oct 2019 11:20:04 +0200] rev 2639
Fixed one more sequel of marking temporary variables created while generating ST code out of FBD
Edouard Tisserant [Wed, 09 Oct 2019 09:04:35 +0200] rev 2638
Changed yslt_noindent.yml2 again
Edouard Tisserant [Wed, 25 Sep 2019 08:53:27 +0200] rev 2637
Non significant changes in generated xslt, side effect of changes in yslt_noindent.yml2
Edouard Tisserant [Thu, 19 Sep 2019 15:32:36 +0200] rev 2636
More customizations to yslt
Edouard Tisserant [Wed, 18 Sep 2019 11:03:56 +0200] rev 2635
PLCobject: Call "stop" and "cleanup" methods from python runtime files in reverse order compared to "init" and "start".
Edouard Tisserant [Wed, 11 Sep 2019 11:20:11 +0200] rev 2634
Non significant changes to mute GCC warnings about unused variables.
Edouard Tisserant [Thu, 05 Sep 2019 08:35:33 +0200] rev 2633
Fixed sequel of earlier commit in PLCGenerator.py. Some ref to temporary variables are still not using the _TMP_ prefix. They are quite hard to find, so to be continued...
Edouard Tisserant [Mon, 26 Aug 2019 08:54:02 +0200] rev 2632
variable access code moved from plc_debug.c to targets/var_access.c for easiewr re-use in ext.
Edouard Tisserant [Tue, 20 Aug 2019 10:08:11 +0200] rev 2631
Swap CTN code gen and Libraries code generation order. In general library part of an extension needs to be computed before CTN part.
Edouard Tisserant [Tue, 20 Aug 2019 10:01:18 +0200] rev 2630
yslt_noindent : Avoid YSLT's indent logic to interfere when using linequote.
Edouard Tisserant [Wed, 14 Aug 2019 11:05:17 +0200] rev 2629
Add marker to temporary variables created while generating ST code out of FBD, so that they can be recognized as such.
Edouard Tisserant [Mon, 12 Aug 2019 13:06:11 +0200] rev 2628
Allow using docutil.get_inkscape_path() on Linux also.
Edouard Tisserant [Fri, 09 Aug 2019 12:07:33 +0200] rev 2627
Moved XSLT model query python code so that XSLT part can be reused for other transformations
Edouard Tisserant [Tue, 24 Sep 2019 11:55:59 +0200] rev 2626
Fixed unitialized parameter in instances_path stylesheet, leading to
calls to add_instance with no data when passing datatypes insteatd of project
root. That bug was making exceptions (for exemple when editing type) when
having arrays of derivated types in project.
Edouard Tisserant <edouard.tisserant@gmail.com> [Sun, 14 Jul 2019 08:43:12 +0200] rev 2625
Fixed code quality according to pep8 and pylint.
Edouard Tisserant <edouard.tisserant@gmail.com> [Sat, 13 Jul 2019 10:57:25 +0200] rev 2624
Fix exception on exit in some case, sequel of an earlier cleanup commit I couldn't find back. Disconnecting the event is apparently the way to go. https://wiki.wxpython.org/Surviving%20with%20wxEVT%20KILL%20FOCUS%20under%20Microsoft%20Windows
Edouard Tisserant [Fri, 12 Jul 2019 11:53:04 +0200] rev 2623
PurgeBlobs was faulty, but it was never having anything to purge. Fixed.
Edouard Tisserant [Fri, 12 Jul 2019 11:51:47 +0200] rev 2622
Fixed repetitive freezing of IDE when connection drops.
when connection lost error was beeing displayed, the involved wxYield
was calling pending plc status periodic update, itself trying to use connector.
At that time connector is still not destroyed and connection
is attempted again when calling GetPLCStatus.
=> Hack : Ensure connector is destroyed before reporting error.
Edouard Tisserant [Wed, 10 Jul 2019 11:21:13 +0200] rev 2621
Better error handling when blob transfer fail
Edouard Tisserant [Wed, 10 Jul 2019 10:43:14 +0200] rev 2620
Removed dead code.
Edouard Tisserant [Tue, 09 Jul 2019 09:49:30 +0200] rev 2619
Now expects 1 more columns in VARIABLE.CSV file generated by MatIEC. Pair with MatIEC commit 9cb7c8bf7dbc :
Add a column to VARIABLES.CSV, containing variable (derived) type name, additionally to current last column contyaining base type name
Edouard Tisserant [Tue, 18 Jun 2019 14:09:23 +0200] rev 2618
Merged workaround for loading bug happening after automatic resize of function blocks. It appears that some code in GraphicCommons.py loop endlessly when wires coordinate do not align with x or y axis. Those erroneous coordinate are now filtered out when loaded in the view.
Edouard Tisserant [Tue, 18 Jun 2019 14:03:08 +0200] rev 2617
Removed debug code and closed branch
Edouard Tisserant [Tue, 18 Jun 2019 13:58:45 +0200] rev 2616
GraphicCommons.py : Wire.SetPoints() move filtering before computation of Start and End points to avoid setting them with arbitrary directions.
Edouard Tisserant [Tue, 18 Jun 2019 09:38:20 +0200] rev 2615
GraphicCommons.py : rewrote Wire.Setpoints.
- trying to make it fix diagonal wires,
- wasn't clear what was intended before, so made it clear :
- duplicate point removal
- segment merging (only if asked)
- remove corners made of opposite direction segments
Edouard Tisserant [Thu, 13 Jun 2019 15:49:48 +0200] rev 2614
'Change POU Type To' becomes 'Duplicate as...', avoiding side effects of type change when POU is already instanciated. Also remove leftover returType tag in ex-function POUs, triggering exceptions at build time.
Edouard Tisserant [Thu, 06 Jun 2019 14:03:16 +0200] rev 2613
Fix PLCObject's purge failing silently with extra_files.
Edouard Tisserant [Thu, 30 May 2019 11:53:13 +0200] rev 2612
LogMessage shouldn't be serialized (can lead to blocking in case of exception in main thread), and do not require it.
Edouard Tisserant [Thu, 30 May 2019 11:51:56 +0200] rev 2611
Fixed typo leading to some exception in some rare corner cases in worker.py
Edouard Tisserant [Tue, 23 Apr 2019 11:01:35 +0200] rev 2610
Added missing 'path' field to WAMP addresses in URI editor.
Edouard Tisserant [Tue, 23 Apr 2019 11:00:37 +0200] rev 2609
Fixed exception when using URI editor for PYRO addresses
Edouard Tisserant [Fri, 19 Apr 2019 13:11:42 +0200] rev 2608
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.
Edouard Tisserant [Fri, 19 Apr 2019 10:53:02 +0200] rev 2607
Add Repair() to WAMP interface
Edouard Tisserant [Thu, 18 Apr 2019 14:42:23 +0200] rev 2606
Merged fix_PLC_runtime_shutdown
Edouard Tisserant [Thu, 18 Apr 2019 14:41:21 +0200] rev 2605
Close fix_PLC_runtime_shutdown
Edouard Tisserant [Thu, 18 Apr 2019 14:35:42 +0200] rev 2604
Runtime worker : unblock the last waiting job and prevent any new job to wait when Main Worker is being shut down.
Edouard Tisserant [Thu, 18 Apr 2019 14:34:22 +0200] rev 2603
Add some "pipe to self" trick in Pyro server to accelerate runtime shutdown instead of waiting for arbitrary pyro timeout.
Edouard Tisserant [Thu, 18 Apr 2019 14:32:43 +0200] rev 2602
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.
Edouard Tisserant [Thu, 18 Apr 2019 14:29:55 +0200] rev 2601
Enure that all threads are joined before trying to exit
Edouard Tisserant [Wed, 17 Apr 2019 14:18:22 +0200] rev 2600
Named runtime's threads to ease debugging
Edouard Tisserant [Wed, 17 Apr 2019 14:15:39 +0200] rev 2599
Added Repair() png icon
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 16 Apr 2019 14:45:41 +0200] rev 2598
pep8 again...
./connectors/PYRO/PSK_Adapter.py:49:1: E302 expected 2 blank lines, found 1
./connectors/PYRO/PSK_Adapter.py:57:5: E303 too many blank lines (2)