Wed, 18 Mar 2020 09:37:26 +0100SVGHMI: update Makefile to pick all changes to any dependency svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Wed, 18 Mar 2020 09:37:26 +0100] rev 2884
SVGHMI: update Makefile to pick all changes to any dependency

Wed, 18 Mar 2020 09:16:14 +0100SVGHMI: created widget_*.ysl2. Renamed widget_common in widgets_common, so that it doesn't match globing. svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Wed, 18 Mar 2020 09:16:14 +0100] rev 2883
SVGHMI: created widget_*.ysl2. Renamed widget_common in widgets_common, so that it doesn't match globing.

Tue, 17 Mar 2020 14:11:54 +0100SVGHMI: moving comments svghmi
Edouard Tisserant [Tue, 17 Mar 2020 14:11:54 +0100] rev 2882
SVGHMI: moving comments

Tue, 17 Mar 2020 14:01:37 +0100SVGHMI: added widget_common.ysl2 svghmi
Edouard Tisserant [Tue, 17 Mar 2020 14:01:37 +0100] rev 2881
SVGHMI: added widget_common.ysl2

Tue, 17 Mar 2020 13:43:19 +0100SVGHMI: More readable debug output gen code svghmi
Edouard Tisserant [Tue, 17 Mar 2020 13:43:19 +0100] rev 2880
SVGHMI: More readable debug output gen code

Tue, 17 Mar 2020 13:34:07 +0100SVGHMI: Cosmetic changes svghmi
Edouard Tisserant [Tue, 17 Mar 2020 13:34:07 +0100] rev 2879
SVGHMI: Cosmetic changes

Tue, 17 Mar 2020 13:16:01 +0100SVGHMI: added inline_svg.ysl2 svghmi
Edouard Tisserant [Tue, 17 Mar 2020 13:16:01 +0100] rev 2878
SVGHMI: added inline_svg.ysl2

Tue, 17 Mar 2020 11:24:07 +0100SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves. svghmi
Edouard Tisserant [Tue, 17 Mar 2020 11:24:07 +0100] rev 2877
SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves.

Tue, 17 Mar 2020 10:34:26 +0100SVGHMI: moved debug code svghmi
Edouard Tisserant [Tue, 17 Mar 2020 10:34:26 +0100] rev 2876
SVGHMI: moved debug code

Tue, 17 Mar 2020 09:29:04 +0100SVGHMI: created detachable_elements.ysl2 svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 17 Mar 2020 09:29:04 +0100] rev 2875
SVGHMI: created detachable_elements.ysl2

Tue, 17 Mar 2020 08:00:33 +0100SVGHMI: more debug code moved to hmi_tree.ysl2 svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 17 Mar 2020 08:00:33 +0100] rev 2874
SVGHMI: more debug code moved to hmi_tree.ysl2

Tue, 17 Mar 2020 07:39:50 +0100SVGHMI : create hmi_tree.ysl2, rename bbox_intersect.ysl2 into geometry.ysl2 and move more code into. Add per included ysl2 file debug output. svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 17 Mar 2020 07:39:50 +0100] rev 2873
SVGHMI : create hmi_tree.ysl2, rename bbox_intersect.ysl2 into geometry.ysl2 and move more code into. Add per included ysl2 file debug output.

Mon, 16 Mar 2020 18:27:49 +0100SVGHMI: created bbox_intersect.ysl2 svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 16 Mar 2020 18:27:49 +0100] rev 2872
SVGHMI: created bbox_intersect.ysl2

Mon, 16 Mar 2020 17:09:23 +0100SVGHMI: Re-enable dispatch to arrays of functions in case of multiple suscription per widget. Still unused, but disabled for reasons not any more true. svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 16 Mar 2020 17:09:23 +0100] rev 2871
SVGHMI: Re-enable dispatch to arrays of functions in case of multiple suscription per widget. Still unused, but disabled for reasons not any more true.

Fri, 13 Mar 2020 21:42:40 +0100SVGHMI: relative pages and page jumps svghmi
Edouard Tisserant [Fri, 13 Mar 2020 21:42:40 +0100] rev 2870
SVGHMI: relative pages and page jumps

Fri, 13 Mar 2020 10:36:13 +0100SVGHMI: take care of path given in HMI:Page and HMI:Jump, but do not apply subscription offset for now. Intermediate commit in a "working" state. svghmi
Edouard Tisserant [Fri, 13 Mar 2020 10:36:13 +0100] rev 2869
SVGHMI: take care of path given in HMI:Page and HMI:Jump, but do not apply subscription offset for now. Intermediate commit in a "working" state.

Thu, 12 Mar 2020 13:16:18 +0100SVGHMI: significant whitespace changes svghmi
Edouard Tisserant [Thu, 12 Mar 2020 13:16:18 +0100] rev 2868
SVGHMI: significant whitespace changes

