Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 22 Feb 2021 10:09:57 +0100] rev 3160
Merge
Edouard Tisserant [Fri, 19 Feb 2021 14:56:14 +0100] rev 3159
SVGHMI: Add icons
Edouard Tisserant [Fri, 19 Feb 2021 12:03:42 +0100] rev 3158
SVGHMI: Fixed/extended error message when failing to launch POEdit.
Edouard Tisserant [Fri, 19 Feb 2021 12:02:49 +0100] rev 3157
SVGHMI: Fix launch of POEdit on widows. Parsing oommand in registry based on heuristic was bad, now using regex should be safer. TODO : replicate for Inkscape launch.
Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 22 Feb 2021 10:08:36 +0100] rev 3156
SVGHMI: display progress in IDE console while building
Edouard Tisserant <edouard.tisserant@gmail.com> [Sun, 21 Feb 2021 21:38:44 +0100] rev 3155
SVGHMI: finally found why HMI:Input wasnt't initializing properly: vsprintf takes a list. Also, removed intermediate variable last_val, since edit_value() works on strings anyhow, and in case of formated floats, it is better to workl on already formated value.
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 19 Feb 2021 10:04:36 +0100] rev 3154
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 19 Feb 2021 10:04:17 +0100] rev 3153
Allow printf-like formating in HMI:Input, usefull for example when dealing with floating point numbers.
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 19 Feb 2021 10:03:00 +0100] rev 3152
SVGHMI: Switch from {object} to Map for "updates" global, for performance but also preventing wierd behaviour when iterating
Edouard Tisserant [Thu, 18 Feb 2021 12:02:28 +0100] rev 3151
SVGHMI: Fixed HMI:ScrollBar to exclude cursor size from accessible range ( position is now 0->range-size instead of 0->range ). Fixed and extended tests/svghmi to have working ScrollBar on two alarm pages. Includes generated XSLT update.
Edouard Tisserant [Thu, 18 Feb 2021 10:43:10 +0100] rev 3150
SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT.
Edouard Tisserant <edouard.tisserant@gmail.com> [Thu, 18 Feb 2021 05:39:46 +0100] rev 3149
SVGHMI: Optimization for JsonTable : reload JSON only when necessary, and avoid concurrent http requests.
Edouard Tisserant [Tue, 16 Feb 2021 11:47:52 +0100] rev 3148
merge
Edouard Tisserant [Tue, 16 Feb 2021 11:35:56 +0100] rev 3147
SVGHMI: update generated XSLT
Edouard Tisserant [Tue, 16 Feb 2021 11:32:37 +0100] rev 3146
SVGHMI: little fix ihn i18n example.
Edouard Tisserant [Tue, 16 Feb 2021 11:32:00 +0100] rev 3145
SVGHMI: Fixed sending HMI_REAL to PLC. Added a svghmi_real test that illustrates using printf style formating in HMI:Display to control precision of Float number display.
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 16 Feb 2021 09:38:28 +0100] rev 3144
SVGHMI: i18n: ensure langs always appea in same order, and add two variables that are updated automatically when selecting a new language : lang_name and lang_code. Also fixed i18n startup, prevent wrong lang numer to crash loading.
Edouard Tisserant [Mon, 15 Feb 2021 15:46:47 +0100] rev 3143
SVGHMI: more straightforward implementation of dragging position computation in Scrollbar + some little fix about boundaries.
Edouard Tisserant <edouard.tisserant@gmail.com> [Sun, 14 Feb 2021 19:15:20 +0100] rev 3142
SVGHMI: allow i18n of formated strings of HMI:Messages. This was by construction impossible since formating was given as an argument. Now added optional "format" labelled element in HMI:Display, so that it can be translated, when labelled "_format".
Edouard Tisserant <edouard.tisserant@gmail.com> [Sun, 14 Feb 2021 05:30:29 +0100] rev 3141
SVGHMI: update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com> [Sun, 14 Feb 2021 05:29:51 +0100] rev 3140
SVGHMI: i18n: prevent creating messages.pot if no translation
Edouard Tisserant <edouard.tisserant@gmail.com> [Sun, 14 Feb 2021 05:22:30 +0100] rev 3139
SVGHMI: Add inhibition to widget's apply_hmi_value() so that it does not change variable more frquently than given widget's frequency. This prevents flooding network with many update if browser is producing events at high rate, as for exemple when dragging ScrollBar's cursor.
Edouard Tisserant <edouard.tisserant@gmail.com> [Sun, 14 Feb 2021 05:17:25 +0100] rev 3138
SVGHMI: fix scrollbar not behaving when rotated.
Edouard Tisserant <edouard.tisserant@gmail.com> [Sun, 14 Feb 2021 05:15:13 +0100] rev 3137
SVGHMI: remove forgotten debug code
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 12 Feb 2021 22:00:07 +0100] rev 3136
SVGHMI: Add a robust ScrollBar widget. HMI:ScrollBar@positionrange@size
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 12 Feb 2021 21:58:03 +0100] rev 3135
SVGHMI: propagate default local variables (HMI_LOCAL, PAGE_LOCAL) to widgets at startup
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 09 Feb 2021 17:10:08 +0100] rev 3134
SVGHMI: Update generated XSLT
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 09 Feb 2021 17:09:08 +0100] rev 3133
SVGHMI: HMI:DropDown:#langs@lang now automatically shows human readable list of languages. tests/svghmi_i18n updated accordingly.
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 09 Feb 2021 08:11:22 +0100] rev 3132
SVGHMI: Add a simple i18n test
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 09 Feb 2021 07:57:14 +0100] rev 3131
SVGHMI: Prevent Dropdown widget to mak exception whe value out of range
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 09 Feb 2021 07:56:25 +0100] rev 3130
SVGHMI: removed dead code
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 09 Feb 2021 07:55:16 +0100] rev 3129
SVGHMI: Add "lang" permament persistent HMI_LOCAL variable to reflect selected language, apply stored language choice at startup and make it always subscribed to a pseudo widget (as for hearbeat) that apply language choice when it changes.
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 09 Feb 2021 07:46:02 +0100] rev 3128
SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser.
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 09 Feb 2021 07:41:24 +0100] rev 3127
SVGHMI: Enforce formating HMI_LOCAL and PAGE_LOCAL variables until the end of variable name
Edouard Tisserant <edouard.tisserant@gmail.com> [Thu, 04 Feb 2021 21:23:58 +0100] rev 3126
SVGHMI: generate JS translation literals so that it is possible to also translate uses of texts, and added JS code that apply translations to tspans
Edouard Tisserant <edouard.tisserant@gmail.com> [Thu, 04 Feb 2021 21:20:01 +0100] rev 3125
SVGHMI: widget activable elements : moved code to wher it belongs, rewrote cleaner
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 02 Feb 2021 16:39:02 +0100] rev 3124
SVGHMI: update generated XSLT
Edouard Tisserant [Tue, 02 Feb 2021 11:20:54 +0100] rev 3123
Merged
Edouard Tisserant [Tue, 02 Feb 2021 11:17:03 +0100] rev 3122
SVGHMI: make a copy of tests/svghmi as test/svghmi_widget because too crowded since having pages for widget documentation. Strip those pages from tests/svghmi, so that it
is more light for regular testing.
Edouard Tisserant [Tue, 02 Feb 2021 10:59:00 +0100] rev 3121
SVGHMI: Prevent excluded widget to appear in generated pages' widget list.
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 02 Feb 2021 10:43:43 +0100] rev 3120
SVGHMI: Remove recursive walk in parsed widget to find unique type and use xsl:key instead.
Edouard Tisserant [Tue, 26 Jan 2021 11:17:08 +0100] rev 3119
SVGHMI: Fix browser side exception when some widget are not used, and are then discarded and not present in final SVG. In that case JS code was still making reference to discarded widget elements and was raising exception at init.
Edouard Tisserant [Tue, 26 Jan 2021 11:14:22 +0100] rev 3118
SVGHMI : removed support for changing keyboard position and showing at user defined location. Feature was problematic in many respect.
Edouard Tisserant [Mon, 25 Jan 2021 14:02:08 +0100] rev 3117
SVGHMI: Make an error when pages are nested
Edouard Tisserant [Fri, 22 Jan 2021 11:30:37 +0100] rev 3116
SVGHMI: i18n: finished passing back translated messaged to xslt proc, finished template to generate corresponding javascript literals.
Edouard Tisserant [Fri, 22 Jan 2021 08:43:24 +0100] rev 3115
SVGHMI: i18n: various fixes about unicode encoding and converting translation result back to XML to feed xslt processor
Edouard Tisserant [Thu, 21 Jan 2021 11:08:04 +0100] rev 3114
SVGHMI: i18n: better warning messages, more explicit.
Edouard Tisserant <edouard.tisserant@gmail.com> [Thu, 21 Jan 2021 05:04:23 +0100] rev 3113
SVGHMI: i18n: now loads PO filesand match translation against catalog. Refactored a bit to move i18n related code in i18n.py
Edouard Tisserant [Tue, 19 Jan 2021 11:57:13 +0100] rev 3112
SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button.
Edouard Tisserant [Mon, 18 Jan 2021 10:32:13 +0100] rev 3111
Docutil : reworked Inkscape launching and path resolution in docsvg.py
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 15 Jan 2021 10:15:41 +0100] rev 3110
merge
Edouard Tisserant [Wed, 13 Jan 2021 10:28:09 +0100] rev 3109
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> [Fri, 15 Jan 2021 10:11:05 +0100] rev 3108
SVGHMI: Intermediate commit while implementing i18n. WIP.
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 05 Jan 2021 01:23:45 +0100] rev 3107
SVGHMI: Jump widget: switch to class based declaraion, and add some TODO comments to prepare for jump to relative page being selected through a DropDown widget.
Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 04 Jan 2021 13:57:11 +0100] rev 3106
SVGHMI: intermediate state of test/svghmi's SVG for backup... WIP
Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 04 Jan 2021 12:34:56 +0100] rev 3105
SVGHMI: CircularBar: use animate() + cormetic changes
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 29 Dec 2020 16:54:32 +0100] rev 3104
SVGHMI: Meter widget: use animate() + cosmetic changes
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 29 Dec 2020 15:53:30 +0100] rev 3103
SVGHMI: Update generated xslt
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 29 Dec 2020 15:39:48 +0100] rev 3102
SVGHMI: Fix bug in keypad leading to error messages in browser console when keypas has no Shift or CapsLock keys
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 29 Dec 2020 15:38:31 +0100] rev 3101
SVGHMI: cosmetic changes
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 29 Dec 2020 15:37:41 +0100] rev 3100
SVGHMI: Input widget overrides undershot() and overshot() methods to display "min: xxx" or "max: xxx" when user input goes out of given range.
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.
Edouard Tisserant [Tue, 26 May 2020 09:58:20 +0200] rev 2971
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 <edouard.tisserant@gmail.com> [Thu, 21 May 2020 11:29:45 +0200] rev 2970
SVGHMI: stop using eval in change_hmi_value, apparently slowly leaking memory.
Edouard Tisserant [Thu, 14 May 2020 17:49:20 +0200] rev 2969
SVGHMI: Switch widget was picking sub-elements from original SVG, not the result SVG ehwe clones are unlinked, thus making problems with svg:use based widgets.
Edouard Tisserant [Thu, 14 May 2020 17:48:58 +0200] rev 2968
SVGHMI: When unlinking a clone of a group, do not create additional group, but merge transformation and styles, and replace label. This allows svg:use based widgets to directly access elements of svg:use targeted element.
Edouard Tisserant [Thu, 14 May 2020 17:48:15 +0200] rev 2967
SVGHMI: Applies clone unlinking to widget themselves, not only to clones inside widgets.
Edouard Tisserant [Thu, 14 May 2020 09:24:09 +0200] rev 2966
merge
Edouard Tisserant [Wed, 13 May 2020 14:48:52 +0200] rev 2965
SVGHMI: Makes error when HMI tree is not well formed. Prevents multiple and non-first HMI_NODE, and ensure that all paths in HMI tree are unique.
Edouard Tisserant [Wed, 13 May 2020 14:47:17 +0200] rev 2964
Added FatalError call to Libraries code gen, so that they can emit messages addressed like config tree nodes do.
Edouard Tisserant <edouard.tisserant@gmail.com> [Wed, 13 May 2020 22:25:22 +0200] rev 2963
SVGHMI: more Widget properties declared ES6 style.
Edouard Tisserant <edouard.tisserant@gmail.com> [Wed, 13 May 2020 22:22:13 +0200] rev 2962
SVGHMI: Switch widget now use class declaration
Edouard Tisserant <edouard.tisserant@gmail.com> [Wed, 13 May 2020 18:50:07 +0200] rev 2961
SVGHMI: Update Button widget to class declaration, and add a button widget in tests/svghmi.
Edouard Tisserant <edouard.tisserant@gmail.com> [Wed, 13 May 2020 18:47:09 +0200] rev 2960
SVGHMI: explicit handling of undefined maximum widget update frequency
Edouard Tisserant <edouard.tisserant@gmail.com> [Wed, 13 May 2020 18:27:26 +0200] rev 2959
SVGHMI: removed dead code
Edouard Tisserant <edouard.tisserant@gmail.com> [Wed, 13 May 2020 18:26:38 +0200] rev 2958
SVGHMI: Back button updated to class style
Edouard Tisserant [Mon, 11 May 2020 11:33:00 +0200] rev 2957
merge
Edouard Tisserant [Mon, 11 May 2020 11:10:38 +0200] rev 2956
DEBUG: (IDE side) fixed wrong implementation of anti-rapid-fire leading to systematic delay in subscribing
Edouard Tisserant <edouard.tisserant@gmail.com> [Sun, 10 May 2020 23:40:43 +0200] rev 2955
SVGHMI: Exclude non-widget HMI:* labeled elements from hmi_widget. Namely : HMI:Page HMI:Lang and HMI:List have been excluded.
Edouard Tisserant <edouard.tisserant@gmail.com> [Sun, 10 May 2020 17:01:09 +0200] rev 2954
SVGHMI: clean up dead code, update generated xslt.
Edouard Tisserant <edouard.tisserant@gmail.com> [Sun, 10 May 2020 16:36:41 +0200] rev 2953
SVGHMI: apply per class overloading of sub/unsub to Jump widget
Edouard Tisserant <edouard.tisserant@gmail.com> [Sun, 10 May 2020 16:36:09 +0200] rev 2952
SVGHMI: apply per class overloading of sub/unsub to ForEach widget
Edouard Tisserant <edouard.tisserant@gmail.com> [Sun, 10 May 2020 16:34:44 +0200] rev 2951
SVGHMI: Widget's specific sub/unsub traits are now wxpressed in widget's class.
Edouard Tisserant <edouard.tisserant@gmail.com> [Sun, 10 May 2020 16:32:19 +0200] rev 2950
SVGHMI: Parameters common to all widget constructors now passed as ordered parameters.
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 08 May 2020 16:51:43 +0200] rev 2949
SVGHMI: One class per widget type, widget objects are instances of these classes, and members are passed through constructor. This allows to keep compatible with previous widget_defs template used in most widgets.
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 08 May 2020 16:47:52 +0200] rev 2948
SVGHMI: Add an exslt function to collect used widget types, in order to only include necessary JS definitions in furure changes.
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 08 May 2020 16:44:20 +0200] rev 2947
SVGHMI: Systematically output local name as /* comment */ when emiting content.
Edouard Tisserant [Fri, 24 Apr 2020 10:03:40 +0200] rev 2946
Merge
Edouard Tisserant [Fri, 24 Apr 2020 10:02:13 +0200] rev 2945
SVGHMI: Fix flawed logic to place nodes in the HMI tree, leading to wrecked tree in some cases.
dgaberscek [Wed, 22 Apr 2020 15:33:53 +0200] rev 2944
Added button and circular bar widgets.
Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 20 Apr 2020 16:19:31 +0200] rev 2943
SVGHMI: added more meaningful namespaces to emit javascript code from.
Edouard Tisserant <edouard.tisserant@gmail.com> [Sun, 19 Apr 2020 22:44:41 +0200] rev 2942
SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued.
Edouard Tisserant <edouard.tisserant@gmail.com> [Sun, 19 Apr 2020 22:01:12 +0200] rev 2941
SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces
Edouard Tisserant <edouard.tisserant@gmail.com> [Sun, 19 Apr 2020 10:48:34 +0200] rev 2940
SVGHMI: Introduced "emit" to simplify producing per-topic code and content from anywhere in code. Applied to debug output, next to JS.
Edouard Tisserant <edouard.tisserant@gmail.com> [Sat, 18 Apr 2020 14:06:41 +0200] rev 2939
SVGHMI: Move reflective debug tags from "reflect" to "debug" namespace, preparing for per-purpose namespaces.
Edouard Tisserant <edouard.tisserant@gmail.com> [Sat, 18 Apr 2020 13:14:45 +0200] rev 2938
SVGHMI: Added scripts.ysl2
Edouard Tisserant <edouard.tisserant@gmail.com> [Sat, 18 Apr 2020 11:49:02 +0200] rev 2937
SVGHMI: moving code wher it belongs, and reformulate some declarations for better readability.
Edouard Tisserant [Thu, 16 Apr 2020 10:21:25 +0200] rev 2936
SVGHMI: HMI:DropDown: more documentation.
Edouard Tisserant [Wed, 15 Apr 2020 14:29:19 +0200] rev 2935
SVGHMI: Comments in HMI:DropDown source code
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 14 Apr 2020 23:04:54 +0200] rev 2934
SVGHMI: HMI:DropDown menu aligns to selected when opening
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 14 Apr 2020 22:08:52 +0200] rev 2933
SVGHMI: When clicking outside of opened HMI:DropDown box, close it.
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 14 Apr 2020 19:22:18 +0200] rev 2932
SVGHMI: Fix HMI:DropDown flicker on close.
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 14 Apr 2020 17:31:45 +0200] rev 2931
SVGHMI: HMI:DropDown now temporarily takes content from widget's arguments, until HMI:List is implemented.
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 14 Apr 2020 17:17:35 +0200] rev 2930
SVGHMI: Connect HMI:DropDown to value in HMI Tree, in svghmi test as well.
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 14 Apr 2020 17:16:25 +0200] rev 2929
SVGHMI: fix probable problem in HMI:Input, where value could be applied to wrong index if used in relative page.
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 14 Apr 2020 17:15:02 +0200] rev 2928
SVGHMI: HMI:DropDown element is brought in front when opened, so that it isn't occulted by other widgets at the same level.
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 14 Apr 2020 17:13:12 +0200] rev 2927
SVGHMI: HMI:DropDown now catches all clicks when open
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 14 Apr 2020 12:07:08 +0200] rev 2926
SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins.
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 14 Apr 2020 10:56:45 +0200] rev 2925
SVGHMI: HMI:DropDown now scrolls forward and backward
Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 13 Apr 2020 18:28:22 +0200] rev 2924
SVGHMI: progress on HMI:DropDown - now selects some value on click, and close
Edouard Tisserant <edouard.tisserant@gmail.com> [Sun, 12 Apr 2020 21:43:42 +0200] rev 2923
SVGHMI: HMI:DropDown work in progress, intermediate commit. Now menu's rectangle grows up to viewport borders.
Edouard Tisserant [Thu, 09 Apr 2020 09:52:34 +0200] rev 2922
SVGHMI: intermediate commit while working on dropdown widget.
Here is the plan :
HMI:DropDown : svg:g of svg:rect + svg:text
rect is extended to match content size, and if content size exceed page size, user can scroll
HMI:List : either HMI:List:ListName as svg:text, one tspan per list entry
or HMI:List:ListName:Foreach:HMI_CLASS:SUB/PATH/TO/VALUE@/ROOT/PATH as empty svg:g
Edouard Tisserant [Tue, 07 Apr 2020 10:01:23 +0200] rev 2921
SVGHMI: HMI is not speculating on PLC variable update anymore when sending new variable value.
HMI variable cache in JS was changed in advance for more responsive behaviour when updating a HMI tree variable. This was leading to display value different from hmi tree variable in case the expected update did not happen because PLC program did revert it.