Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 29 Dec 2020 15:35:39 +0100] rev 3099
SVGHMI: Added clipping to min and max value for all widget using @path,min,max syntax. Added overshot() and undershot() methods to widget base class, called when value is limited to max or min respectively.
Edouard Tisserant <edouard.tisserant@gmail.com> [Thu, 24 Dec 2020 17:00:43 +0100] rev 3098
SVGHMI: decoupled operation string evaluation from HMI variable uptdate in change_hmi_variable(), paving the way for min/max boundaries enforcement
Edouard Tisserant <edouard.tisserant@gmail.com> [Thu, 24 Dec 2020 16:56:19 +0100] rev 3097
SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description
Edouard Tisserant [Tue, 22 Dec 2020 14:57:59 +0100] rev 3096
Merged default in svghmi branch
Edouard Tisserant [Mon, 21 Dec 2020 11:10:27 +0100] rev 3095
WebInterface: better wording for wiping PLC content: "Repair"
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 18 Dec 2020 15:52:58 +0100] rev 3094
SVGHMI: almost rewrote Input widget to make it new class based style.
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 18 Dec 2020 11:50:28 +0100] rev 3093
runtime: added restart/reset button in web settings. Accidentaly fixed web settings logging feature.
Edouard Tisserant [Thu, 17 Dec 2020 19:31:00 +0100] rev 3092
SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other.
Edouard Tisserant [Wed, 16 Dec 2020 15:44:24 +0100] rev 3091
SVGHMI: change scroll buttons into single unicode triangle and center them. Use highlight rectangle duplicated and hidden to catch selection clicks so that the whole row is clickable.
Edouard Tisserant [Tue, 15 Dec 2020 13:43:21 +0100] rev 3090
SVGHMI: DropDown widget now using new class based style
Edouard Tisserant [Thu, 10 Dec 2020 15:48:15 +0100] rev 3089
Add a little test to see OnChange's .count .first .last in action
Edouard Tisserant [Thu, 10 Dec 2020 14:54:42 +0100] rev 3088
Fixed "Onchange" object added in previous commit
Edouard Tisserant <edouard.tisserant@gmail.com> [Thu, 10 Dec 2020 11:37:27 +0100] rev 3087
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 [Mon, 07 Dec 2020 09:49:34 +0100] rev 3086
SVGHMI: cosmetic fixes in button widget
Edouard Tisserant [Sat, 05 Dec 2020 16:59:27 +0100] rev 3085
SVGHMI: Rewrote button widget.
Edouard Tisserant [Wed, 02 Dec 2020 14:33:24 +0100] rev 3084
SVGHMI: update generated XSLT
Edouard Tisserant [Wed, 02 Dec 2020 14:32:56 +0100] rev 3083
SVGHMI: stuff test so that it moves all the time, to have better chance to spot memory leaks...
Edouard Tisserant [Wed, 02 Dec 2020 14:31:57 +0100] rev 3082
SVGHMI: prevent unwnted context menu and pinch zoom
Edouard Tisserant [Wed, 02 Dec 2020 14:30:58 +0100] rev 3081
SVGHMI: more attempts to prevent losing memory in JS closure
Edouard Tisserant [Fri, 27 Nov 2020 18:06:34 +0100] rev 3080
SVGHMI: WIP trying to reduce memory usage : use .onclick onstead of SetAttribute, avoid useless closure and object creation when possible, etc.
Edouard Tisserant [Wed, 25 Nov 2020 14:47:47 +0100] rev 3079
SVGHMI: update generated xslt file
Edouard Tisserant [Wed, 25 Nov 2020 14:47:23 +0100] rev 3078
SVGHMI: use const when applicable
Edouard Tisserant [Wed, 25 Nov 2020 14:46:25 +0100] rev 3077
SVGHMI: prevents text and svg elements selection on the whole page when dragging.
Edouard Tisserant [Wed, 25 Nov 2020 14:45:01 +0100] rev 3076
SVGHMI: Update default test to check that Input widget is indeed updated when variable changes.
Edouard Tisserant [Wed, 25 Nov 2020 14:43:03 +0100] rev 3075
SVGHMI: Fix: on screen keyboard wasn't showing up when editing local variables through Input widget.
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 20 Nov 2020 11:17:40 +0100] rev 3074
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:08:17 +0100] rev 3073
merge
Edouard Tisserant [Wed, 18 Nov 2020 10:15:44 +0100] rev 3072
py_ext: better handling of coma separated OnChange attribute for python safe global variables.
Edouard Tisserant <edouard.tisserant@gmail.com> [Wed, 18 Nov 2020 23:06:16 +0100] rev 3071
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 <edouard.tisserant@gmail.com> [Mon, 02 Nov 2020 10:56:09 +0100] rev 3070
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> [Wed, 28 Oct 2020 18:21:12 +0200] rev 3069
Arbitrary variables added to JsonTable subscription are now passed as 'extra' field in json query. As an example added JsonTable filtering in tests/svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Thu, 22 Oct 2020 22:44:29 +0200] rev 3068
SVGHMI: Fix HMI_REAL support, and add a HMI_REAL use case in tests/svghmi.
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 20 Oct 2020 00:24:49 +0200] rev 3067
merge
Edouard Tisserant [Mon, 19 Oct 2020 10:17:18 +0200] rev 3066
SVGHMI: JsonTable now outputs "visible" value as well.
Edouard Tisserant [Mon, 19 Oct 2020 10:15:26 +0200] rev 3065
SVGHMI: non significant cosmetic changes
usveticic [Mon, 19 Oct 2020 09:29:11 +0200] rev 3064
- New widget customHtml which allows to insert block of html code
- widget animate transfered to animaterotation
- widget animate, left to be more customizable
- changes to svghmi_v2/svghmi.svg
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 20 Oct 2020 00:23:52 +0200] rev 3063
PY_EXT: OnChange is now a coma separated list of callables. Updated tests/python accordingly.
usveticic [Thu, 01 Oct 2020 14:23:27 +0200] rev 3062
Button fix if no active or inactive state,
Widget animate changed to use anitmateTransform and added option to change rotation
Widget circular slider fixed so it is working on got and reprogramed so it similar to normal slider
Widget slider added support for changing size still need some changes to work properly
Added slider to svghmi test project
Changed svg in svhgmi_v2 project
usveticic [Wed, 30 Sep 2020 12:31:59 +0200] rev 3061
Merge two different heads
Edouard Tisserant [Thu, 24 Sep 2020 15:42:40 +0200] rev 3060
SVGHMI: Documentation fix
usveticic [Thu, 24 Sep 2020 11:52:40 +0200] rev 3059
Button and toggle reworked to use animate and dispatch
Slider added buttons to incremente/decrement by 1
Init for animate widget
Changed test svg and plc
Edouard Tisserant [Thu, 17 Sep 2020 11:30:22 +0200] rev 3058
Merge + fix side effects of making warning instead of errors in case of missing HMI variable
usveticic [Wed, 16 Sep 2020 09:42:26 +0200] rev 3057
Updated svg and xml for testing program
usveticic [Wed, 16 Sep 2020 09:41:52 +0200] rev 3056
Button, ToggleButton and slider updated. Error to warning when building
Button fixed so it doesn't release until it gets feedback from plc
Toggle button changed so it makes changes instantly. There was too big delay if we waited for feedback.
Slider added new features need some changes for final version.
Edouard Tisserant [Tue, 15 Sep 2020 13:57:06 +0200] rev 3055
Modbus: fixed typo in ctype typing.
Edouard Tisserant [Fri, 11 Sep 2020 13:46:41 +0200] rev 3054
MODBUS: Fix saving of websettings.
Edouard Tisserant [Thu, 10 Sep 2020 16:08:26 +0200] rev 3053
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.
Edouard Tisserant [Thu, 03 Sep 2020 11:16:08 +0200] rev 3052
SVGHMI: Better error message when inkscape is not installed.
Edouard Tisserant [Wed, 02 Sep 2020 11:45:41 +0200] rev 3051
SVGHMI: nicer error message
Edouard Tisserant [Tue, 01 Sep 2020 11:15:48 +0200] rev 3050
Merge
Edouard Tisserant [Mon, 31 Aug 2020 13:54:08 +0200] rev 3049
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 [Fri, 28 Aug 2020 15:29:35 +0200] rev 3048
SVGHMI: JsonTable can now have clickable elements, that trigger a request with extra argument whose content is taken from Json data.
Edouard Tisserant [Fri, 28 Aug 2020 11:31:18 +0200] rev 3047
Merged
Edouard Tisserant [Fri, 28 Aug 2020 11:27:07 +0200] rev 3046
SVGHMI: cosmetic fix in test
usveticic [Tue, 18 Aug 2020 11:42:28 +0200] rev 3045
All widgets reworked to use widget class and animate function if needed
Edouard Tisserant [Thu, 27 Aug 2020 14:34:48 +0200] rev 3044
SVGHMI: Moved JsonTable/Alarm related test in a separate page.
Edouard Tisserant [Thu, 27 Aug 2020 14:34:00 +0200] rev 3043
SVGHMI: JsonTable now ignores elements and groups starting with #
Edouard Tisserant [Thu, 27 Aug 2020 09:59:35 +0200] rev 3042
SVGHMI: Fix keypad : non-number input was always considered invalid because of missing type checking.
Edouard Tisserant [Wed, 26 Aug 2020 14:27:54 +0200] rev 3041
SVGHMI: JsonTable now updates range and position variables so that slider widget can update.
Edouard Tisserant [Wed, 26 Aug 2020 14:24:43 +0200] rev 3040
SVGHMI: Fix multiple variable support in widget
Edouard Tisserant [Wed, 26 Aug 2020 11:34:06 +0200] rev 3039
SVGHMI: Add TODOs in Button widgets.
Edouard Tisserant [Wed, 26 Aug 2020 11:26:45 +0200] rev 3038
SVGHMI: Alarm test not using Button widget anymore, too many problems. Use Input widget instead to increment value on each click and execute python code on change.
Edouard Tisserant [Tue, 25 Aug 2020 14:34:49 +0200] rev 3037
SVGHMI: little fix in HMI:Button
Edouard Tisserant [Tue, 25 Aug 2020 14:32:39 +0200] rev 3036
SVGHMI: JsonTable now use intermediate variables again to address JSON data without duplicating code or referencing. Using intermediate variables also alows to check for availability of data and stop evaluating early if data is missing. Finally added complete roundtrip example to illustrate use of JSonTable to display "alarms" collected in python from changes on PLC boolean variables.
Edouard Tisserant [Mon, 24 Aug 2020 09:48:35 +0200] rev 3035
SVGHMI: removed debug code forgotten here and there.
Edouard Tisserant [Fri, 21 Aug 2020 14:29:03 +0200] rev 3034
SVGHMI: JsonTable now makes meaningfull JSON request : all arguments and variables are passed in.
Edouard Tisserant [Fri, 21 Aug 2020 13:22:54 +0200] rev 3033
SVGHMI: Keypad is now keeping Javascript type constency. In other words, if a number was given as initial value, input value will have to convert to number in order to be valid. In case invalid value is entered, initial value is restored.
Edouard Tisserant [Thu, 20 Aug 2020 14:12:49 +0200] rev 3032
SVGHMI: Behave when project path include spaces, and make more understandable error in case of problem extracting geometry with inkscape.
Edouard Tisserant [Thu, 20 Aug 2020 13:56:21 +0200] rev 3031
SVGHMI: Refactor the way JsonTable generate javascript code to access json data. Now support multiple assignments, used in the case of text to change both content and style on the same element.
Edouard Tisserant [Thu, 20 Aug 2020 13:52:00 +0200] rev 3030
SVGHMI: Fix again clone unlinking, and this time add an "original" attribute to track the id of the original object before unlinking.
Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 17 Aug 2020 10:00:25 +0200] rev 3029
SVGHMI: Fix svg test file while testing latest JsonTableChanges
Edouard Tisserant <edouard.tisserant@gmail.com> [Sat, 15 Aug 2020 18:50:25 +0200] rev 3028
SVGHMI: HMI:JsonTable also recognize TextStyleList, but parsing of textContent is still not implemented and style is still not updated.
Edouard Tisserant <edouard.tisserant@gmail.com> [Sat, 15 Aug 2020 18:46:35 +0200] rev 3027
SVGHMI: Deeper clone unlinking. Was actually not recursive, and clones in clones where not unlinked. Stack successive ids to avoid collisions.
Edouard Tisserant [Thu, 13 Aug 2020 11:37:39 +0200] rev 3026
SVGHMI: factorize dispatch calling logic.
Edouard Tisserant [Thu, 13 Aug 2020 11:30:18 +0200] rev 3025
SVGHMI: HMI:VarInit:"a string"@a_value : empty widget (i.e. empty svg:group) that initialize content of local variables to value given as first argument.
Edouard Tisserant [Wed, 12 Aug 2020 15:24:02 +0200] rev 3024
Merge
Edouard Tisserant [Wed, 12 Aug 2020 13:36:18 +0200] rev 3023
SVGHMI: Add more local HMI variable tests in tests/svghmi.
Edouard Tisserant [Tue, 11 Aug 2020 14:37:33 +0200] rev 3022
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.
Edouard Tisserant [Mon, 10 Aug 2020 15:25:57 +0200] rev 3021
SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider.
Edouard Tisserant [Mon, 10 Aug 2020 14:00:20 +0200] rev 3020
SVGHMI: Update Slider widget so that it doesn't display future value but actual value only.
Edouard Tisserant [Mon, 10 Aug 2020 13:58:55 +0200] rev 3019
SVGHMI: provide request_animate() to Widget authors so that they can register redraw code when events lead to redraw. Widget member animate() is called when it is time to update DOM.
Edouard Tisserant [Mon, 10 Aug 2020 11:30:06 +0200] rev 3018
Merge
Edouard Tisserant <edouard.tisserant@gmail.com> [Sat, 08 Aug 2020 15:53:28 +0200] rev 3017
SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change.
usveticic [Wed, 05 Aug 2020 15:20:10 +0200] rev 3016
Beremiz test project with newly created widgets.
usveticic [Wed, 05 Aug 2020 15:18:00 +0200] rev 3015
Rebuilded gen_index_html.xslt after all new widgets were commited
usveticic [Wed, 05 Aug 2020 15:16:43 +0200] rev 3014
Create new multistate widget which extand class widget
usveticic [Wed, 05 Aug 2020 15:16:03 +0200] rev 3013
Create new CircularSlider widget which extand class widget
usveticic [Wed, 05 Aug 2020 15:15:33 +0200] rev 3012
Create new slider widget which extand class widget
usveticic [Wed, 05 Aug 2020 15:14:39 +0200] rev 3011
Reworked togglebutton widget to extand class widget
usveticic [Wed, 05 Aug 2020 15:13:59 +0200] rev 3010
Changed keyboard to show on defined position.
* svghmi.js
added size paramter to edit_value
changed show_modal function to offset keyboard if paramter passed
*widget_input.ysl2
in on_edit_click:
function get position if key_pos element is defined in input widget
*widget_keypad.ysl2
Reworked keypad widget to extand class widget,
added support for changing keyboard position to user defined location
usveticic [Wed, 05 Aug 2020 15:04:53 +0200] rev 3009
Reworked button widget so it uses classes.
Edouard Tisserant <edouard.tisserant@gmail.com> [Thu, 06 Aug 2020 15:01:01 +0200] rev 3008
SVGHMI: allow multiple variables and formatting in Display widget. Formatting is printf style and given as first argument. If no formating is given as widget argument, space separated.
Edouard Tisserant <edouard.tisserant@gmail.com> [Thu, 06 Aug 2020 14:59:04 +0200] rev 3007
SVGHMI : have to move some JS declarations from "preamble" to "declarations" and others from "declarations" to "definitions" section to make room for JS libraries that would be used by widget classes.
Edouard Tisserant <edouard.tisserant@gmail.com> [Wed, 05 Aug 2020 18:53:56 +0200] rev 3006
SVGHMI: JS refactoring continued : "dispatch_value_to_widget" becomes widget class member "new_hmi_value" (was also broken by previous relativeness commit)
Edouard Tisserant <edouard.tisserant@gmail.com> [Wed, 05 Aug 2020 18:49:29 +0200] rev 3005
SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness".
Because of allowing multiple variables per widget, we must distinguish if individual variables is relative to page, not the whole widget.
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 04 Aug 2020 11:53:39 +0200] rev 3004
SVGHMI: More JS code refactoring : change_hmi_value and apply_hmi_value now methods of widget class.
Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 03 Aug 2020 18:25:23 +0200] rev 3003
SVGHMI: Better JS code semantic in ForEach widget class. Update lagging generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 03 Aug 2020 18:22:19 +0200] rev 3002
SVGHMI: Add ForEach Widget is svghmi test
Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 03 Aug 2020 16:34:44 +0200] rev 3001
SVGHMI: add get_idx(index) to widget objects to factorize a bit code repeated accross widgets. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 03 Aug 2020 16:32:23 +0200] rev 3000
SVGHMI: prefer apply_hmi_value() to change_hmi_value() when possible
Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 03 Aug 2020 16:30:16 +0200] rev 2999
SVGHMI: Add RelativePages to tests
Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 03 Aug 2020 12:08:25 +0200] rev 2998
SVGHMI: Update Widget Display templates to generate Class based declaration.
Edouard Tisserant <edouard.tisserant@gmail.com> [Wed, 22 Jul 2020 13:56:43 +0200] rev 2997
SVGHMI: JsonTable now picks items from HMI:List, and update texts, all according to Json data. Still miss scrolling.
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 17 Jul 2020 12:21:45 +0200] rev 2996
SVGHMI: JsonTable now generate working data access code for data/* elements.
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 17 Jul 2020 12:19:53 +0200] rev 2995
SVGHMI: Minimal support for HMI:List : clones pointing to elements of any HMI:List are never unlinked, widgets using HMI:List will rely on this.
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 14 Jul 2020 22:05:47 +0200] rev 2994
SVGHMI: minimal JSON Table Widget communication infra + corresponding python code as py_ext code in svghmi test. To be continued.
Edouard Tisserant [Mon, 13 Jul 2020 13:56:42 +0200] rev 2993
Python Runtime: order of execution of extension's init() and cleanup() now reflects order of appearance of extensions in configuration tree.
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 10 Jul 2020 11:15:41 +0200] rev 2992
Python Runtime : stil untested optimization of Python Safe Globals.
Now only one python_poll block per python extension is used to trigger
execution of OnChange calls.
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 03 Jul 2020 14:02:04 +0200] rev 2991
Prevent global python_poll blocks to be created when accidentally adding content to C-File OnChange column.
Edouard Tisserant [Fri, 03 Jul 2020 10:03:25 +0200] rev 2990
Merge from default
Edouard Tisserant [Mon, 29 Jun 2020 14:38:04 +0200] rev 2989
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 2988
Modbus: fix client timer invalid arguments.
Edouard Tisserant [Tue, 23 Jun 2020 13:50:21 +0200] rev 2987
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 2986
Runtime: Fix typo in PLCObject leading to exception when reporting failure.
Edouard Tisserant [Thu, 18 Jun 2020 14:18:40 +0200] rev 2985
merged
Edouard Tisserant [Thu, 18 Jun 2020 14:16:19 +0200] rev 2984
SVGHMI: Fix bug introduced when merging default
Edouard Tisserant [Thu, 18 Jun 2020 14:15:43 +0200] rev 2983
SVGHMI: Add use of Python PLC Globals it test
Edouard Tisserant [Thu, 18 Jun 2020 11:00:26 +0200] rev 2982
Merge default changes in SVGHMI
Edouard Tisserant [Thu, 18 Jun 2020 10:42:08 +0200] rev 2981
Merge default changes in SVGHMI
Edouard Tisserant [Thu, 04 Jun 2020 11:14:21 +0200] rev 2980
SVGHMI: add "unsubscribable" property to widgets in order to generalize what already happens for jump buttons.
In most cases jump buttons do not really subscribe to pointed HMI variable, path is given as a relative page jump path. When widget.unsubscribable is set to true, no subscription is made on page switch, but still offset is updated.
This fixes bug happening on relative jump buttons without "disabled" element where offset did not change on relative page switch.
Edouard Tisserant [Wed, 03 Jun 2020 13:31:55 +0200] rev 2979
merge
dgaberscek [Fri, 29 May 2020 09:46:07 +0200] rev 2978
Merge
dgaberscek [Tue, 26 May 2020 10:59:01 +0200] rev 2977
SVGHMI: Added widget toggleButton.
dgaberscek [Tue, 26 May 2020 10:53:02 +0200] rev 2976
SVGHMI: Changed widget button handler to element attribute.
Edouard Tisserant [Tue, 02 Jun 2020 13:37:34 +0200] rev 2975
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 2974
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 2973
Runtime: fsync() files when transfering them, to prebent data loss when poweroff soon after programming. Fixed variable naming as a side effect.
Edouard Tisserant [Thu, 28 May 2020 11:38:09 +0200] rev 2972
PLCObject : reorganize code in StartPLC(), add a PreStartPLC() empty method, to be overloaded by runtime extensions.