Thu, 12 Mar 2020 13:15:54 +0100SVGHMI: unsignificant changes or changes in generated code svghmi
Edouard Tisserant [Thu, 12 Mar 2020 13:15:54 +0100] rev 2867
SVGHMI: unsignificant changes or changes in generated code

Thu, 12 Mar 2020 13:14:38 +0100SVGHMI: Stop ignoring HMI_NODE in HMI tree, and count it as a BOOL. Soon we use those nodes as reference for relative page jump, and as an "enable" bit for features associated to an HMI tree fragment. svghmi
Edouard Tisserant [Thu, 12 Mar 2020 13:14:38 +0100] rev 2866
SVGHMI: Stop ignoring HMI_NODE in HMI tree, and count it as a BOOL. Soon we use those nodes as reference for relative page jump, and as an "enable" bit for features associated to an HMI tree fragment.

Thu, 12 Mar 2020 09:33:20 +0100SVGHMI: cosmetic code moving svghmi
Edouard Tisserant [Thu, 12 Mar 2020 09:33:20 +0100] rev 2865
SVGHMI: cosmetic code moving

Tue, 10 Mar 2020 13:57:29 +0100SVGHMI: split page switch into switching subscription and switching elements in the DOM, to ensure that subscriptions have been send before changing DOM, and avoid some flicker. svghmi
Edouard Tisserant [Tue, 10 Mar 2020 13:57:29 +0100] rev 2864
SVGHMI: split page switch into switching subscription and switching elements in the DOM, to ensure that subscriptions have been send before changing DOM, and avoid some flicker.

Mon, 09 Mar 2020 13:43:34 +0100SVGHMI: fix wrong updates of HMI variables on each change, especially when not subscribed. svghmi
Edouard Tisserant [Mon, 09 Mar 2020 13:43:34 +0100] rev 2863
SVGHMI: fix wrong updates of HMI variables on each change, especially when not subscribed.

Mon, 09 Mar 2020 13:40:45 +0100SVGHMI: whitespaces svghmi
Edouard Tisserant [Mon, 09 Mar 2020 13:40:45 +0100] rev 2862
SVGHMI: whitespaces

Fri, 06 Mar 2020 14:43:03 +0100SVGHMI: fixed repeated error when Input widget is missing 'value' element svghmi
Edouard Tisserant [Fri, 06 Mar 2020 14:43:03 +0100] rev 2861
SVGHMI: fixed repeated error when Input widget is missing 'value' element

Fri, 06 Mar 2020 14:42:08 +0100SVGHMI: more decoupling in between UI related and the rest of JS code, still in the aim of enhancing robustness under heavy load. svghmi
Edouard Tisserant [Fri, 06 Mar 2020 14:42:08 +0100] rev 2860
SVGHMI: more decoupling in between UI related and the rest of JS code, still in the aim of enhancing robustness under heavy load.

Fri, 06 Mar 2020 09:35:08 +0100SVGHMI: use requestAnimationFrame to delegate rendering of updates from network. Should help prevent browser collapse leading to watchdog in case of overload. svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 06 Mar 2020 09:35:08 +0100] rev 2859
SVGHMI: use requestAnimationFrame to delegate rendering of updates from network. Should help prevent browser collapse leading to watchdog in case of overload.

Thu, 05 Mar 2020 13:54:29 +0100SVGHMI: Fix disapearing elements in case of nested detachable elements. svghmi
Edouard Tisserant [Thu, 05 Mar 2020 13:54:29 +0100] rev 2858
SVGHMI: Fix disapearing elements in case of nested detachable elements.

Thu, 05 Mar 2020 10:23:03 +0100SVGHMI: Meter widget accepts 2 arguments : min and max, taken in account when min or max text element is missing svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Thu, 05 Mar 2020 10:23:03 +0100] rev 2857
SVGHMI: Meter widget accepts 2 arguments : min and max, taken in account when min or max text element is missing

Wed, 04 Mar 2020 20:02:15 +0100SVGHMI: More precise error message on missing HMI path. Meter widget now defaults 0-100 range when min and max elements arent's present, without error. svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Wed, 04 Mar 2020 20:02:15 +0100] rev 2856
SVGHMI: More precise error message on missing HMI path. Meter widget now defaults 0-100 range when min and max elements arent's present, without error.

Wed, 04 Mar 2020 16:46:35 +0100SVGHMI: more whitespace fixes svghmi
Edouard Tisserant [Wed, 04 Mar 2020 16:46:35 +0100] rev 2855
SVGHMI: more whitespace fixes

Wed, 04 Mar 2020 16:46:03 +0100SVGHMI: unlink clones (i.e. deep copy elements refered by svg:use) inside widget. svghmi
Edouard Tisserant [Wed, 04 Mar 2020 16:46:03 +0100] rev 2854
SVGHMI: unlink clones (i.e. deep copy elements refered by svg:use) inside widget.

Designer can use Inkscape clones to duplicate similar assets accross widget. Those clones are unliked so that elements can be independently transformed by individual widgets.

Wed, 04 Mar 2020 09:31:53 +0100SVGHMI: whitespaces and comments svghmi
Edouard Tisserant [Wed, 04 Mar 2020 09:31:53 +0100] rev 2853
SVGHMI: whitespaces and comments

Tue, 03 Mar 2020 16:29:22 +0100SVGHMI: completely fixed indentation of generated widget description. Lets try to keep it as-is until we can use yslt indentation. svghmi
Edouard Tisserant [Tue, 03 Mar 2020 16:29:22 +0100] rev 2852
SVGHMI: completely fixed indentation of generated widget description. Lets try to keep it as-is until we can use yslt indentation.

Tue, 03 Mar 2020 10:58:00 +0100SVGHMI: re-indent generated JS svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 03 Mar 2020 10:58:00 +0100] rev 2851
SVGHMI: re-indent generated JS

Mon, 02 Mar 2020 16:30:29 +0100SVGHMI: detach/re-attach elements required by pages on page switch svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 02 Mar 2020 16:30:29 +0100] rev 2850
SVGHMI: detach/re-attach elements required by pages on page switch

This is meant to optimize performances with large drawings leading to long restyle or reflow.

Mon, 02 Mar 2020 16:25:35 +0100SVGHMI: re-indenting svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 02 Mar 2020 16:25:35 +0100] rev 2849
SVGHMI: re-indenting

Mon, 02 Mar 2020 14:43:21 +0100SVGHMI: declares pages detachable requirements as an object, to find more efficiently common requirements svghmi
Edouard Tisserant [Mon, 02 Mar 2020 14:43:21 +0100] rev 2848
SVGHMI: declares pages detachable requirements as an object, to find more efficiently common requirements

Mon, 02 Mar 2020 10:29:41 +0100SVGHMI: fix some JS + add generation of detachable elements, to be continued svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 02 Mar 2020 10:29:41 +0100] rev 2847
SVGHMI: fix some JS + add generation of detachable elements, to be continued

Fri, 28 Feb 2020 22:54:07 +0100SVGHMI: now compute discardable elements first so that we can do better grouping of required elements when sumarizing. svghmi
Edouard Tisserant [Fri, 28 Feb 2020 22:54:07 +0100] rev 2846
SVGHMI: now compute discardable elements first so that we can do better grouping of required elements when sumarizing.

Fri, 28 Feb 2020 17:52:35 +0100SVGHMI : documentation for new geometry intersection computation code + little fixes... svghmi
Edouard Tisserant [Fri, 28 Feb 2020 17:52:35 +0100] rev 2845
SVGHMI : documentation for new geometry intersection computation code + little fixes...

Fri, 28 Feb 2020 16:09:21 +0100SVGHMI: detachable and discardable elements sets, Reworked geometric intersection, toward more accurate page content detection. svghmi
Edouard Tisserant [Fri, 28 Feb 2020 16:09:21 +0100] rev 2844
SVGHMI: detachable and discardable elements sets, Reworked geometric intersection, toward more accurate page content detection.

Moved page's widget/element dependency crawling functions so that it is possible to compute a global detachable and discardable elements sets.
Reworked geometric intersection detection logic to distinguish ovelapping and inclusion.
Goal is to include englobing and overlapping graphical elements, but not groups (would then include everything around...). Intermediate commit, to be continued.

Thu, 27 Feb 2020 13:14:24 +0100SVGHMI : still trying to optimize. Added xslt code to identitfy minimum set of elements needed by a particular page. Plan is to remove unseen/unused elements from the DOM, and re-appending them later when used, on page switch. Disabled previous optimization. svghmi
Edouard Tisserant [Thu, 27 Feb 2020 13:14:24 +0100] rev 2843
SVGHMI : still trying to optimize. Added xslt code to identitfy minimum set of elements needed by a particular page. Plan is to remove unseen/unused elements from the DOM, and re-appending them later when used, on page switch. Disabled previous optimization.

Fri, 21 Feb 2020 16:22:44 +0100SVGHMI: attempt to optimize for webkit, because of really slow style recompute in svg:use : "unlink clones" (as in inkscape) but stop deep-copy when meeting a widget, and create a new clone instead. svghmi
Edouard Tisserant [Fri, 21 Feb 2020 16:22:44 +0100] rev 2842
SVGHMI: attempt to optimize for webkit, because of really slow style recompute in svg:use : "unlink clones" (as in inkscape) but stop deep-copy when meeting a widget, and create a new clone instead.

Fri, 21 Feb 2020 16:18:53 +0100SVGHMI: optimize browser work by hiding (display:none) pages that are not displayed. svghmi
Edouard Tisserant [Fri, 21 Feb 2020 16:18:53 +0100] rev 2841
SVGHMI: optimize browser work by hiding (display:none) pages that are not displayed.

Fri, 21 Feb 2020 16:15:33 +0100SVGHMI: Better and less verbose SVG namespace handling in XSLT transform svghmi
Edouard Tisserant [Fri, 21 Feb 2020 16:15:33 +0100] rev 2840
SVGHMI: Better and less verbose SVG namespace handling in XSLT transform

Mon, 17 Feb 2020 13:57:44 +0100SVGHMI: Added mostly untested switch widget svghmi
Edouard Tisserant [Mon, 17 Feb 2020 13:57:44 +0100] rev 2839
SVGHMI: Added mostly untested switch widget

Fri, 14 Feb 2020 21:41:13 +0100SVGHMI: HMI:Page can now be a svg:g group or a svg:use clone, and included/linked widget are included in page. HMI:Jump was updated to be clickable through svg:use, to be generalized. svghmi
Edouard Tisserant [Fri, 14 Feb 2020 21:41:13 +0100] rev 2838
SVGHMI: HMI:Page can now be a svg:g group or a svg:use clone, and included/linked widget are included in page. HMI:Jump was updated to be clickable through svg:use, to be generalized.

Fri, 14 Feb 2020 10:29:10 +0100SVGHMI: ensure that coordinate in CSV file generated by inkscape are both matching svg default unit and in default reference frame svghmi
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

Thu, 13 Feb 2020 09:43:35 +0100SVGHMI : still behave, even if important things are missing in SVG widget definitions (ex: needle missing for Meter widget) svghmi
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)

Thu, 13 Feb 2020 09:41:43 +0100SVGHMI : fix watchdog exception when timeout null svghmi
Edouard Tisserant [Thu, 13 Feb 2020 09:41:43 +0100] rev 2835
SVGHMI : fix watchdog exception when timeout null

Tue, 11 Feb 2020 13:56:48 +0100SVGHMI: be a bit more tolerant with missing HMI paths or missing elements in widgets : continue build (with warning) and fail silently at runtime. svghmi
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.

Thu, 30 Jan 2020 14:33:06 +0100SVGHMI : fixed bug happening when some SVG ids are containing dashes svghmi
Edouard Tisserant [Thu, 30 Jan 2020 14:33:06 +0100] rev 2833
SVGHMI : fixed bug happening when some SVG ids are containing dashes

Thu, 23 Jan 2020 13:46:05 +0100SVGHMI : wait for initial timeout after watchdog is triggered, since it generaly induces HMI restart svghmi
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

Thu, 23 Jan 2020 11:22:09 +0100SVGHMI : watchdog is now taking an initial and interval duration as CTN fields. svghmi
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.

Tue, 21 Jan 2020 13:55:03 +0100SVGHMI : avoid caching of xhtml file by forcing cache-control header in http response. svghmi
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.

Fri, 17 Jan 2020 16:25:45 +0100SVGHMI : HMI_STRING now also supported from HMI to PLC svghmi
Edouard Tisserant [Fri, 17 Jan 2020 16:25:45 +0100] rev 2829
SVGHMI : HMI_STRING now also supported from HMI to PLC

Wed, 15 Jan 2020 11:13:39 +0100SVGHMI : cosmetic svghmi
Edouard Tisserant [Wed, 15 Jan 2020 11:13:39 +0100] rev 2828
SVGHMI : cosmetic

Wed, 15 Jan 2020 09:35:29 +0100SVGHMI non significant fixes svghmi
Edouard Tisserant [Wed, 15 Jan 2020 09:35:29 +0100] rev 2827
SVGHMI non significant fixes

Tue, 14 Jan 2020 11:09:26 +0100SVGHMI : support for HMI_STRING and HMI_BOOL svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 14 Jan 2020 11:09:26 +0100] rev 2826
SVGHMI : support for HMI_STRING and HMI_BOOL

Tue, 14 Jan 2020 11:04:18 +0100plc_debug.c/var_acces.c : whitespace cleanup and other cosmetic changes svghmi
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

Mon, 13 Jan 2020 15:15:01 +0100SVGHMI : Added python fomating {port} and {name} to commands so that command can build target URL svghmi
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

Fri, 10 Jan 2020 17:00:01 +0100SVGHMI : add on Start, Stop and Watchdog command fields to configuration svghmi
Edouard Tisserant [Fri, 10 Jan 2020 17:00:01 +0100] rev 2823
SVGHMI : add on Start, Stop and Watchdog command fields to configuration

Fri, 10 Jan 2020 13:15:07 +0100SVGHMI: 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 svghmi
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

Wed, 18 Dec 2019 13:31:22 +0100Add --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. svghmi
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.