Fri, 26 Mar 2021 14:53:35 +0100SVGHMI: Add list of HMI tree path in a JS array, so that we can use it for multiple purpose : svghmi
Edouard Tisserant [Fri, 26 Mar 2021 14:53:35 +0100] rev 3205
SVGHMI: Add list of HMI tree path in a JS array, so that we can use it for multiple purpose :
- display name of edited variable in keypads (currently wrong in relative pages)
- have some variable that hold basename of current relative page HMI_NODE's path
- propose some list of names in DropDown when selecting a relative page to jump to, without having to instancite many jump widgets.

Fri, 26 Mar 2021 14:46:38 +0100SVGHMI: Fixed wierd CDATA mess in output xhtml, because of backticks copy pasted in some yml ||text block|| svghmi
Edouard Tisserant [Fri, 26 Mar 2021 14:46:38 +0100] rev 3204
SVGHMI: Fixed wierd CDATA mess in output xhtml, because of backticks copy pasted in some yml ||text block||

Mon, 29 Mar 2021 07:11:45 +0200SVGHMI: Added fonts.py with functions to convert ttf, otf and woff fonts into data_uri based CSS font-face svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 29 Mar 2021 07:11:45 +0200] rev 3203
SVGHMI: Added fonts.py with functions to convert ttf, otf and woff fonts into data_uri based CSS font-face

Thu, 25 Mar 2021 13:08:19 +0100merge svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Thu, 25 Mar 2021 13:08:19 +0100] rev 3202
merge

Thu, 25 Mar 2021 13:07:52 +0100SVGHMI: split svghmi.py into svghmi.py (Config Tree Node + code gen) and ui.py (UI for HMI tree and Widget picking) svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Thu, 25 Mar 2021 13:07:52 +0100] rev 3201
SVGHMI: split svghmi.py into svghmi.py (Config Tree Node + code gen) and ui.py (UI for HMI tree and Widget picking)

Thu, 25 Mar 2021 10:48:24 +0100SVGHMI: stop serving HMI open wide on all interfaces. That was a security hole. It is user/developer responsibity to forward connection with for exemple stunnel and make it securely accessible from LAN. svghmi
Edouard Tisserant [Thu, 25 Mar 2021 10:48:24 +0100] rev 3200
SVGHMI: stop serving HMI open wide on all interfaces. That was a security hole. It is user/developer responsibity to forward connection with for exemple stunnel and make it securely accessible from LAN.

Thu, 25 Mar 2021 10:13:12 +0100SVGHMI: Filter unseen geometry from inkscape CSV output. svghmi
Edouard Tisserant [Thu, 25 Mar 2021 10:13:12 +0100] rev 3199
SVGHMI: Filter unseen geometry from inkscape CSV output.

When inkscape exports geometry form all objects, then it also includes objects from svg:defs. This makes problems when deciding if an object is part of a page, since coordinate of objects in svg:defs can eventualy be contained in a page. In the end, those objects where getting detached when leaving pages where they where found, leading for exemple to non working text on clipping when the clipped text was cloned in multiple page.

Tue, 23 Mar 2021 14:09:55 +0100SVGHMI: Fix typo in error message formating in i18n. svghmi
Edouard Tisserant [Tue, 23 Mar 2021 14:09:55 +0100] rev 3198
SVGHMI: Fix typo in error message formating in i18n.

Wed, 24 Mar 2021 05:34:46 +0100SVGHMI: split svghmi.py into hmi_tree.py + svghmi.py svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Wed, 24 Mar 2021 05:34:46 +0100] rev 3197
SVGHMI: split svghmi.py into hmi_tree.py + svghmi.py

Tue, 23 Mar 2021 05:15:19 +0100Merged svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 23 Mar 2021 05:15:19 +0100] rev 3196
Merged

Thu, 18 Mar 2021 14:32:21 +0100SVGHMI: JsonTable: Fixed options not being passed in JSON post when jumping to a page where additional variables are pre-defined by a HMI:VarInit. svghmi
Edouard Tisserant [Thu, 18 Mar 2021 14:32:21 +0100] rev 3195
SVGHMI: JsonTable: Fixed options not being passed in JSON post when jumping to a page where additional variables are pre-defined by a HMI:VarInit.
Was JS Fetch Promise not executed late enough, and gathering JsonTable variables before the sequence of calls to dispatch() was finished.

Tue, 23 Mar 2021 05:13:18 +0100SVGHMI: Added small widget library for library browser testing. svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 23 Mar 2021 05:13:18 +0100] rev 3194
SVGHMI: Added small widget library for library browser testing.

Tue, 23 Mar 2021 05:11:23 +0100SVGHMI: Added SVG widget library browser. Supports browsing and previewing widgets. Widget validation and drag'n'drop are still to be implemented. svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 23 Mar 2021 05:11:23 +0100] rev 3193
SVGHMI: Added SVG widget library browser. Supports browsing and previewing widgets. Widget validation and drag'n'drop are still to be implemented.

Tue, 23 Mar 2021 05:08:51 +0100Allow using spin() from ProcessLogger even with no logger given. svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 23 Mar 2021 05:08:51 +0100] rev 3192
Allow using spin() from ProcessLogger even with no logger given.

Wed, 17 Mar 2021 11:07:29 +0100merged svghmi
Edouard Tisserant [Wed, 17 Mar 2021 11:07:29 +0100] rev 3191
merged

Tue, 16 Mar 2021 14:19:22 +0100SVGHMI: cosmetic change, missing semicolon svghmi
Edouard Tisserant [Tue, 16 Mar 2021 14:19:22 +0100] rev 3190
SVGHMI: cosmetic change, missing semicolon

Tue, 16 Mar 2021 14:18:39 +0100SVGHMI: JsonTable should refresh when re-subscibing, because data might have changed while not on the page we are switching to. svghmi
Edouard Tisserant [Tue, 16 Mar 2021 14:18:39 +0100] rev 3189
SVGHMI: JsonTable should refresh when re-subscibing, because data might have changed while not on the page we are switching to.

Mon, 15 Mar 2021 11:25:24 +0100SVGHMI: Fixed problems happening when value is higher than maximum or lower than minimum in Input widget. "max" and "min" string was getting into keypad text field, was not diplayed systematically, and was staying forever sometime. svghmi
Edouard Tisserant [Mon, 15 Mar 2021 11:25:24 +0100] rev 3188
SVGHMI: Fixed problems happening when value is higher than maximum or lower than minimum in Input widget. "max" and "min" string was getting into keypad text field, was not diplayed systematically, and was staying forever sometime.

Fri, 12 Mar 2021 15:12:38 +0100SVGHMI: change default values for JsonTable, leading to scrollbar initialized at annoying non-zero position svghmi
Edouard Tisserant [Fri, 12 Mar 2021 15:12:38 +0100] rev 3187
SVGHMI: change default values for JsonTable, leading to scrollbar initialized at annoying non-zero position

Thu, 11 Mar 2021 20:46:05 +0100SVGHMI: Ensure that when a HMI:List is refered, none of its refered elements are discarded. svghmi
Edouard Tisserant [Thu, 11 Mar 2021 20:46:05 +0100] rev 3186
SVGHMI: Ensure that when a HMI:List is refered, none of its refered elements are discarded.

Thu, 11 Mar 2021 10:35:23 +0100Backed out changeset b2ba6eeb61ec. Users reported text styling being messed in some cases. svghmi
Edouard Tisserant [Thu, 11 Mar 2021 10:35:23 +0100] rev 3185
Backed out changeset b2ba6eeb61ec. Users reported text styling being messed in some cases.

Thu, 11 Mar 2021 09:13:51 +0100merge svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Thu, 11 Mar 2021 09:13:51 +0100] rev 3184
merge

Wed, 10 Mar 2021 10:01:05 +0100merge svghmi
Edouard Tisserant [Wed, 10 Mar 2021 10:01:05 +0100] rev 3183
merge

Wed, 10 Mar 2021 09:59:18 +0100Runtime: 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. svghmi
Edouard Tisserant [Wed, 10 Mar 2021 09:59:18 +0100] rev 3182
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

Wed, 10 Mar 2021 19:29:49 +0100SVGHMI: Add generic action buttons to JSON table, with an example in tests/svghmi: wipe alar list. svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Wed, 10 Mar 2021 19:29:49 +0100] rev 3181
SVGHMI: Add generic action buttons to JSON table, with an example in tests/svghmi: wipe alar list.

Wed, 10 Mar 2021 19:27:41 +0100SVGHMI: do not do XSLT transform if both SVGHMI and HMI Tree didn't change since last build svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Wed, 10 Mar 2021 19:27:41 +0100] rev 3180
SVGHMI: do not do XSLT transform if both SVGHMI and HMI Tree didn't change since last build

Fri, 05 Mar 2021 09:36:22 +0100Merged svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 05 Mar 2021 09:36:22 +0100] rev 3179
Merged

Wed, 03 Mar 2021 11:45:13 +0100SVGHMI: Make ScrollBar's variables order match JsonTable's variables order to avoid confusion svghmi
Edouard Tisserant [Wed, 03 Mar 2021 11:45:13 +0100] rev 3178
SVGHMI: Make ScrollBar's variables order match JsonTable's variables order to avoid confusion

Fri, 05 Mar 2021 09:24:45 +0100SVGHMI: Lighter display of HMI Tree, no more icons and use buttons. Auto expand root. Fix loading of HMI tree XML backup (hmiclass attribute wasn't kept). svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 05 Mar 2021 09:24:45 +0100] rev 3177
SVGHMI: Lighter display of HMI Tree, no more icons and use buttons. Auto expand root. Fix loading of HMI tree XML backup (hmiclass attribute wasn't kept).

Fri, 05 Mar 2021 00:02:52 +0100SVGHMI: Systematically save HMI Tree in build directory as hmitree.xml when building, so that HMI Tree can be displayed when re-opening project, without having to build svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 05 Mar 2021 00:02:52 +0100] rev 3176
SVGHMI: Systematically save HMI Tree in build directory as hmitree.xml when building, so that HMI Tree can be displayed when re-opening project, without having to build

Tue, 02 Mar 2021 17:30:13 +0100SVGHMI: attempt to prevent crazy styling with HMI:TextStyleList when inkscape store style in tspan instead of text element. svghmi
Edouard Tisserant [Tue, 02 Mar 2021 17:30:13 +0100] rev 3175
SVGHMI: attempt to prevent crazy styling with HMI:TextStyleList when inkscape store style in tspan instead of text element.

Tue, 02 Mar 2021 10:11:45 +0100IDE: Fix logging of external process execution time so that it is visible on windows as well. svghmi
Edouard Tisserant [Tue, 02 Mar 2021 10:11:45 +0100] rev 3174
IDE: Fix logging of external process execution time so that it is visible on windows as well.

Tue, 02 Mar 2021 09:42:50 +0100IDE: Process Logging : Add annotation in log so that user can see build is still alive and how long external process takes. svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 02 Mar 2021 09:42:50 +0100] rev 3173
IDE: Process Logging : Add annotation in log so that user can see build is still alive and how long external process takes.

Tue, 02 Mar 2021 09:28:44 +0100IDE: Iec2CSettings: Log wasn't available in case of exception when launching iec2c. svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 02 Mar 2021 09:28:44 +0100] rev 3172
IDE: Iec2CSettings: Log wasn't available in case of exception when launching iec2c.

Tue, 02 Mar 2021 09:25:55 +0100IDE: Log: Cosmetic changes, refactoring svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 02 Mar 2021 09:25:55 +0100] rev 3171
IDE: Log: Cosmetic changes, refactoring

Mon, 01 Mar 2021 15:46:23 +0100SVGHMI: Make build log less redundant, and refactor progress information code a bit, to make it also a bit less redundant. svghmi
Edouard Tisserant [Mon, 01 Mar 2021 15:46:23 +0100] rev 3170
SVGHMI: Make build log less redundant, and refactor progress information code a bit, to make it also a bit less redundant.

Mon, 01 Mar 2021 15:45:13 +0100IDE: 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. svghmi
Edouard Tisserant [Mon, 01 Mar 2021 15:45:13 +0100] rev 3169
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.

Mon, 01 Mar 2021 10:03:50 +0100merged svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 01 Mar 2021 10:03:50 +0100] rev 3168
merged

Fri, 26 Feb 2021 11:08:51 +0100SVGHMI: Fixed progress time computation svghmi
Edouard Tisserant [Fri, 26 Feb 2021 11:08:51 +0100] rev 3167
SVGHMI: Fixed progress time computation

Sun, 28 Feb 2021 21:45:10 +0100IDE: Fixed log console that was not updating line by line smoothly when building. svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Sun, 28 Feb 2021 21:45:10 +0100] rev 3166
IDE: Fixed log console that was not updating line by line smoothly when building.

Fri, 26 Feb 2021 10:00:14 +0100SVGHMI: Optimized overlapping geometry (widget ot page belonging) computation. Added human readable messages for progress. Includes updated XSLT. svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 26 Feb 2021 10:00:14 +0100] rev 3165
SVGHMI: Optimized overlapping geometry (widget ot page belonging) computation. Added human readable messages for progress. Includes updated XSLT.

Thu, 25 Feb 2021 11:22:10 +0100merged svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Thu, 25 Feb 2021 11:22:10 +0100] rev 3164
merged

Wed, 24 Feb 2021 09:37:00 +0100Merge changes from default into svghmi branch svghmi
Edouard Tisserant [Wed, 24 Feb 2021 09:37:00 +0100] rev 3163
Merge changes from default into svghmi branch

Wed, 24 Feb 2021 15:36:37 +0100SVGHMI: More build time optimization : def_by_label now takes far less time. svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Wed, 24 Feb 2021 15:36:37 +0100] rev 3162
SVGHMI: More build time optimization : def_by_label now takes far less time.

Tue, 23 Feb 2021 10:07:21 +0100SVGHMI: Optimize sumarized_elements xslt function, taking most of SVGHMI build time. svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 23 Feb 2021 10:07:21 +0100] rev 3161
SVGHMI: Optimize sumarized_elements xslt function, taking most of SVGHMI build time.

Mon, 22 Feb 2021 10:09:57 +0100Merge svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 22 Feb 2021 10:09:57 +0100] rev 3160
Merge

Fri, 19 Feb 2021 14:56:14 +0100SVGHMI: Add icons svghmi
Edouard Tisserant [Fri, 19 Feb 2021 14:56:14 +0100] rev 3159
SVGHMI: Add icons

Fri, 19 Feb 2021 12:03:42 +0100SVGHMI: Fixed/extended error message when failing to launch POEdit. svghmi
Edouard Tisserant [Fri, 19 Feb 2021 12:03:42 +0100] rev 3158
SVGHMI: Fixed/extended error message when failing to launch POEdit.

Fri, 19 Feb 2021 12:02:49 +0100SVGHMI: 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. svghmi
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.

Mon, 22 Feb 2021 10:08:36 +0100SVGHMI: display progress in IDE console while building svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 22 Feb 2021 10:08:36 +0100] rev 3156
SVGHMI: display progress in IDE console while building

Sun, 21 Feb 2021 21:38:44 +0100SVGHMI: 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. svghmi
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.

Fri, 19 Feb 2021 10:04:36 +0100SVGHMI: update generated XSLT svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 19 Feb 2021 10:04:36 +0100] rev 3154
SVGHMI: update generated XSLT

Fri, 19 Feb 2021 10:04:17 +0100Allow printf-like formating in HMI:Input, usefull for example when dealing with floating point numbers. svghmi
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.

Fri, 19 Feb 2021 10:03:00 +0100SVGHMI: Switch from {object} to Map for "updates" global, for performance but also preventing wierd behaviour when iterating svghmi
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

Thu, 18 Feb 2021 12:02:28 +0100SVGHMI: 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. svghmi
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.

Thu, 18 Feb 2021 10:43:10 +0100SVGHMI: JsonTable removed useless promise since fetch() already does one. Updated generated XSLT. svghmi
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.

Thu, 18 Feb 2021 05:39:46 +0100SVGHMI: Optimization for JsonTable : reload JSON only when necessary, and avoid concurrent http requests. svghmi
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.

Tue, 16 Feb 2021 11:47:52 +0100merge svghmi
Edouard Tisserant [Tue, 16 Feb 2021 11:47:52 +0100] rev 3148
merge

Tue, 16 Feb 2021 11:35:56 +0100SVGHMI: update generated XSLT svghmi
Edouard Tisserant [Tue, 16 Feb 2021 11:35:56 +0100] rev 3147
SVGHMI: update generated XSLT

Tue, 16 Feb 2021 11:32:37 +0100SVGHMI: little fix ihn i18n example. svghmi
Edouard Tisserant [Tue, 16 Feb 2021 11:32:37 +0100] rev 3146
SVGHMI: little fix ihn i18n example.

Tue, 16 Feb 2021 11:32:00 +0100SVGHMI: 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. svghmi
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.

Tue, 16 Feb 2021 09:38:28 +0100SVGHMI: 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. svghmi
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.

Mon, 15 Feb 2021 15:46:47 +0100SVGHMI: more straightforward implementation of dragging position computation in Scrollbar + some little fix about boundaries. svghmi
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.

Sun, 14 Feb 2021 19:15:20 +0100SVGHMI: 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". svghmi
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".

Sun, 14 Feb 2021 05:30:29 +0100SVGHMI: update generated XSLT svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Sun, 14 Feb 2021 05:30:29 +0100] rev 3141
SVGHMI: update generated XSLT

Sun, 14 Feb 2021 05:29:51 +0100SVGHMI: i18n: prevent creating messages.pot if no translation svghmi
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

Sun, 14 Feb 2021 05:22:30 +0100SVGHMI: 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. svghmi
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.

Sun, 14 Feb 2021 05:17:25 +0100SVGHMI: fix scrollbar not behaving when rotated. svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Sun, 14 Feb 2021 05:17:25 +0100] rev 3138
SVGHMI: fix scrollbar not behaving when rotated.

Sun, 14 Feb 2021 05:15:13 +0100SVGHMI: remove forgotten debug code svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Sun, 14 Feb 2021 05:15:13 +0100] rev 3137
SVGHMI: remove forgotten debug code

Fri, 12 Feb 2021 22:00:07 +0100SVGHMI: Add a robust ScrollBar widget. HMI:ScrollBar@positionrange@size svghmi
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

Fri, 12 Feb 2021 21:58:03 +0100SVGHMI: propagate default local variables (HMI_LOCAL, PAGE_LOCAL) to widgets at startup svghmi
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

Tue, 09 Feb 2021 17:10:08 +0100SVGHMI: Update generated XSLT svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 09 Feb 2021 17:10:08 +0100] rev 3134
SVGHMI: Update generated XSLT

Tue, 09 Feb 2021 17:09:08 +0100SVGHMI: HMI:DropDown:#langs@lang now automatically shows human readable list of languages. tests/svghmi_i18n updated accordingly. svghmi
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.

Tue, 09 Feb 2021 08:11:22 +0100SVGHMI: Add a simple i18n test svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 09 Feb 2021 08:11:22 +0100] rev 3132
SVGHMI: Add a simple i18n test

Tue, 09 Feb 2021 07:57:14 +0100SVGHMI: Prevent Dropdown widget to mak exception whe value out of range svghmi
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

Tue, 09 Feb 2021 07:56:25 +0100SVGHMI: removed dead code svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 09 Feb 2021 07:56:25 +0100] rev 3130
SVGHMI: removed dead code

Tue, 09 Feb 2021 07:55:16 +0100SVGHMI: 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. svghmi
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.

Tue, 09 Feb 2021 07:46:02 +0100SVGHMI: Added HMI:VarInitPersistent to initialize persistent HMI_LOCAL and PAGE_LOCAL variables, stored as cookies in browser. svghmi
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.

Tue, 09 Feb 2021 07:41:24 +0100SVGHMI: Enforce formating HMI_LOCAL and PAGE_LOCAL variables until the end of variable name svghmi
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

Thu, 04 Feb 2021 21:23:58 +0100SVGHMI: generate JS translation literals so that it is possible to also translate uses of texts, and added JS code that apply translations to tspans svghmi
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

Thu, 04 Feb 2021 21:20:01 +0100SVGHMI: widget activable elements : moved code to wher it belongs, rewrote cleaner svghmi
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

Tue, 02 Feb 2021 16:39:02 +0100SVGHMI: update generated XSLT svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 02 Feb 2021 16:39:02 +0100] rev 3124
SVGHMI: update generated XSLT

Tue, 02 Feb 2021 11:20:54 +0100Merged svghmi
Edouard Tisserant [Tue, 02 Feb 2021 11:20:54 +0100] rev 3123
Merged

Tue, 02 Feb 2021 11:17:03 +0100SVGHMI: 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 svghmi
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.

Tue, 02 Feb 2021 10:59:00 +0100SVGHMI: Prevent excluded widget to appear in generated pages' widget list. svghmi
Edouard Tisserant [Tue, 02 Feb 2021 10:59:00 +0100] rev 3121
SVGHMI: Prevent excluded widget to appear in generated pages' widget list.

Tue, 02 Feb 2021 10:43:43 +0100SVGHMI: Remove recursive walk in parsed widget to find unique type and use xsl:key instead. svghmi
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.

Tue, 26 Jan 2021 11:17:08 +0100SVGHMI: 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. svghmi
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.

Tue, 26 Jan 2021 11:14:22 +0100SVGHMI : removed support for changing keyboard position and showing at user defined location. Feature was problematic in many respect. svghmi
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.

Mon, 25 Jan 2021 14:02:08 +0100SVGHMI: Make an error when pages are nested svghmi
Edouard Tisserant [Mon, 25 Jan 2021 14:02:08 +0100] rev 3117
SVGHMI: Make an error when pages are nested

Fri, 22 Jan 2021 11:30:37 +0100SVGHMI: i18n: finished passing back translated messaged to xslt proc, finished template to generate corresponding javascript literals. svghmi
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.

Fri, 22 Jan 2021 08:43:24 +0100SVGHMI: i18n: various fixes about unicode encoding and converting translation result back to XML to feed xslt processor svghmi
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

Thu, 21 Jan 2021 11:08:04 +0100SVGHMI: i18n: better warning messages, more explicit. svghmi
Edouard Tisserant [Thu, 21 Jan 2021 11:08:04 +0100] rev 3114
SVGHMI: i18n: better warning messages, more explicit.

Thu, 21 Jan 2021 05:04:23 +0100SVGHMI: i18n: now loads PO filesand match translation against catalog. Refactored a bit to move i18n related code in i18n.py svghmi
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

Tue, 19 Jan 2021 11:57:13 +0100SVGHMI: still WIP, now POT file is properly generated with utf-8 encoding and POEdit is launched when pressing button. svghmi
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.

Mon, 18 Jan 2021 10:32:13 +0100Docutil : reworked Inkscape launching and path resolution in docsvg.py svghmi
Edouard Tisserant [Mon, 18 Jan 2021 10:32:13 +0100] rev 3111
Docutil : reworked Inkscape launching and path resolution in docsvg.py

Fri, 15 Jan 2021 10:15:41 +0100merge svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 15 Jan 2021 10:15:41 +0100] rev 3110
merge

Wed, 13 Jan 2021 10:28:09 +0100Removed harmful assert in ProcessLogger. svghmi
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.

Fri, 15 Jan 2021 10:11:05 +0100SVGHMI: Intermediate commit while implementing i18n. WIP. svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 15 Jan 2021 10:11:05 +0100] rev 3108
SVGHMI: Intermediate commit while implementing i18n. WIP.

Tue, 05 Jan 2021 01:23:45 +0100SVGHMI: 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. svghmi
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.

Mon, 04 Jan 2021 13:57:11 +0100SVGHMI: intermediate state of test/svghmi's SVG for backup... WIP svghmi
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

Mon, 04 Jan 2021 12:34:56 +0100SVGHMI: CircularBar: use animate() + cormetic changes svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 04 Jan 2021 12:34:56 +0100] rev 3105
SVGHMI: CircularBar: use animate() + cormetic changes

Tue, 29 Dec 2020 16:54:32 +0100SVGHMI: Meter widget: use animate() + cosmetic changes svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 29 Dec 2020 16:54:32 +0100] rev 3104
SVGHMI: Meter widget: use animate() + cosmetic changes

Tue, 29 Dec 2020 15:53:30 +0100SVGHMI: Update generated xslt svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 29 Dec 2020 15:53:30 +0100] rev 3103
SVGHMI: Update generated xslt

Tue, 29 Dec 2020 15:39:48 +0100SVGHMI: Fix bug in keypad leading to error messages in browser console when keypas has no Shift or CapsLock keys svghmi
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

Tue, 29 Dec 2020 15:38:31 +0100SVGHMI: cosmetic changes svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 29 Dec 2020 15:38:31 +0100] rev 3101
SVGHMI: cosmetic changes

Tue, 29 Dec 2020 15:37:41 +0100SVGHMI: Input widget overrides undershot() and overshot() methods to display "min: xxx" or "max: xxx" when user input goes out of given range. svghmi
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.

Tue, 29 Dec 2020 15:35:39 +0100SVGHMI: 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. svghmi
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.

Thu, 24 Dec 2020 17:00:43 +0100SVGHMI: decoupled operation string evaluation from HMI variable uptdate in change_hmi_variable(), paving the way for min/max boundaries enforcement svghmi
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

Thu, 24 Dec 2020 16:56:19 +0100SVGHMI: Added parsing of min and max value that can be given as @path,min,max in widget description svghmi
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

Tue, 22 Dec 2020 14:57:59 +0100Merged default in svghmi branch svghmi
Edouard Tisserant [Tue, 22 Dec 2020 14:57:59 +0100] rev 3096
Merged default in svghmi branch

Mon, 21 Dec 2020 11:10:27 +0100WebInterface: better wording for wiping PLC content: "Repair" svghmi
Edouard Tisserant [Mon, 21 Dec 2020 11:10:27 +0100] rev 3095
WebInterface: better wording for wiping PLC content: "Repair"

Fri, 18 Dec 2020 15:52:58 +0100SVGHMI: almost rewrote Input widget to make it new class based style. svghmi
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.

Fri, 18 Dec 2020 11:50:28 +0100runtime: added restart/reset button in web settings. Accidentaly fixed web settings logging feature. svghmi
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.

Thu, 17 Dec 2020 19:31:00 +0100SVGHMI: added dropdown selection highlighting and fixed scrolling so that it doesn't miss any entry while jumping from one page to the other. svghmi
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.

Wed, 16 Dec 2020 15:44:24 +0100SVGHMI: 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. svghmi
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.

Tue, 15 Dec 2020 13:43:21 +0100SVGHMI: DropDown widget now using new class based style svghmi
Edouard Tisserant [Tue, 15 Dec 2020 13:43:21 +0100] rev 3090
SVGHMI: DropDown widget now using new class based style

Thu, 10 Dec 2020 15:48:15 +0100Add a little test to see OnChange's .count .first .last in action svghmi
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

Thu, 10 Dec 2020 14:54:42 +0100Fixed "Onchange" object added in previous commit svghmi
Edouard Tisserant [Thu, 10 Dec 2020 14:54:42 +0100] rev 3088
Fixed "Onchange" object added in previous commit

Thu, 10 Dec 2020 11:37:27 +0100Python 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. svghmi
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.

Mon, 07 Dec 2020 09:49:34 +0100SVGHMI: cosmetic fixes in button widget svghmi
Edouard Tisserant [Mon, 07 Dec 2020 09:49:34 +0100] rev 3086
SVGHMI: cosmetic fixes in button widget

Sat, 05 Dec 2020 16:59:27 +0100SVGHMI: Rewrote button widget. svghmi
Edouard Tisserant [Sat, 05 Dec 2020 16:59:27 +0100] rev 3085
SVGHMI: Rewrote button widget.

Wed, 02 Dec 2020 14:33:24 +0100SVGHMI: update generated XSLT svghmi
Edouard Tisserant [Wed, 02 Dec 2020 14:33:24 +0100] rev 3084
SVGHMI: update generated XSLT

Wed, 02 Dec 2020 14:32:56 +0100SVGHMI: stuff test so that it moves all the time, to have better chance to spot memory leaks... svghmi
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...

Wed, 02 Dec 2020 14:31:57 +0100SVGHMI: prevent unwnted context menu and pinch zoom svghmi
Edouard Tisserant [Wed, 02 Dec 2020 14:31:57 +0100] rev 3082
SVGHMI: prevent unwnted context menu and pinch zoom

Wed, 02 Dec 2020 14:30:58 +0100SVGHMI: more attempts to prevent losing memory in JS closure svghmi
Edouard Tisserant [Wed, 02 Dec 2020 14:30:58 +0100] rev 3081
SVGHMI: more attempts to prevent losing memory in JS closure

Fri, 27 Nov 2020 18:06:34 +0100SVGHMI: WIP trying to reduce memory usage : use .onclick onstead of SetAttribute, avoid useless closure and object creation when possible, etc. svghmi
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.

Wed, 25 Nov 2020 14:47:47 +0100SVGHMI: update generated xslt file svghmi
Edouard Tisserant [Wed, 25 Nov 2020 14:47:47 +0100] rev 3079
SVGHMI: update generated xslt file

Wed, 25 Nov 2020 14:47:23 +0100SVGHMI: use const when applicable svghmi
Edouard Tisserant [Wed, 25 Nov 2020 14:47:23 +0100] rev 3078
SVGHMI: use const when applicable

Wed, 25 Nov 2020 14:46:25 +0100SVGHMI: prevents text and svg elements selection on the whole page when dragging. svghmi
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.

Wed, 25 Nov 2020 14:45:01 +0100SVGHMI: Update default test to check that Input widget is indeed updated when variable changes. svghmi
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.

Wed, 25 Nov 2020 14:43:03 +0100SVGHMI: Fix: on screen keyboard wasn't showing up when editing local variables through Input widget. svghmi
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.

Fri, 20 Nov 2020 11:17:40 +0100Project tree: avoid flickering and glitches in notebook when selecting some still not opened ConfigTreeNode svghmi
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

Wed, 18 Nov 2020 23:08:17 +0100merge svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Wed, 18 Nov 2020 23:08:17 +0100] rev 3073
merge

Wed, 18 Nov 2020 10:15:44 +0100py_ext: better handling of coma separated OnChange attribute for python safe global variables. svghmi
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.

Wed, 18 Nov 2020 23:06:16 +0100Project tree: Clicking on ConfigTreeNode should have same behaviour as for POUS and other IEC types : simple click to select and double click to open. svghmi
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.

Mon, 02 Nov 2020 10:56:09 +0100Allow customization of generated py_ext OnChange calls, by adding a static method to PythonFileCTNMixin that can the be later hot patched. svghmi
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.

Wed, 28 Oct 2020 18:21:12 +0200Arbitrary variables added to JsonTable subscription are now passed as 'extra' field in json query. As an example added JsonTable filtering in tests/svghmi svghmi
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

Thu, 22 Oct 2020 22:44:29 +0200SVGHMI: Fix HMI_REAL support, and add a HMI_REAL use case in tests/svghmi. 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.

Tue, 20 Oct 2020 00:24:49 +0200merge svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 20 Oct 2020 00:24:49 +0200] rev 3067
merge

Mon, 19 Oct 2020 10:17:18 +0200SVGHMI: JsonTable now outputs "visible" value as well. svghmi
Edouard Tisserant [Mon, 19 Oct 2020 10:17:18 +0200] rev 3066
SVGHMI: JsonTable now outputs "visible" value as well.

Mon, 19 Oct 2020 10:15:26 +0200SVGHMI: non significant cosmetic changes svghmi
Edouard Tisserant [Mon, 19 Oct 2020 10:15:26 +0200] rev 3065
SVGHMI: non significant cosmetic changes

Mon, 19 Oct 2020 09:29:11 +0200- New widget customHtml which allows to insert block of html code svghmi
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

Tue, 20 Oct 2020 00:23:52 +0200PY_EXT: OnChange is now a coma separated list of callables. Updated tests/python accordingly. svghmi
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.

Thu, 01 Oct 2020 14:23:27 +0200Button fix if no active or inactive state, svghmi
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

Wed, 30 Sep 2020 12:31:59 +0200Merge two different heads svghmi
usveticic [Wed, 30 Sep 2020 12:31:59 +0200] rev 3061
Merge two different heads

Thu, 24 Sep 2020 15:42:40 +0200SVGHMI: Documentation fix svghmi
Edouard Tisserant [Thu, 24 Sep 2020 15:42:40 +0200] rev 3060
SVGHMI: Documentation fix

Thu, 24 Sep 2020 11:52:40 +0200Button and toggle reworked to use animate and dispatch svghmi
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

Thu, 17 Sep 2020 11:30:22 +0200Merge + fix side effects of making warning instead of errors in case of missing HMI variable svghmi
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

Wed, 16 Sep 2020 09:42:26 +0200Updated svg and xml for testing program svghmi
usveticic [Wed, 16 Sep 2020 09:42:26 +0200] rev 3057
Updated svg and xml for testing program

Wed, 16 Sep 2020 09:41:52 +0200Button, ToggleButton and slider updated. Error to warning when building svghmi
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.

Tue, 15 Sep 2020 13:57:06 +0200Modbus: fixed typo in ctype typing. svghmi
Edouard Tisserant [Tue, 15 Sep 2020 13:57:06 +0200] rev 3055
Modbus: fixed typo in ctype typing.

Fri, 11 Sep 2020 13:46:41 +0200MODBUS: Fix saving of websettings. svghmi
Edouard Tisserant [Fri, 11 Sep 2020 13:46:41 +0200] rev 3054
MODBUS: Fix saving of websettings.

Thu, 10 Sep 2020 16:08:26 +0200Runtime/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. svghmi
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.

Thu, 03 Sep 2020 11:16:08 +0200SVGHMI: Better error message when inkscape is not installed. svghmi
Edouard Tisserant [Thu, 03 Sep 2020 11:16:08 +0200] rev 3052
SVGHMI: Better error message when inkscape is not installed.

Wed, 02 Sep 2020 11:45:41 +0200SVGHMI: nicer error message svghmi
Edouard Tisserant [Wed, 02 Sep 2020 11:45:41 +0200] rev 3051
SVGHMI: nicer error message

Tue, 01 Sep 2020 11:15:48 +0200Merge svghmi
Edouard Tisserant [Tue, 01 Sep 2020 11:15:48 +0200] rev 3050
Merge

Mon, 31 Aug 2020 13:54:08 +0200Attempt 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. svghmi
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.

Fri, 28 Aug 2020 15:29:35 +0200SVGHMI: JsonTable can now have clickable elements, that trigger a request with extra argument whose content is taken from Json data. svghmi
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.

Fri, 28 Aug 2020 11:31:18 +0200Merged svghmi
Edouard Tisserant [Fri, 28 Aug 2020 11:31:18 +0200] rev 3047
Merged

Fri, 28 Aug 2020 11:27:07 +0200SVGHMI: cosmetic fix in test svghmi
Edouard Tisserant [Fri, 28 Aug 2020 11:27:07 +0200] rev 3046
SVGHMI: cosmetic fix in test

Tue, 18 Aug 2020 11:42:28 +0200All widgets reworked to use widget class and animate function if needed svghmi
usveticic [Tue, 18 Aug 2020 11:42:28 +0200] rev 3045
All widgets reworked to use widget class and animate function if needed

Thu, 27 Aug 2020 14:34:48 +0200SVGHMI: Moved JsonTable/Alarm related test in a separate page. svghmi
Edouard Tisserant [Thu, 27 Aug 2020 14:34:48 +0200] rev 3044
SVGHMI: Moved JsonTable/Alarm related test in a separate page.

Thu, 27 Aug 2020 14:34:00 +0200SVGHMI: JsonTable now ignores elements and groups starting with # svghmi
Edouard Tisserant [Thu, 27 Aug 2020 14:34:00 +0200] rev 3043
SVGHMI: JsonTable now ignores elements and groups starting with #

Thu, 27 Aug 2020 09:59:35 +0200SVGHMI: Fix keypad : non-number input was always considered invalid because of missing type checking. svghmi
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.

Wed, 26 Aug 2020 14:27:54 +0200SVGHMI: JsonTable now updates range and position variables so that slider widget can update. svghmi
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.

Wed, 26 Aug 2020 14:24:43 +0200SVGHMI: Fix multiple variable support in widget svghmi
Edouard Tisserant [Wed, 26 Aug 2020 14:24:43 +0200] rev 3040
SVGHMI: Fix multiple variable support in widget

Wed, 26 Aug 2020 11:34:06 +0200SVGHMI: Add TODOs in Button widgets. svghmi
Edouard Tisserant [Wed, 26 Aug 2020 11:34:06 +0200] rev 3039
SVGHMI: Add TODOs in Button widgets.

Wed, 26 Aug 2020 11:26:45 +0200SVGHMI: 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. svghmi
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.

Tue, 25 Aug 2020 14:34:49 +0200SVGHMI: little fix in HMI:Button svghmi
Edouard Tisserant [Tue, 25 Aug 2020 14:34:49 +0200] rev 3037
SVGHMI: little fix in HMI:Button

Tue, 25 Aug 2020 14:32:39 +0200SVGHMI: 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. svghmi
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.

Mon, 24 Aug 2020 09:48:35 +0200SVGHMI: removed debug code forgotten here and there. svghmi
Edouard Tisserant [Mon, 24 Aug 2020 09:48:35 +0200] rev 3035
SVGHMI: removed debug code forgotten here and there.

Fri, 21 Aug 2020 14:29:03 +0200SVGHMI: JsonTable now makes meaningfull JSON request : all arguments and variables are passed in. svghmi
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.

Fri, 21 Aug 2020 13:22:54 +0200SVGHMI: 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. svghmi
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.

Thu, 20 Aug 2020 14:12:49 +0200SVGHMI: Behave when project path include spaces, and make more understandable error in case of problem extracting geometry with inkscape. svghmi
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.

Thu, 20 Aug 2020 13:56:21 +0200SVGHMI: 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. svghmi
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.

Thu, 20 Aug 2020 13:52:00 +0200SVGHMI: Fix again clone unlinking, and this time add an "original" attribute to track the id of the original object before unlinking. svghmi
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.

Mon, 17 Aug 2020 10:00:25 +0200SVGHMI: Fix svg test file while testing latest JsonTableChanges svghmi
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

Sat, 15 Aug 2020 18:50:25 +0200SVGHMI: HMI:JsonTable also recognize TextStyleList, but parsing of textContent is still not implemented and style is still not updated. svghmi
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.

Sat, 15 Aug 2020 18:46:35 +0200SVGHMI: Deeper clone unlinking. Was actually not recursive, and clones in clones where not unlinked. Stack successive ids to avoid collisions. svghmi
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.

Thu, 13 Aug 2020 11:37:39 +0200SVGHMI: factorize dispatch calling logic. svghmi
Edouard Tisserant [Thu, 13 Aug 2020 11:37:39 +0200] rev 3026
SVGHMI: factorize dispatch calling logic.

Thu, 13 Aug 2020 11:30:18 +0200SVGHMI: 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. svghmi
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.

Wed, 12 Aug 2020 15:24:02 +0200Merge svghmi
Edouard Tisserant [Wed, 12 Aug 2020 15:24:02 +0200] rev 3024
Merge

Wed, 12 Aug 2020 13:36:18 +0200SVGHMI: Add more local HMI variable tests in tests/svghmi. svghmi
Edouard Tisserant [Wed, 12 Aug 2020 13:36:18 +0200] rev 3023
SVGHMI: Add more local HMI variable tests in tests/svghmi.

Tue, 11 Aug 2020 14:37:33 +0200SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables. svghmi
Edouard Tisserant [Tue, 11 Aug 2020 14:37:33 +0200] rev 3022
SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables.

Mon, 10 Aug 2020 15:25:57 +0200SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider. svghmi
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.

Mon, 10 Aug 2020 14:00:20 +0200SVGHMI: Update Slider widget so that it doesn't display future value but actual value only. svghmi
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.

Mon, 10 Aug 2020 13:58:55 +0200SVGHMI: 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. svghmi
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.

Mon, 10 Aug 2020 11:30:06 +0200Merge svghmi
Edouard Tisserant [Mon, 10 Aug 2020 11:30:06 +0200] rev 3018
Merge

Sat, 08 Aug 2020 15:53:28 +0200SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change. svghmi
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.

Wed, 05 Aug 2020 15:20:10 +0200Beremiz test project with newly created widgets. svghmi
usveticic [Wed, 05 Aug 2020 15:20:10 +0200] rev 3016
Beremiz test project with newly created widgets.

Wed, 05 Aug 2020 15:18:00 +0200Rebuilded gen_index_html.xslt after all new widgets were commited svghmi
usveticic [Wed, 05 Aug 2020 15:18:00 +0200] rev 3015
Rebuilded gen_index_html.xslt after all new widgets were commited

Wed, 05 Aug 2020 15:16:43 +0200Create new multistate widget which extand class widget svghmi
usveticic [Wed, 05 Aug 2020 15:16:43 +0200] rev 3014
Create new multistate widget which extand class widget

Wed, 05 Aug 2020 15:16:03 +0200Create new CircularSlider widget which extand class widget svghmi
usveticic [Wed, 05 Aug 2020 15:16:03 +0200] rev 3013
Create new CircularSlider widget which extand class widget

Wed, 05 Aug 2020 15:15:33 +0200Create new slider widget which extand class widget svghmi
usveticic [Wed, 05 Aug 2020 15:15:33 +0200] rev 3012
Create new slider widget which extand class widget

Wed, 05 Aug 2020 15:14:39 +0200Reworked togglebutton widget to extand class widget svghmi
usveticic [Wed, 05 Aug 2020 15:14:39 +0200] rev 3011
Reworked togglebutton widget to extand class widget

Wed, 05 Aug 2020 15:13:59 +0200Changed keyboard to show on defined position. svghmi
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

Wed, 05 Aug 2020 15:04:53 +0200Reworked button widget so it uses classes. svghmi
usveticic [Wed, 05 Aug 2020 15:04:53 +0200] rev 3009
Reworked button widget so it uses classes.

Thu, 06 Aug 2020 15:01:01 +0200SVGHMI: 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. svghmi
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.

Thu, 06 Aug 2020 14:59:04 +0200SVGHMI : 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. svghmi
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.

Wed, 05 Aug 2020 18:53:56 +0200SVGHMI: JS refactoring continued : "dispatch_value_to_widget" becomes widget class member "new_hmi_value" (was also broken by previous relativeness commit) svghmi
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)

Wed, 05 Aug 2020 18:49:29 +0200SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness". svghmi
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.

Tue, 04 Aug 2020 11:53:39 +0200SVGHMI: More JS code refactoring : change_hmi_value and apply_hmi_value now methods of widget class. svghmi
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.

Mon, 03 Aug 2020 18:25:23 +0200SVGHMI: Better JS code semantic in ForEach widget class. Update lagging generated xslt. svghmi
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.

Mon, 03 Aug 2020 18:22:19 +0200SVGHMI: Add ForEach Widget is svghmi test svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 03 Aug 2020 18:22:19 +0200] rev 3002
SVGHMI: Add ForEach Widget is svghmi test

Mon, 03 Aug 2020 16:34:44 +0200SVGHMI: add get_idx(index) to widget objects to factorize a bit code repeated accross widgets. To be continued. svghmi
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.

Mon, 03 Aug 2020 16:32:23 +0200SVGHMI: prefer apply_hmi_value() to change_hmi_value() when possible svghmi
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

Mon, 03 Aug 2020 16:30:16 +0200SVGHMI: Add RelativePages to tests svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 03 Aug 2020 16:30:16 +0200] rev 2999
SVGHMI: Add RelativePages to tests

Mon, 03 Aug 2020 12:08:25 +0200SVGHMI: Update Widget Display templates to generate Class based declaration. svghmi
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.

Wed, 22 Jul 2020 13:56:43 +0200SVGHMI: JsonTable now picks items from HMI:List, and update texts, all according to Json data. Still miss scrolling. svghmi
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.

Fri, 17 Jul 2020 12:21:45 +0200SVGHMI: JsonTable now generate working data access code for data/* elements. svghmi
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.

Fri, 17 Jul 2020 12:19:53 +0200SVGHMI: Minimal support for HMI:List : clones pointing to elements of any HMI:List are never unlinked, widgets using HMI:List will rely on this. svghmi
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.

Tue, 14 Jul 2020 22:05:47 +0200SVGHMI: minimal JSON Table Widget communication infra + corresponding python code as py_ext code in svghmi test. To be continued. svghmi
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.

Mon, 13 Jul 2020 13:56:42 +0200Python Runtime: order of execution of extension's init() and cleanup() now reflects order of appearance of extensions in configuration tree. svghmi
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.

Fri, 10 Jul 2020 11:15:41 +0200Python Runtime : stil untested optimization of Python Safe Globals. svghmi
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.

Fri, 03 Jul 2020 14:02:04 +0200Prevent global python_poll blocks to be created when accidentally adding content to C-File OnChange column. svghmi
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.

Fri, 03 Jul 2020 10:03:25 +0200Merge from default svghmi
Edouard Tisserant [Fri, 03 Jul 2020 10:03:25 +0200] rev 2990
Merge from default

Mon, 29 Jun 2020 14:38:04 +0200Modbus: fix strange side effect of re-use of condition variables or mutex with Xenomai : without bzero of the associated types, mutex keeps locked. svghmi
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.

Wed, 24 Jun 2020 14:38:11 +0200Modbus: fix client timer invalid arguments. svghmi
Edouard Tisserant [Wed, 24 Jun 2020 14:38:11 +0200] rev 2988
Modbus: fix client timer invalid arguments.

Tue, 23 Jun 2020 13:50:21 +0200Modbus add a timer thread, and switch timer to SIGEV_THREAD_ID to follow xenomai posix skin restrictions. svghmi
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.

Fri, 19 Jun 2020 11:07:25 +0200Runtime: Fix typo in PLCObject leading to exception when reporting failure. svghmi
Edouard Tisserant [Fri, 19 Jun 2020 11:07:25 +0200] rev 2986
Runtime: Fix typo in PLCObject leading to exception when reporting failure.

Thu, 18 Jun 2020 14:18:40 +0200merged svghmi
Edouard Tisserant [Thu, 18 Jun 2020 14:18:40 +0200] rev 2985
merged

Thu, 18 Jun 2020 14:16:19 +0200SVGHMI: Fix bug introduced when merging default svghmi
Edouard Tisserant [Thu, 18 Jun 2020 14:16:19 +0200] rev 2984
SVGHMI: Fix bug introduced when merging default

Thu, 18 Jun 2020 14:15:43 +0200SVGHMI: Add use of Python PLC Globals it test svghmi
Edouard Tisserant [Thu, 18 Jun 2020 14:15:43 +0200] rev 2983
SVGHMI: Add use of Python PLC Globals it test

Thu, 18 Jun 2020 11:00:26 +0200Merge default changes in SVGHMI svghmi
Edouard Tisserant [Thu, 18 Jun 2020 11:00:26 +0200] rev 2982
Merge default changes in SVGHMI

Thu, 18 Jun 2020 10:42:08 +0200Merge default changes in SVGHMI svghmi
Edouard Tisserant [Thu, 18 Jun 2020 10:42:08 +0200] rev 2981
Merge default changes in SVGHMI

Thu, 04 Jun 2020 11:14:21 +0200SVGHMI: add "unsubscribable" property to widgets in order to generalize what already happens for jump buttons. 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.

Wed, 03 Jun 2020 13:31:55 +0200merge svghmi
Edouard Tisserant [Wed, 03 Jun 2020 13:31:55 +0200] rev 2979
merge

Fri, 29 May 2020 09:46:07 +0200Merge svghmi
dgaberscek [Fri, 29 May 2020 09:46:07 +0200] rev 2978
Merge

Tue, 26 May 2020 10:59:01 +0200SVGHMI: Added widget toggleButton. svghmi
dgaberscek [Tue, 26 May 2020 10:59:01 +0200] rev 2977
SVGHMI: Added widget toggleButton.

Tue, 26 May 2020 10:53:02 +0200SVGHMI: Changed widget button handler to element attribute. svghmi
dgaberscek [Tue, 26 May 2020 10:53:02 +0200] rev 2976
SVGHMI: Changed widget button handler to element attribute.

Tue, 02 Jun 2020 13:37:34 +0200Runtime: create .md5 file at the end of all transfered files being written to disk, so that it presence indicates completeness of transfer. svghmi
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.

Tue, 02 Jun 2020 11:34:50 +0200IDE: Main toolbar : Show repair button also in stop mode. Move repair button after disconnect button. svghmi
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.

Mon, 01 Jun 2020 14:47:31 +0200Runtime: fsync() files when transfering them, to prebent data loss when poweroff soon after programming. Fixed variable naming as a side effect. svghmi
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.

Thu, 28 May 2020 11:38:09 +0200PLCObject : reorganize code in StartPLC(), add a PreStartPLC() empty method, to be overloaded by runtime extensions. svghmi
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.

Tue, 26 May 2020 09:58:20 +0200Solve 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. svghmi
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.

Thu, 21 May 2020 11:29:45 +0200SVGHMI: stop using eval in change_hmi_value, apparently slowly leaking memory. svghmi
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.

Thu, 14 May 2020 17:49:20 +0200SVGHMI: 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. svghmi
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.

Thu, 14 May 2020 17:48:58 +0200SVGHMI: 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. svghmi
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.

Thu, 14 May 2020 17:48:15 +0200SVGHMI: Applies clone unlinking to widget themselves, not only to clones inside widgets. svghmi
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.

Thu, 14 May 2020 09:24:09 +0200merge svghmi
Edouard Tisserant [Thu, 14 May 2020 09:24:09 +0200] rev 2966
merge

Wed, 13 May 2020 14:48:52 +0200SVGHMI: 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. svghmi
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.

Wed, 13 May 2020 14:47:17 +0200Added FatalError call to Libraries code gen, so that they can emit messages addressed like config tree nodes do. svghmi
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.

Wed, 13 May 2020 22:25:22 +0200SVGHMI: more Widget properties declared ES6 style. svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Wed, 13 May 2020 22:25:22 +0200] rev 2963
SVGHMI: more Widget properties declared ES6 style.

Wed, 13 May 2020 22:22:13 +0200SVGHMI: Switch widget now use class declaration svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Wed, 13 May 2020 22:22:13 +0200] rev 2962
SVGHMI: Switch widget now use class declaration

Wed, 13 May 2020 18:50:07 +0200SVGHMI: Update Button widget to class declaration, and add a button widget in tests/svghmi. svghmi
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.

Wed, 13 May 2020 18:47:09 +0200SVGHMI: explicit handling of undefined maximum widget update frequency 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

Wed, 13 May 2020 18:27:26 +0200SVGHMI: removed dead code svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Wed, 13 May 2020 18:27:26 +0200] rev 2959
SVGHMI: removed dead code

Wed, 13 May 2020 18:26:38 +0200SVGHMI: Back button updated to class style svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Wed, 13 May 2020 18:26:38 +0200] rev 2958
SVGHMI: Back button updated to class style

Mon, 11 May 2020 11:33:00 +0200merge svghmi
Edouard Tisserant [Mon, 11 May 2020 11:33:00 +0200] rev 2957
merge

Mon, 11 May 2020 11:10:38 +0200DEBUG: (IDE side) fixed wrong implementation of anti-rapid-fire leading to systematic delay in subscribing svghmi
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

Sun, 10 May 2020 23:40:43 +0200SVGHMI: Exclude non-widget HMI:* labeled elements from hmi_widget. Namely : HMI:Page HMI:Lang and HMI:List have been excluded. svghmi
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.

Sun, 10 May 2020 17:01:09 +0200SVGHMI: clean up dead code, update generated xslt. svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Sun, 10 May 2020 17:01:09 +0200] rev 2954
SVGHMI: clean up dead code, update generated xslt.

Sun, 10 May 2020 16:36:41 +0200SVGHMI: apply per class overloading of sub/unsub to Jump widget svghmi
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

Sun, 10 May 2020 16:36:09 +0200SVGHMI: apply per class overloading of sub/unsub to ForEach widget svghmi
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

Sun, 10 May 2020 16:34:44 +0200SVGHMI: Widget's specific sub/unsub traits are now wxpressed in widget's class. svghmi
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.

Sun, 10 May 2020 16:32:19 +0200SVGHMI: Parameters common to all widget constructors now passed as ordered parameters. svghmi
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.

Fri, 08 May 2020 16:51:43 +0200SVGHMI: 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. svghmi
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.

Fri, 08 May 2020 16:47:52 +0200SVGHMI: Add an exslt function to collect used widget types, in order to only include necessary JS definitions in furure changes. svghmi
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.

Fri, 08 May 2020 16:44:20 +0200SVGHMI: Systematically output local name as /* comment */ when emiting content. svghmi
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.

Fri, 24 Apr 2020 10:03:40 +0200Merge svghmi
Edouard Tisserant [Fri, 24 Apr 2020 10:03:40 +0200] rev 2946
Merge

Fri, 24 Apr 2020 10:02:13 +0200SVGHMI: Fix flawed logic to place nodes in the HMI tree, leading to wrecked tree in some cases. svghmi
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.

Wed, 22 Apr 2020 15:33:53 +0200Added button and circular bar widgets. svghmi
dgaberscek [Wed, 22 Apr 2020 15:33:53 +0200] rev 2944
Added button and circular bar widgets.

Mon, 20 Apr 2020 16:19:31 +0200SVGHMI: added more meaningful namespaces to emit javascript code from. svghmi
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.

Sun, 19 Apr 2020 22:44:41 +0200SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued. svghmi
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.

Sun, 19 Apr 2020 22:01:12 +0200SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces svghmi
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

Sun, 19 Apr 2020 10:48:34 +0200SVGHMI: Introduced "emit" to simplify producing per-topic code and content from anywhere in code. Applied to debug output, next to JS. svghmi
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.

Sat, 18 Apr 2020 14:06:41 +0200SVGHMI: Move reflective debug tags from "reflect" to "debug" namespace, preparing for per-purpose namespaces. svghmi
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.

Sat, 18 Apr 2020 13:14:45 +0200SVGHMI: Added scripts.ysl2 svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Sat, 18 Apr 2020 13:14:45 +0200] rev 2938
SVGHMI: Added scripts.ysl2

Sat, 18 Apr 2020 11:49:02 +0200SVGHMI: moving code wher it belongs, and reformulate some declarations for better readability. svghmi
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.

Thu, 16 Apr 2020 10:21:25 +0200SVGHMI: HMI:DropDown: more documentation. svghmi
Edouard Tisserant [Thu, 16 Apr 2020 10:21:25 +0200] rev 2936
SVGHMI: HMI:DropDown: more documentation.

Wed, 15 Apr 2020 14:29:19 +0200SVGHMI: Comments in HMI:DropDown source code svghmi
Edouard Tisserant [Wed, 15 Apr 2020 14:29:19 +0200] rev 2935
SVGHMI: Comments in HMI:DropDown source code

Tue, 14 Apr 2020 23:04:54 +0200SVGHMI: HMI:DropDown menu aligns to selected when opening svghmi
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

Tue, 14 Apr 2020 22:08:52 +0200SVGHMI: When clicking outside of opened HMI:DropDown box, close it. svghmi
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.

Tue, 14 Apr 2020 19:22:18 +0200SVGHMI: Fix HMI:DropDown flicker on close. svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 14 Apr 2020 19:22:18 +0200] rev 2932
SVGHMI: Fix HMI:DropDown flicker on close.

Tue, 14 Apr 2020 17:31:45 +0200SVGHMI: HMI:DropDown now temporarily takes content from widget's arguments, until HMI:List is implemented. svghmi
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.

Tue, 14 Apr 2020 17:17:35 +0200SVGHMI: Connect HMI:DropDown to value in HMI Tree, in svghmi test as well. svghmi
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.

Tue, 14 Apr 2020 17:16:25 +0200SVGHMI: fix probable problem in HMI:Input, where value could be applied to wrong index if used in relative page. svghmi
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.

Tue, 14 Apr 2020 17:15:02 +0200SVGHMI: HMI:DropDown element is brought in front when opened, so that it isn't occulted by other widgets at the same level. svghmi
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.

Tue, 14 Apr 2020 17:13:12 +0200SVGHMI: HMI:DropDown now catches all clicks when open svghmi
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

Tue, 14 Apr 2020 12:07:08 +0200SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins. svghmi
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.

Tue, 14 Apr 2020 10:56:45 +0200SVGHMI: HMI:DropDown now scrolls forward and backward svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 14 Apr 2020 10:56:45 +0200] rev 2925
SVGHMI: HMI:DropDown now scrolls forward and backward

Mon, 13 Apr 2020 18:28:22 +0200SVGHMI: progress on HMI:DropDown - now selects some value on click, and close svghmi
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

Sun, 12 Apr 2020 21:43:42 +0200SVGHMI: HMI:DropDown work in progress, intermediate commit. Now menu's rectangle grows up to viewport borders. svghmi
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.

Thu, 09 Apr 2020 09:52:34 +0200SVGHMI: intermediate commit while working on dropdown widget. svghmi
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

Tue, 07 Apr 2020 10:01:23 +0200SVGHMI: HMI is not speculating on PLC variable update anymore when sending new variable value. svghmi
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.

Sat, 04 Apr 2020 22:32:54 +0200SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled... svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Sat, 04 Apr 2020 22:32:54 +0200] rev 2920
SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled...

Sat, 04 Apr 2020 17:47:16 +0200SVGHMI: fixed keypad JS regarding shift/capslock and other details svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Sat, 04 Apr 2020 17:47:16 +0200] rev 2919
SVGHMI: fixed keypad JS regarding shift/capslock and other details

Sat, 04 Apr 2020 09:41:32 +0200Fix unmatched "Courier" font for monospace fonts on latest ubuntu 20.04. Selected "FreeMono" instead, present since at least 18.04 svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Sat, 04 Apr 2020 09:41:32 +0200] rev 2918
Fix unmatched "Courier" font for monospace fonts on latest ubuntu 20.04. Selected "FreeMono" instead, present since at least 18.04

Fri, 03 Apr 2020 14:37:41 +0200SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished. svghmi
Edouard Tisserant [Fri, 03 Apr 2020 14:37:41 +0200] rev 2917
SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished.

Fri, 03 Apr 2020 09:52:57 +0200SVGHMI: fix keyboard not showing svghmi
Edouard Tisserant [Fri, 03 Apr 2020 09:52:57 +0200] rev 2916
SVGHMI: fix keyboard not showing

Fri, 03 Apr 2020 08:30:00 +0200SVGHMI: Added keypads to svghmi test's SVG file svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 03 Apr 2020 08:30:00 +0200] rev 2915
SVGHMI: Added keypads to svghmi test's SVG file

Fri, 03 Apr 2020 08:13:47 +0200merge svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 03 Apr 2020 08:13:47 +0200] rev 2914
merge

Thu, 02 Apr 2020 15:18:15 +0200SVGHMI: Keypad: added code to re-attach keypad when starting edit. svghmi
Edouard Tisserant [Thu, 02 Apr 2020 15:18:15 +0200] rev 2913
SVGHMI: Keypad: added code to re-attach keypad when starting edit.

Thu, 02 Apr 2020 14:04:21 +0200SVGHMI: removed debug code svghmi
Edouard Tisserant [Thu, 02 Apr 2020 14:04:21 +0200] rev 2912
SVGHMI: removed debug code

Thu, 02 Apr 2020 14:03:38 +0200SVGHMI: More infrastructure for editing values with a keypad. svghmi
Edouard Tisserant [Thu, 02 Apr 2020 14:03:38 +0200] rev 2911
SVGHMI: More infrastructure for editing values with a keypad.

Thu, 02 Apr 2020 09:38:53 +0200SVGHMI: Widget input buttons should be clickable through svg:use (onclick attribute instead of addEventListener) svghmi
Edouard Tisserant [Thu, 02 Apr 2020 09:38:53 +0200] rev 2910
SVGHMI: Widget input buttons should be clickable through svg:use (onclick attribute instead of addEventListener)

Wed, 01 Apr 2020 18:10:45 +0200SVGHMI: moved dead code to where it belongs svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Wed, 01 Apr 2020 18:10:45 +0200] rev 2909
SVGHMI: moved dead code to where it belongs

Wed, 01 Apr 2020 14:42:50 +0200SVGHMI: empty widget_keypad.ysl2, WIP svghmi
Edouard Tisserant [Wed, 01 Apr 2020 14:42:50 +0200] rev 2908
SVGHMI: empty widget_keypad.ysl2, WIP

Tue, 31 Mar 2020 13:20:15 +0200SVGHMI: HMI:Switch now accepts boolean values 'true' and 'false' svghmi
Edouard Tisserant [Tue, 31 Mar 2020 13:20:15 +0200] rev 2907
SVGHMI: HMI:Switch now accepts boolean values 'true' and 'false'

Mon, 30 Mar 2020 14:26:42 +0200SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise. svghmi
Edouard Tisserant [Mon, 30 Mar 2020 14:26:42 +0200] rev 2906
SVGHMI: Jump widget, if it has a 'disabled' labeled element, reflects value of the pointed HMITree variable by showing this element when value is False, and behaving normaly otherwise.

Mon, 30 Mar 2020 11:06:12 +0200SVGHMI: prevent man-made memory leak by limiting back button history items count to 42 svghmi
Edouard Tisserant [Mon, 30 Mar 2020 11:06:12 +0200] rev 2905
SVGHMI: prevent man-made memory leak by limiting back button history items count to 42

Sun, 29 Mar 2020 16:11:21 +0200SVGHMI: collect debug data through xslt reflectivity instead of yml2/python trick svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Sun, 29 Mar 2020 16:11:21 +0200] rev 2904
SVGHMI: collect debug data through xslt reflectivity instead of yml2/python trick

Fri, 27 Mar 2020 14:25:24 +0100SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided. svghmi
Edouard Tisserant [Fri, 27 Mar 2020 14:25:24 +0100] rev 2903
SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided.

Thu, 26 Mar 2020 14:21:52 +0100SVGHMI: added Back widget. svghmi
Edouard Tisserant [Thu, 26 Mar 2020 14:21:52 +0100] rev 2902
SVGHMI: added Back widget.

Thu, 26 Mar 2020 13:33:20 +0100SVGHMI: Jump widget now make errors if path given for relative jump doesn't match target page reference path class. svghmi
Edouard Tisserant [Thu, 26 Mar 2020 13:33:20 +0100] rev 2901
SVGHMI: Jump widget now make errors if path given for relative jump doesn't match target page reference path class.

Thu, 26 Mar 2020 11:17:34 +0100SVGHMI: Check that explicit relative page jump path is consistant with destination page reference path. svghmi
Edouard Tisserant [Thu, 26 Mar 2020 11:17:34 +0100] rev 2900
SVGHMI: Check that explicit relative page jump path is consistant with destination page reference path.

Wed, 25 Mar 2020 14:09:15 +0100SVGHMI: ForEach Widget now has a better wrap-around when scrolling : hit the boundary systematically before wrapping svghmi
Edouard Tisserant [Wed, 25 Mar 2020 14:09:15 +0100] rev 2899
SVGHMI: ForEach Widget now has a better wrap-around when scrolling : hit the boundary systematically before wrapping

Wed, 25 Mar 2020 13:56:04 +0100SVGHMI: Alow relative relative Jump. (i.e, relative jump from a foreach widget) svghmi
Edouard Tisserant [Wed, 25 Mar 2020 13:56:04 +0100] rev 2898
SVGHMI: Alow relative relative Jump. (i.e, relative jump from a foreach widget)

Wed, 25 Mar 2020 13:36:04 +0100SVGHMI: Generalize applying cache to widgets, be it from page or ForEach widgets. Now ForEach widget buttons work as expected. svghmi
Edouard Tisserant [Wed, 25 Mar 2020 13:36:04 +0100] rev 2897
SVGHMI: Generalize applying cache to widgets, be it from page or ForEach widgets. Now ForEach widget buttons work as expected.

Tue, 24 Mar 2020 23:07:54 +0100SVGHMI: Widget ForEach buttons now call corresponding methods. svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 24 Mar 2020 23:07:54 +0100] rev 2896
SVGHMI: Widget ForEach buttons now call corresponding methods.

Tue, 24 Mar 2020 14:03:19 +0100SVGHMI: ForEach now has working (un)subscribe. Fixed PageSwitch that wasn't behaving when jumping to current page with another path. svghmi
Edouard Tisserant [Tue, 24 Mar 2020 14:03:19 +0100] rev 2895
SVGHMI: ForEach now has working (un)subscribe. Fixed PageSwitch that wasn't behaving when jumping to current page with another path.

Mon, 23 Mar 2020 21:44:28 +0100SVGHMI: Easier way to match HMI tree elements to paths. ForEach widget now looks for paths and indexes of all items, and enforce path to be consistent with ForEach items sub widgets svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 23 Mar 2020 21:44:28 +0100] rev 2894
SVGHMI: Easier way to match HMI tree elements to paths. ForEach widget now looks for paths and indexes of all items, and enforce path to be consistent with ForEach items sub widgets

Mon, 23 Mar 2020 15:13:36 +0100SVGHMI: added func:get_hmi_tree_elt to match HMI tree node from path. Continue implementing ForEach widget : force order and completeness of items list. Now also collecting ForEach buttons. svghmi
Edouard Tisserant [Mon, 23 Mar 2020 15:13:36 +0100] rev 2893
SVGHMI: added func:get_hmi_tree_elt to match HMI tree node from path. Continue implementing ForEach widget : force order and completeness of items list. Now also collecting ForEach buttons.

Mon, 23 Mar 2020 10:16:38 +0100SVGHMI: ForEach knows its own widgets svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 23 Mar 2020 10:16:38 +0100] rev 2892
SVGHMI: ForEach knows its own widgets

Fri, 20 Mar 2020 10:46:15 +0100SVGHMI: add widget_foreach.ysl2 svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 20 Mar 2020 10:46:15 +0100] rev 2891
SVGHMI: add widget_foreach.ysl2

Fri, 20 Mar 2020 10:00:59 +0100SVGHMI: make root HMI tree node a HMI_NODE, droped HMI_ROOT node type svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 20 Mar 2020 10:00:59 +0100] rev 2890
SVGHMI: make root HMI tree node a HMI_NODE, droped HMI_ROOT node type

Thu, 19 Mar 2020 19:23:56 +0100SVGHMI: reworked widget (un)subscription now a method of widgect object, allowing special subscription methods svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Thu, 19 Mar 2020 19:23:56 +0100] rev 2889
SVGHMI: reworked widget (un)subscription now a method of widgect object, allowing special subscription methods

Thu, 19 Mar 2020 11:32:20 +0100SVGHMI: Exclude (again) sub-widgets of forEach widget from page-switch managed widget. svghmi
Edouard Tisserant [Thu, 19 Mar 2020 11:32:20 +0100] rev 2888
SVGHMI: Exclude (again) sub-widgets of forEach widget from page-switch managed widget.

Thu, 19 Mar 2020 09:57:26 +0100SVGHMI: cosmetic changes svghmi
Edouard Tisserant [Thu, 19 Mar 2020 09:57:26 +0100] rev 2887
SVGHMI: cosmetic changes

Thu, 19 Mar 2020 09:31:07 +0100SVGHMI: Simplification and optimization. func:parselabel becomes a template. svghmi
Edouard Tisserant <edouard.tisserant@gmail.com> [Thu, 19 Mar 2020 09:31:07 +0100] rev 2886
SVGHMI: Simplification and optimization. func:parselabel becomes a template.

All labels are parsed into a global variable containing resulting widget
description as a node-set. func:widget(id) was added for random access to
widget description.

Wed, 18 Mar 2020 12:06:50 +0100SVGHMI: intermediate untested state. Excluded ForEach widget from pages handled widgets. svghmi
Edouard Tisserant [Wed, 18 Mar 2020 12:06:50 +0100] rev 2885
SVGHMI: intermediate untested state. Excluded ForEach widget from pages handled widgets.

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.

Mon, 09 Dec 2019 14:53:42 +0100SVGHMI : had to move the problem of wkaing up python thread from plc thread to platform specific code. svghmi
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.

Mon, 09 Dec 2019 10:43:54 +0100SVGHMI: change collect/send thread looping condition to fix infinite loop in some cases svghmi
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

Tue, 03 Dec 2019 09:46:12 +0100SVGHMI: re-implemented tree view with classic wxTreeCtl svghmi
Edouard Tisserant [Tue, 03 Dec 2019 09:46:12 +0100] rev 2818
SVGHMI: re-implemented tree view with classic wxTreeCtl

Tue, 03 Dec 2019 09:44:48 +0100Non significant changes, whitespaces, etc. svghmi
Edouard Tisserant [Tue, 03 Dec 2019 09:44:48 +0100] rev 2817
Non significant changes, whitespaces, etc.

Fri, 15 Nov 2019 10:34:14 +0100SVGHMI: Added simple HMI Tree View. svghmi
Edouard Tisserant [Fri, 15 Nov 2019 10:34:14 +0100] rev 2816
SVGHMI: Added simple HMI Tree View.

Thu, 14 Nov 2019 08:46:32 +0100SVGHMI: add a class attribute to HMI Tree nodes, set when using HMI_NODE svghmi
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

Wed, 13 Nov 2019 11:22:53 +0100SVGHMI: HMI_LABEL and HMI_CLASS become HMI_NODE. svghmi
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.

Wed, 13 Nov 2019 11:21:04 +0100Add FatalError() method to ConfigTreeNode. svghmi
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.

Thu, 07 Nov 2019 16:40:48 +0100SVGHMI: various fixes to make SVGHMI behave on more versions of twisted and GCC. svghmi
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.

Wed, 30 Oct 2019 15:17:05 +0100SVGHMI - 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. svghmi
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.

Tue, 29 Oct 2019 11:18:58 +0100SVGHMI: various insignificant code moves, commenting and typos fixes. svghmi
Edouard Tisserant [Tue, 29 Oct 2019 11:18:58 +0100] rev 2810
SVGHMI: various insignificant code moves, commenting and typos fixes.

Tue, 29 Oct 2019 09:10:10 +0100SVGHMI : fancier second page in tests/svghmi svghmi
Edouard Tisserant [Tue, 29 Oct 2019 09:10:10 +0100] rev 2809
SVGHMI : fancier second page in tests/svghmi

Mon, 28 Oct 2019 19:52:43 +0100SVGHMI: 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. 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.

Mon, 28 Oct 2019 10:30:20 +0100SVGHMI - added simple Meter widget. svghmi
Edouard Tisserant [Mon, 28 Oct 2019 10:30:20 +0100] rev 2807
SVGHMI - added simple Meter widget.

Sun, 27 Oct 2019 22:28:51 +0100SVGHMI: 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 svghmi
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

Sun, 27 Oct 2019 21:38:10 +0100SVGHMI: fixed HMI->PLC dataflow : not updates as expected, and not initialized properly after subscribe. svghmi
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.

Thu, 24 Oct 2019 11:20:04 +0200Fixed one more sequel of 5f79b194fa63 'SVGHMI: filter out temporary variables created while generating ST code out of FBD.' svghmi
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.'

Thu, 24 Oct 2019 10:02:07 +0200SVGHMI: Added relative changes of HMI value from widgets. svghmi
Edouard Tisserant [Thu, 24 Oct 2019 10:02:07 +0200] rev 2803
SVGHMI: Added relative changes of HMI value from widgets.

Tue, 22 Oct 2019 22:58:55 +0200SVGHMI - Fixed svghmi.{c,js} about HMI -> PLC data unpack. svghmi
Edouard Tisserant [Tue, 22 Oct 2019 22:58:55 +0200] rev 2802
SVGHMI - Fixed svghmi.{c,js} about HMI -> PLC data unpack.

Tue, 22 Oct 2019 17:06:31 +0200SVGHMI: 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. svghmi
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.

Sat, 19 Oct 2019 01:23:30 +0200SVGHMI: dispatching data to minimalist "Display" text widget. svghmi
Edouard Tisserant [Sat, 19 Oct 2019 01:23:30 +0200] rev 2800
SVGHMI: dispatching data to minimalist "Display" text widget.

Thu, 17 Oct 2019 15:48:09 +0200SVGHMI: Many fixes. Subscriptions to HMItree seems to be working, and dispatch function is called in JS with good data. Bidirectional communication now really working. svghmi
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.

Tue, 15 Oct 2019 17:14:48 +0200SVGHMI : many details about communication implemented in JS, with side effects. svghmi
Edouard Tisserant [Tue, 15 Oct 2019 17:14:48 +0200] rev 2798
SVGHMI : many details about communication implemented in JS, with side effects.

Fri, 11 Oct 2019 12:03:14 +0200SVGHMI: 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. svghmi
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.

Thu, 10 Oct 2019 10:03:47 +0200SVGHMI fix logic for page membership detection svghmi
Edouard Tisserant [Thu, 10 Oct 2019 10:03:47 +0200] rev 2796
SVGHMI fix logic for page membership detection

Thu, 10 Oct 2019 09:54:44 +0200SVGHMI compute default page svghmi
Edouard Tisserant [Thu, 10 Oct 2019 09:54:44 +0200] rev 2795
SVGHMI compute default page

Wed, 09 Oct 2019 11:15:14 +0200SVGHMI: deduce pages content out of geometry (elements contained in page bounding box are in) svghmi
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)

Wed, 09 Oct 2019 09:04:35 +0200SVGHMI: use func:function for parsing labels so that it can be used in predicates svghmi
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

Tue, 08 Oct 2019 13:27:00 +0200SVGHMI: moved/fixed some templates, avoided namespace problems, added parsing of HMI:* inkscape labels svghmi
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

Mon, 07 Oct 2019 12:02:45 +0200SVGHMI: now generating JS object describing widgets and pointing to SVG elements svghmi
Edouard Tisserant [Mon, 07 Oct 2019 12:02:45 +0200] rev 2791
SVGHMI: now generating JS object describing widgets and pointing to SVG elements

Sat, 05 Oct 2019 09:45:58 +0200SVGHI: compute hmitree variables ordered index in xslt svghmi
Edouard Tisserant [Sat, 05 Oct 2019 09:45:58 +0200] rev 2790
SVGHI: compute hmitree variables ordered index in xslt

Wed, 02 Oct 2019 11:31:02 +0200SVGHMI: now built. svghmi
Edouard Tisserant [Wed, 02 Oct 2019 11:31:02 +0200] rev 2789
SVGHMI: now built.

Mon, 30 Sep 2019 13:26:11 +0200SVGHMI: Work in progress. C side mostly implemented, neither built nor tested. svghmi
Edouard Tisserant [Mon, 30 Sep 2019 13:26:11 +0200] rev 2788
SVGHMI: Work in progress. C side mostly implemented, neither built nor tested.

Fri, 27 Sep 2019 06:54:35 +0200SVGHMI: More strict formating of active HMI labels : @ separator only used for paths svghmi
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

Thu, 26 Sep 2019 09:33:49 +0200SVGHMI: new test svg to drive next implementation svghmi
Edouard Tisserant [Thu, 26 Sep 2019 09:33:49 +0200] rev 2786
SVGHMI: new test svg to drive next implementation

Wed, 25 Sep 2019 08:53:27 +0200Non significant changes in generated xslt, side effect of changes in yslt_noindent.yml2 svghmi
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

Tue, 24 Sep 2019 11:58:31 +0200Merge default in SVGHMI branch svghmi
Edouard Tisserant [Tue, 24 Sep 2019 11:58:31 +0200] rev 2784
Merge default in SVGHMI branch

Fri, 20 Sep 2019 13:38:58 +0200SVGHMI: Starting to define JS side more in details. svghmi
Edouard Tisserant [Fri, 20 Sep 2019 13:38:58 +0200] rev 2783
SVGHMI: Starting to define JS side more in details.

Thu, 19 Sep 2019 15:32:36 +0200SVGHMI: added transformation of code given in inkscape's description fields into javascript functions svghmi
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

Thu, 19 Sep 2019 10:41:39 +0200SVGHMI: gui.svg -> svghmi.svg svghmi
Edouard Tisserant [Thu, 19 Sep 2019 10:41:39 +0200] rev 2781
SVGHMI: gui.svg -> svghmi.svg

Thu, 19 Sep 2019 09:01:49 +0200SVGHMI: moved static JS code to a separate file included at xhtml generation time svghmi
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

Wed, 18 Sep 2019 11:09:35 +0200SVGHMI: 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. svghmi
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.

Wed, 18 Sep 2019 11:03:56 +0200PLCobject: Call "stop" and "cleanup" methods from python runtime files in reverse order compared to "init" and "start". svghmi
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".

Mon, 16 Sep 2019 13:45:04 +0200SVGHMI: WIP for python<->C data exchange : message from browser hit the C side. svghmi
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.

Mon, 16 Sep 2019 11:44:20 +0200SVGHMI: WIP for python<->C data exchange svghmi
Edouard Tisserant [Mon, 16 Sep 2019 11:44:20 +0200] rev 2776
SVGHMI: WIP for python<->C data exchange

Mon, 16 Sep 2019 10:54:15 +0200SVGHMI: WIP for python<->C data exchange svghmi
Edouard Tisserant [Mon, 16 Sep 2019 10:54:15 +0200] rev 2775
SVGHMI: WIP for python<->C data exchange

Thu, 12 Sep 2019 12:56:47 +0200SVGHMI: WIP for python<->C data exchange svghmi
Edouard Tisserant [Thu, 12 Sep 2019 12:56:47 +0200] rev 2774
SVGHMI: WIP for python<->C data exchange

Thu, 12 Sep 2019 12:55:32 +0200SVGHMI: single session for now svghmi
Edouard Tisserant [Thu, 12 Sep 2019 12:55:32 +0200] rev 2773
SVGHMI: single session for now

Thu, 12 Sep 2019 12:54:36 +0200SVGHMI: few fixes on serving svghmi
Edouard Tisserant [Thu, 12 Sep 2019 12:54:36 +0200] rev 2772
SVGHMI: few fixes on serving

Wed, 11 Sep 2019 12:24:30 +0200WIP on svghmi, now builds and runs. HTTP serving + WS transport ready, missing actual data to transmit and thread to collect it. svghmi
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.

Wed, 11 Sep 2019 11:20:11 +0200Non significant changes to mute GCC warnings about unused variables. svghmi
Edouard Tisserant [Wed, 11 Sep 2019 11:20:11 +0200] rev 2770
Non significant changes to mute GCC warnings about unused variables.

Thu, 05 Sep 2019 08:35:33 +0200Fixed 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... svghmi
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...

Tue, 03 Sep 2019 12:17:33 +0200SVGHMI: Intermediate state while working on svghmi.c svghmi
Edouard Tisserant [Tue, 03 Sep 2019 12:17:33 +0200] rev 2768
SVGHMI: Intermediate state while working on svghmi.c

Mon, 26 Aug 2019 08:54:02 +0200svghmi.c : deduplicated variable access code borrowed from plc_debug.c. Added targets/var_access.c. svghmi
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.

Fri, 23 Aug 2019 14:01:31 +0200SVGHMI: Added iterators in svghmi.c copy-pasted form plc_debug.c svghmi
Edouard Tisserant [Fri, 23 Aug 2019 14:01:31 +0200] rev 2766
SVGHMI: Added iterators in svghmi.c copy-pasted form plc_debug.c

Fri, 23 Aug 2019 13:01:37 +0200SVGHMI: svghmi.c now has mutex, iterator, and read/write buffer. svghmi
Edouard Tisserant [Fri, 23 Aug 2019 13:01:37 +0200] rev 2765
SVGHMI: svghmi.c now has mutex, iterator, and read/write buffer.

Thu, 22 Aug 2019 14:58:53 +0200SVGHMI: draft for svghmi.c. It has all PLC variables pointed in HMI tree in an array. svghmi
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.

Tue, 20 Aug 2019 10:32:34 +0200Pass HMITree to SVG transform. It seems it could really help to reduce JS tree binding logic in the end. svghmi
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.

Tue, 20 Aug 2019 10:30:59 +0200Add special nodes at HMI Tree root, fix code to handle special node (no path). svghmi
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).

Tue, 20 Aug 2019 10:08:11 +0200Swap CTN code gen and Libraries code gen, because SVGHMI use both, and need the library part to produce hmitree before CTN part. svghmi
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.

Tue, 20 Aug 2019 10:01:18 +0200yslt_noindent : Avoid YSLT's indent logic to interfere when using linequote. svghmi
Edouard Tisserant [Tue, 20 Aug 2019 10:01:18 +0200] rev 2760
yslt_noindent : Avoid YSLT's indent logic to interfere when using linequote.

Wed, 14 Aug 2019 13:06:03 +0200SVGHMI: make a reasonably basic test svghmi
Edouard Tisserant [Wed, 14 Aug 2019 13:06:03 +0200] rev 2759
SVGHMI: make a reasonably basic test

Wed, 14 Aug 2019 11:05:17 +0200SVGHMI: filter out temporary variables created while generating ST code out of FBD. svghmi
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.

Tue, 13 Aug 2019 14:04:13 +0200SVGHMI: added deduction of HMI tree from list of HMI_* instances. svghmi
Edouard Tisserant [Tue, 13 Aug 2019 14:04:13 +0200] rev 2757
SVGHMI: added deduction of HMI tree from list of HMI_* instances.

Mon, 12 Aug 2019 13:09:55 +0200SVGHMI: added extraction of SVG bounding boxes, obtained from "inkscape -S", and passed to XSLT transform as variable. svghmi
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.

Mon, 12 Aug 2019 13:06:11 +0200Allow using docutil.get_inkscape_path() on Linux also. svghmi
Edouard Tisserant [Mon, 12 Aug 2019 13:06:11 +0200] rev 2755
Allow using docutil.get_inkscape_path() on Linux also.

Fri, 09 Aug 2019 12:12:24 +0200SVGHMI: little fixes to make the build go through svghmi
Edouard Tisserant [Fri, 09 Aug 2019 12:12:24 +0200] rev 2754
SVGHMI: little fixes to make the build go through

Fri, 09 Aug 2019 12:11:31 +0200SVGHMI: Added XSLT transformation, Makefile to get XSLT from ysl2 (copy of plcopen/Makefile) and a minimal stylesheet to start with. svghmi
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.

Fri, 09 Aug 2019 12:07:33 +0200Moved XSLT model query python code so that XSLT part can be reused for other transformations (i.e. in SVGHMI) svghmi
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)

Thu, 08 Aug 2019 15:56:17 +0200Complete SVGUI test minimal skeleton so that it builds. 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.

Wed, 07 Aug 2019 14:18:22 +0200intermediate commit, work in progress svghmi
Edouard Tisserant [Wed, 07 Aug 2019 14:18:22 +0200] rev 2750
intermediate commit, work in progress

Thu, 18 Jul 2019 14:09:33 +0200Use a POU Library's Generate_C to collect all variables in SVGHMI. svghmi
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.

Wed, 17 Jul 2019 09:44:44 +0200merged svghmi
Edouard Tisserant [Wed, 17 Jul 2019 09:44:44 +0200] rev 2748
merged

Wed, 17 Jul 2019 09:44:11 +0200Enable svghmi plugin in features, and small fixes to skeleton. svghmi
Edouard Tisserant [Wed, 17 Jul 2019 09:44:11 +0200] rev 2747
Enable svghmi plugin in features, and small fixes to skeleton.

Mon, 15 Jul 2019 09:05:00 +0200Merged default in svghmi svghmi
Edouard Tisserant [Mon, 15 Jul 2019 09:05:00 +0200] rev 2746
Merged default in svghmi

Fri, 12 Jul 2019 11:58:22 +0200Skeleton for svghmi extension svghmi
Edouard Tisserant [Fri, 12 Jul 2019 11:58:22 +0200] rev 2745
Skeleton for svghmi extension

Wed, 30 Jun 2021 15:44:32 +0200IDE: Allow POU Libraries to inject PLC Configurations globals during build.
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.

Wed, 30 Jun 2021 16:46:14 +0300WIP: initial setup.
Ivan Tyagov <ivan@nexedi.com> [Wed, 30 Jun 2021 16:46:14 +0300] rev 2743
WIP: initial setup.

Wed, 16 Jun 2021 12:15:02 +0200IDE: 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 [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.

Mon, 14 Jun 2021 16:48:39 +0200IDE: 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 [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.

Fri, 11 Jun 2021 11:56:07 +0200IDE: Log: Prevent crash when display progress on empty log.
Edouard Tisserant [Fri, 11 Jun 2021 11:56:07 +0200] rev 2740
IDE: Log: Prevent crash when display progress on empty log.

Thu, 10 Jun 2021 09:40:05 +0200Copy description when DnD variables from CodeFile CTN to POUs
Edouard Tisserant [Thu, 10 Jun 2021 09:40:05 +0200] rev 2739
Copy description when DnD variables from CodeFile CTN to POUs

Tue, 25 May 2021 15:05:38 +0200Runtime: Fix exception "Worker is disabled" when connecting while PLC runtime is starting.
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

Mon, 24 May 2021 14:33:54 +0200Finished 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 [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.

Wed, 12 May 2021 11:36:56 +0200Add ThirPartyPath call in util.path module, so that individual extensions don't have to each implement same logic to find dependencies
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

Thu, 01 Apr 2021 15:51:24 +0200IDE: Add a shortcut to project "Clean" action : F9
Edouard Tisserant [Thu, 01 Apr 2021 15:51:24 +0200] rev 2735
IDE: Add a shortcut to project "Clean" action : F9

Mon, 29 Mar 2021 15:46:02 +0200Fixed misuse of GridCellEditor in DurationCellEditor, potentially leading to crash on windows.
Edouard Tisserant [Mon, 29 Mar 2021 15:46:02 +0200] rev 2734
Fixed misuse of GridCellEditor in DurationCellEditor, potentially leading to crash on windows.

Tue, 23 Mar 2021 05:08:51 +0100Allow using spin() from ProcessLogger even with no logger given.
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.

Wed, 10 Mar 2021 09:59:18 +0100Runtime: 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.
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

Tue, 02 Mar 2021 10:11:45 +0100IDE: Fix logging of external process execution time so that it is visible on windows as well.
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.

Tue, 02 Mar 2021 09:42:50 +0100IDE: 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: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.

Tue, 02 Mar 2021 09:28:44 +0100IDE: Iec2CSettings: Log wasn't available in case of exception when launching iec2c.
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.

Tue, 02 Mar 2021 09:25:55 +0100IDE: Log: Cosmetic changes, refactoring
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 02 Mar 2021 09:25:55 +0100] rev 2728
IDE: Log: Cosmetic changes, refactoring

Mon, 01 Mar 2021 15:45:13 +0100IDE: 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 [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.

Sun, 28 Feb 2021 21:45:10 +0100IDE: Fixed log console that was not updating line by line smoothly when building.
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.

Fri, 09 Apr 2021 09:45:28 +0200merge
Edouard Tisserant [Fri, 09 Apr 2021 09:45:28 +0200] rev 2725
merge

Tue, 02 Feb 2021 13:47:48 +0100Merge
Tomaz Orac [Tue, 02 Feb 2021 13:47:48 +0100] rev 2724
Merge

Thu, 28 Jan 2021 14:51:16 +0000merge
Mario de Sousa <msousa@fe.up.pt> [Thu, 28 Jan 2021 14:51:16 +0000] rev 2723
merge

Thu, 28 Jan 2021 14:50:26 +0000modbus 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:50:26 +0000] rev 2722
modbus plugin: add (user accessible) transaction bool flags for servers/slaves; FIX BUG in previous commit affecting RTU slaves.

Thu, 28 Jan 2021 14:17:40 +0000modbus plugin: add (user accessible) transaction counters for servers/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

Tue, 23 Feb 2021 16:16:12 +0100PLCObject : 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 [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.

Mon, 18 Jan 2021 10:59:28 +0100Merge
Edouard Tisserant [Mon, 18 Jan 2021 10:59:28 +0100] rev 2719
Merge

Fri, 25 Dec 2020 17:12:02 +0000merge
Mario de Sousa <msousa@fe.up.pt> [Fri, 25 Dec 2020 17:12:02 +0000] rev 2718
merge

Fri, 25 Dec 2020 17:11:38 +0000modbus plugin: add/fix comments
Mario de Sousa <msousa@fe.up.pt> [Fri, 25 Dec 2020 17:11:38 +0000] rev 2717
modbus plugin: add/fix comments

Mon, 21 Dec 2020 22:35:07 +0000merge
Mario de Sousa <msousa@fe.up.pt> [Mon, 21 Dec 2020 22:35:07 +0000] rev 2716
merge

Mon, 21 Dec 2020 22:32:03 +0000Modbus 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:32:03 +0000] rev 2715
Modbus plugin: fix bug - map BOOL flag onto C u8 (was incorrectly mapped onto u16)

Mon, 21 Dec 2020 22:26:36 +0000Modbus 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 22:26:36 +0000] rev 2714
Modbus plugin: map status of MB transaction onto 2 located BYTE vars (instead of a singlw WORD var).

Mon, 21 Dec 2020 21:15:47 +0000Modbus plugin: provide user programs feedback on current connection status mapped onto a WORD located variable
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

Wed, 13 Jan 2021 10:28:09 +0100Removed harmful assert in ProcessLogger.
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.

Tue, 22 Dec 2020 18:05:05 +0100Fix missing import, consequence of bad resolution of conflicting hg graft of f0a822ef9fa0 into d15a997859b1
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

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

Fri, 03 Jul 2020 14:02:04 +0200Prevent global python_poll blocks to be created when accidentally adding content to C-File OnChange column.
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.

Mon, 11 May 2020 11:10:38 +0200DEBUG: (IDE side) fixed wrong implementation of anti-rapid-fire leading to systematic delay in subscribing
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

Tue, 11 Feb 2020 13:56:48 +0100XSLTransform.py: added get_error_log()
Edouard Tisserant [Tue, 11 Feb 2020 13:56:48 +0100] rev 2707
XSLTransform.py: added get_error_log()

Mon, 31 Aug 2020 13:54:08 +0200Attempt 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 [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.

Thu, 03 Sep 2020 11:16:08 +0200docsvg.py : Better error message when inkscape is not installed.
Edouard Tisserant [Thu, 03 Sep 2020 11:16:08 +0200] rev 2705
docsvg.py : Better error message when inkscape is not installed.

Sat, 04 Apr 2020 09:41:32 +0200Fix unmatched "Courier" font for monospace fonts on latest ubuntu 20.04. Selected "FreeMono" instead, present since at least 18.04
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

Mon, 13 Jul 2020 13:56:42 +0200Python Runtime: order of execution of extension's init() and cleanup() now reflects order of appearance of extensions in configuration tree.
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.

Tue, 22 Dec 2020 14:53:15 +0100Runtime: change PLCObject 'BlobAsFile' method to allow customization by overriding
Edouard Tisserant [Tue, 22 Dec 2020 14:53:15 +0100] rev 2702
Runtime: change PLCObject 'BlobAsFile' method to allow customization by overriding

Mon, 21 Dec 2020 11:10:27 +0100WebInterface: better wording for wiping PLC content: "Repair"
Edouard Tisserant [Mon, 21 Dec 2020 11:10:27 +0100] rev 2701
WebInterface: better wording for wiping PLC content: "Repair"

Fri, 18 Dec 2020 11:50:28 +0100runtime: added restart/reset button in web settings. Accidentaly fixed web settings logging feature.
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.

Thu, 10 Dec 2020 15:48:15 +0100Add a little test to see OnChange's .count .first .last in action
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

Thu, 10 Dec 2020 14:54:42 +0100Fixed "Onchange" object added in previous commit
Edouard Tisserant [Thu, 10 Dec 2020 14:54:42 +0100] rev 2698
Fixed "Onchange" object added in previous commit

Thu, 10 Dec 2020 11:37:27 +0100Python 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> [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.

Fri, 20 Nov 2020 11:17:40 +0100Project tree: avoid flickering and glitches in notebook when selecting some still not opened ConfigTreeNode
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

Wed, 18 Nov 2020 23:06:16 +0100Project 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> [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.

Wed, 18 Nov 2020 10:15:44 +0100py_ext: better handling of coma separated OnChange attribute for python safe global variables.
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.

Mon, 02 Nov 2020 10:56:09 +0100Allow 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> [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.

Tue, 20 Oct 2020 00:23:52 +0200PY_EXT: OnChange is now a coma separated list of callables. Updated tests/python accordingly.
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.

Tue, 15 Sep 2020 13:57:06 +0200Modbus: fixed typo in ctype typing.
Edouard Tisserant [Tue, 15 Sep 2020 13:57:06 +0200] rev 2691
Modbus: fixed typo in ctype typing.

Fri, 11 Sep 2020 13:46:41 +0200MODBUS: Fix saving of websettings.
Edouard Tisserant [Fri, 11 Sep 2020 13:46:41 +0200] rev 2690
MODBUS: Fix saving of websettings.

Thu, 10 Sep 2020 16:08:26 +0200Runtime/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, 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.

Thu, 13 Aug 2020 19:00:38 +0100Modbus plugin: reformat code, and add comment.
Mario de Sousa <msousa@fe.up.pt> [Thu, 13 Aug 2020 19:00:38 +0100] rev 2688
Modbus plugin: reformat code, and add comment.

Thu, 13 Aug 2020 18:42:02 +0100Modbus plugin: fix runtime periodic timer (don't use POSIX timer)
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)

Wed, 01 Jul 2020 10:36:20 +0200Modbus and Bacnet websettings : Rename variables and functions to avoid name collisions.
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.

Mon, 29 Jun 2020 14:38:04 +0200Modbus: 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 [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.

Wed, 24 Jun 2020 14:38:11 +0200Modbus: fix client timer invalid arguments.
Edouard Tisserant [Wed, 24 Jun 2020 14:38:11 +0200] rev 2684
Modbus: fix client timer invalid arguments.

Tue, 23 Jun 2020 13:50:21 +0200Modbus add a timer thread, and switch timer to SIGEV_THREAD_ID to follow xenomai posix skin restrictions.
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.

Fri, 19 Jun 2020 11:07:25 +0200Runtime: Fix typo in PLCObject leading to exception when reporting failure.
Edouard Tisserant [Fri, 19 Jun 2020 11:07:25 +0200] rev 2682
Runtime: Fix typo in PLCObject leading to exception when reporting failure.

Thu, 18 Jun 2020 14:18:16 +0200Py_ext: use non-derived type when generating C code for handling Python PLC globals.
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.

Wed, 17 Jun 2020 14:32:55 +0200tests/python : add some STRING PLC Python globals with OnChange.
Edouard Tisserant [Wed, 17 Jun 2020 14:32:55 +0200] rev 2680
tests/python : add some STRING PLC Python globals with OnChange.

Wed, 17 Jun 2020 14:30:55 +0200Runtime: STRING type for Python PLC Globals was making problem with strings, since generated code wasn't doing comparison properly.
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.

Tue, 16 Jun 2020 15:53:52 +0200Merge
Tomaz Orac [Tue, 16 Jun 2020 15:53:52 +0200] rev 2678
Merge

Tue, 16 Jun 2020 11:12:36 +0200Modbus: more comments to remember some necessary changes.
Edouard Tisserant [Tue, 16 Jun 2020 11:12:36 +0200] rev 2677
Modbus: more comments to remember some necessary changes.

Tue, 16 Jun 2020 10:16:25 +0200Modbus/BACnet : add some comments so that we don't forget some pending optimization.
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.

Tue, 16 Jun 2020 10:12:21 +0200Modbus: Delete stored configuration when identical to default configuration.
Edouard Tisserant [Tue, 16 Jun 2020 10:12:21 +0200] rev 2675
Modbus: Delete stored configuration when identical to default configuration.

Mon, 15 Jun 2020 14:34:00 +0200BACnet: prevent saving configuration that is same as default, delete it if so.
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.

Mon, 15 Jun 2020 14:29:41 +0200BACnet and Modbus : fix configuration storage directory
Edouard Tisserant [Mon, 15 Jun 2020 14:29:41 +0200] rev 2673
BACnet and Modbus : fix configuration storage directory

Mon, 15 Jun 2020 14:27:58 +0200Runtime 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 [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.

Fri, 12 Jun 2020 14:40:50 +0200Debug : when BEREMIZ_DEBUG file exist, display all commands issued in console.
Edouard Tisserant [Fri, 12 Jun 2020 14:40:50 +0200] rev 2671
Debug : when BEREMIZ_DEBUG file exist, display all commands issued in console.

Fri, 12 Jun 2020 14:39:32 +0200BACnet 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 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.

Fri, 12 Jun 2020 10:30:23 +0200BACnet and Modbus: Remove additional loading and unloading, use the one already in place for extensions.
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.

Sun, 07 Jun 2020 23:47:32 +0100merge
Mario de Sousa <msousa@fe.up.pt> [Sun, 07 Jun 2020 23:47:32 +0100] rev 2668
merge

Sun, 07 Jun 2020 23:46:16 +0100Bacnet 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:46:16 +0100] rev 2667
Bacnet plugin web configuration: strip leading and trailing spaces for net. interface and port numb.

Sun, 07 Jun 2020 23:38:20 +0100Modbus plugin, web interface: strip leading and trailing spaces from string parameters
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

Sun, 07 Jun 2020 22:32:24 +0100Modbus plugin web interface: show the keyword "#ANY#" on TCP servers
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

Sun, 07 Jun 2020 19:33:32 +0100Modbus plugin: fix bug: was checking user configuration against wrong limits
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

Sun, 07 Jun 2020 18:34:32 +0100Modbus 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 18:34:32 +0100] rev 2663
Modbus plugin: fix algorithm detecting Modbus TCP servers using the same IP port on the same network interface

Sun, 07 Jun 2020 12:28:21 +0100Modbus plugin: check for duplicate "Configuration_Name"
Mario de Sousa <msousa@fe.up.pt> [Sun, 07 Jun 2020 12:28:21 +0100] rev 2662
Modbus plugin: check for duplicate "Configuration_Name"

Sat, 06 Jun 2020 08:51:32 +0100add comment
Mario de Sousa <msousa@fe.up.pt> [Sat, 06 Jun 2020 08:51:32 +0100] rev 2661
add comment

Sat, 06 Jun 2020 08:50:36 +0100add comment
Mario de Sousa <msousa@fe.up.pt> [Sat, 06 Jun 2020 08:50:36 +0100] rev 2660
add comment

Sat, 06 Jun 2020 08:43:41 +0100merge
Mario de Sousa <msousa@fe.up.pt> [Sat, 06 Jun 2020 08:43:41 +0100] rev 2659
merge

Sat, 06 Jun 2020 07:34:02 +0100Modbus plugin web configuration: fix comments, and delete un-used code
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

Sat, 06 Jun 2020 07:24:42 +0100Modbus plugin web configuration: use drop down choices for baud, parity and stop bits.
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.

Fri, 05 Jun 2020 18:02:12 +0100Modbus plugin web configuration: save node type and addr type to persistant storage
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

Mon, 01 Jun 2020 14:11:22 +0100Add web extension: configure Modbus Server plugin parameters
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

Mon, 01 Jun 2020 08:54:26 +0100Add web extension: configure Modbus plugin parameters (currently only supports Modbus clients)
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)

Tue, 02 Jun 2020 13:37:34 +0200Runtime: 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 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.

Tue, 02 Jun 2020 11:34:50 +0200IDE: Main toolbar : Show repair button also in stop mode. Move repair button after disconnect button.
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.

Mon, 01 Jun 2020 14:47:31 +0200Runtime: fsync() files when transfering them, to prebent data loss when poweroff soon after programming. Fixed variable naming as a side effect.
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.

Thu, 28 May 2020 11:16:59 +0100merge
Mario de Sousa <msousa@fe.up.pt> [Thu, 28 May 2020 11:16:59 +0100] rev 2650
merge

Thu, 28 May 2020 11:15:22 +0100BACnet plugin: Add web interface for online parameter configuration
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

Thu, 28 May 2020 11:01:42 +0100modbus_plugin: generate nicer error message, instead of a traceback
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

Thu, 28 May 2020 10:54:48 +0100Modbus plugin: Add "exec. req. flag" and "write on change" features
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

Thu, 28 May 2020 11:38:09 +0200PLCObject : reorganize code in StartPLC(), add a PreStartPLC() empty method, to be overloaded by runtime extensions.
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.

Tue, 26 May 2020 09:58:20 +0200Solve 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 [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.

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.
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.

Mon, 25 Nov 2019 08:10:45 +0100Etherlab : Merged 2014-2018 changes from jblee and others
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

Mon, 25 Nov 2019 08:26:55 +0100Close branch ethercat_from_kosmos ethercat_from_kosmos
Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 25 Nov 2019 08:26:55 +0100] rev 2642
Close branch ethercat_from_kosmos

Wed, 20 Nov 2019 16:57:15 +0100EtherCat master plugin : commit changes recovered from KOSMOS 2018 installer, unkown author(s). 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).

Wed, 13 Nov 2019 11:21:04 +0100Add FatalError() method to ConfigTreeNode.
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.

Thu, 24 Oct 2019 11:20:04 +0200Fixed one more sequel of marking temporary variables created while generating ST code out of FBD
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

Wed, 09 Oct 2019 09:04:35 +0200Changed yslt_noindent.yml2 again
Edouard Tisserant [Wed, 09 Oct 2019 09:04:35 +0200] rev 2638
Changed yslt_noindent.yml2 again

Wed, 25 Sep 2019 08:53:27 +0200Non significant changes in generated xslt, side effect of changes in yslt_noindent.yml2
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

Thu, 19 Sep 2019 15:32:36 +0200More customizations to yslt
Edouard Tisserant [Thu, 19 Sep 2019 15:32:36 +0200] rev 2636
More customizations to yslt

Wed, 18 Sep 2019 11:03:56 +0200PLCobject: Call "stop" and "cleanup" methods from python runtime files in reverse order compared to "init" and "start".
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".

Wed, 11 Sep 2019 11:20:11 +0200Non significant changes to mute GCC warnings about unused variables.
Edouard Tisserant [Wed, 11 Sep 2019 11:20:11 +0200] rev 2634
Non significant changes to mute GCC warnings about unused variables.

Thu, 05 Sep 2019 08:35:33 +0200Fixed 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 [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...

Mon, 26 Aug 2019 08:54:02 +0200variable access code moved from plc_debug.c to targets/var_access.c for easiewr re-use in ext.
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.

Tue, 20 Aug 2019 10:08:11 +0200Swap 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: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.

Tue, 20 Aug 2019 10:01:18 +0200yslt_noindent : Avoid YSLT's indent logic to interfere when using linequote.
Edouard Tisserant [Tue, 20 Aug 2019 10:01:18 +0200] rev 2630
yslt_noindent : Avoid YSLT's indent logic to interfere when using linequote.

Wed, 14 Aug 2019 11:05:17 +0200Add marker to temporary variables created while generating ST code out of FBD, so that they can be recognized as such.
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.

Mon, 12 Aug 2019 13:06:11 +0200Allow using docutil.get_inkscape_path() on Linux also.
Edouard Tisserant [Mon, 12 Aug 2019 13:06:11 +0200] rev 2628
Allow using docutil.get_inkscape_path() on Linux also.

Fri, 09 Aug 2019 12:07:33 +0200Moved XSLT model query python code so that XSLT part can be reused for other transformations
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

Tue, 24 Sep 2019 11:55:59 +0200Fixed unitialized parameter in instances_path stylesheet, leading to
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.

Sun, 14 Jul 2019 08:43:12 +0200Fixed code quality according to pep8 and pylint.
Edouard Tisserant <edouard.tisserant@gmail.com> [Sun, 14 Jul 2019 08:43:12 +0200] rev 2625
Fixed code quality according to pep8 and pylint.

Sat, 13 Jul 2019 10:57:25 +0200Fix 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 <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

Fri, 12 Jul 2019 11:53:04 +0200PurgeBlobs was faulty, but it was never having anything to purge. Fixed.
Edouard Tisserant [Fri, 12 Jul 2019 11:53:04 +0200] rev 2623
PurgeBlobs was faulty, but it was never having anything to purge. Fixed.

Fri, 12 Jul 2019 11:51:47 +0200Fixed repetitive freezing of IDE when connection drops.
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.

Wed, 10 Jul 2019 11:21:13 +0200Better error handling when blob transfer fail
Edouard Tisserant [Wed, 10 Jul 2019 11:21:13 +0200] rev 2621
Better error handling when blob transfer fail

Wed, 10 Jul 2019 10:43:14 +0200Removed dead code.
Edouard Tisserant [Wed, 10 Jul 2019 10:43:14 +0200] rev 2620
Removed dead code.

Tue, 09 Jul 2019 09:49:30 +0200Now expects 1 more columns in VARIABLE.CSV file generated by MatIEC. Pair with MatIEC commit 9cb7c8bf7dbc :
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

Tue, 18 Jun 2019 14:09:23 +0200Merged 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: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.

Tue, 18 Jun 2019 14:03:08 +0200Removed debug code and closed branch fix_fb_resize_wire_bug
Edouard Tisserant [Tue, 18 Jun 2019 14:03:08 +0200] rev 2617
Removed debug code and closed branch

Tue, 18 Jun 2019 13:58:45 +0200GraphicCommons.py : Wire.SetPoints() move filtering before computation of Start and End points to avoid setting them with arbitrary directions. fix_fb_resize_wire_bug
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.

Tue, 18 Jun 2019 09:38:20 +0200GraphicCommons.py : rewrote Wire.Setpoints. fix_fb_resize_wire_bug
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

Thu, 13 Jun 2019 15:49:48 +0200'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, 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.

Thu, 06 Jun 2019 14:03:16 +0200Fix PLCObject's purge failing silently with extra_files.
Edouard Tisserant [Thu, 06 Jun 2019 14:03:16 +0200] rev 2613
Fix PLCObject's purge failing silently with extra_files.

Thu, 30 May 2019 11:53:13 +0200LogMessage 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: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.

Thu, 30 May 2019 11:51:56 +0200Fixed typo leading to some exception in some rare corner cases in worker.py
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

Tue, 23 Apr 2019 11:01:35 +0200Added missing 'path' field to WAMP addresses in URI editor.
Edouard Tisserant [Tue, 23 Apr 2019 11:01:35 +0200] rev 2610
Added missing 'path' field to WAMP addresses in URI editor.

Tue, 23 Apr 2019 11:00:37 +0200Fixed exception when using URI editor for PYRO addresses
Edouard Tisserant [Tue, 23 Apr 2019 11:00:37 +0200] rev 2609
Fixed exception when using URI editor for PYRO addresses

Fri, 19 Apr 2019 13:11:42 +0200Avoid 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 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.

Fri, 19 Apr 2019 10:53:02 +0200Add Repair() to WAMP interface
Edouard Tisserant [Fri, 19 Apr 2019 10:53:02 +0200] rev 2607
Add Repair() to WAMP interface

Thu, 18 Apr 2019 14:42:23 +0200Merged fix_PLC_runtime_shutdown
Edouard Tisserant [Thu, 18 Apr 2019 14:42:23 +0200] rev 2606
Merged fix_PLC_runtime_shutdown

Thu, 18 Apr 2019 14:41:21 +0200Close fix_PLC_runtime_shutdown fix_PLC_runtime_shutdown
Edouard Tisserant [Thu, 18 Apr 2019 14:41:21 +0200] rev 2605
Close fix_PLC_runtime_shutdown

Thu, 18 Apr 2019 14:35:42 +0200Runtime worker : unblock the last waiting job and prevent any new job to wait when Main Worker is being shut down. 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.

Thu, 18 Apr 2019 14:34:22 +0200Add some "pipe to self" trick in Pyro server to accelerate runtime shutdown instead of waiting for arbitrary pyro timeout. fix_PLC_runtime_shutdown
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.

Thu, 18 Apr 2019 14:32:43 +0200If call to GetPLCstatus can't be executed in PLC, then obtained status is disconnected. Status on "None" is not relevant anymore, and is replaced by Disconnected. fix_PLC_runtime_shutdown
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.

Thu, 18 Apr 2019 14:29:55 +0200Enure that all threads are joined before trying to exit fix_PLC_runtime_shutdown
Edouard Tisserant [Thu, 18 Apr 2019 14:29:55 +0200] rev 2601
Enure that all threads are joined before trying to exit

Wed, 17 Apr 2019 14:18:22 +0200Named runtime's threads to ease debugging
Edouard Tisserant [Wed, 17 Apr 2019 14:18:22 +0200] rev 2600
Named runtime's threads to ease debugging

Wed, 17 Apr 2019 14:15:39 +0200Added Repair() png icon
Edouard Tisserant [Wed, 17 Apr 2019 14:15:39 +0200] rev 2599
Added Repair() png icon

Tue, 16 Apr 2019 14:45:41 +0200pep8 again...
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)

Tue, 16 Apr 2019 13:32:32 +0200PEP8 fix : ./connectors/PYRO/PSK_Adapter.py:49:1: E302 expected 2 blank lines, found 1
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 16 Apr 2019 13:32:32 +0200] rev 2597
PEP8 fix : ./connectors/PYRO/PSK_Adapter.py:49:1: E302 expected 2 blank lines, found 1

Tue, 16 Apr 2019 11:26:52 +0200Added RepairPLC() to PLCObject. For now just calling PurgePLC and quit PLC runtime.
Edouard Tisserant [Tue, 16 Apr 2019 11:26:52 +0200] rev 2596
Added RepairPLC() to PLCObject. For now just calling PurgePLC and quit PLC runtime.

Tue, 16 Apr 2019 11:26:34 +0200Ensure Beremiz_service.py quits properly when Main Worker stops and wa are using Wx and/or Twisted.
Edouard Tisserant [Tue, 16 Apr 2019 11:26:34 +0200] rev 2595
Ensure Beremiz_service.py quits properly when Main Worker stops and wa are using Wx and/or Twisted.

Mon, 15 Apr 2019 13:34:09 +0200Added PurgePLC() method to PLCObject, to be invoked when PLC Status is broken. It clears PLC shared object an extra files and force status to Empty. Added correponding Repair button to toolbar, visible only when PLC status is broken.
Edouard Tisserant [Mon, 15 Apr 2019 13:34:09 +0200] rev 2594
Added PurgePLC() method to PLCObject, to be invoked when PLC Status is broken. It clears PLC shared object an extra files and force status to Empty. Added correponding Repair button to toolbar, visible only when PLC status is broken.

Thu, 11 Apr 2019 13:45:27 +0200Background erase of debug variable panel was disabled for some reason, and it not anymore compatible with EVT_PAINT based refresh. It was leaving traces behind when removing traced variable. Fixed.
Edouard Tisserant [Thu, 11 Apr 2019 13:45:27 +0200] rev 2593
Background erase of debug variable panel was disabled for some reason, and it not anymore compatible with EVT_PAINT based refresh. It was leaving traces behind when removing traced variable. Fixed.

Thu, 11 Apr 2019 13:41:52 +0200force redraw only through EVT_PAINT event and use wxPaintDC, as described in wx documentation
Edouard Tisserant [Thu, 11 Apr 2019 13:41:52 +0200] rev 2592
force redraw only through EVT_PAINT event and use wxPaintDC, as described in wx documentation

Thu, 11 Apr 2019 11:26:47 +0200Fixed refresh problem following 9c5f835b031e, 9622418ac28c, c67488bd8134 : force redraw only through EVT_PAINT event and use wxPaintDC, as described in wx documentation
Edouard Tisserant [Thu, 11 Apr 2019 11:26:47 +0200] rev 2591
Fixed refresh problem following 9c5f835b031e, 9622418ac28c, c67488bd8134 : force redraw only through EVT_PAINT event and use wxPaintDC, as described in wx documentation

Thu, 11 Apr 2019 08:40:17 +0200merged
Edouard Tisserant <edouard.tisserant@gmail.com> [Thu, 11 Apr 2019 08:40:17 +0200] rev 2590
merged

Wed, 10 Apr 2019 14:11:52 +0200Nicer name than 'var_name' for variable auto-renaming in Modbus
Edouard Tisserant [Wed, 10 Apr 2019 14:11:52 +0200] rev 2589
Nicer name than 'var_name' for variable auto-renaming in Modbus

Wed, 10 Apr 2019 21:36:12 +0200Allow starting IDE without sslpsk module installed. Fail when connecting to PYROS if sslpsk unavailable.
Edouard Tisserant <edouard.tisserant@gmail.com> [Wed, 10 Apr 2019 21:36:12 +0200] rev 2588
Allow starting IDE without sslpsk module installed. Fail when connecting to PYROS if sslpsk unavailable.

Tue, 09 Apr 2019 14:08:44 +0200Fixed preview drawing/refresh problem in sfc/ld/fbd graphical element creation dialogs on windows (introduced in 9c5f835b031e, continuation of 9622418ac28c)
Edouard Tisserant [Tue, 09 Apr 2019 14:08:44 +0200] rev 2587
Fixed preview drawing/refresh problem in sfc/ld/fbd graphical element creation dialogs on windows (introduced in 9c5f835b031e, continuation of 9622418ac28c)

Tue, 09 Apr 2019 13:18:51 +0200pep8 white spaces
Edouard Tisserant [Tue, 09 Apr 2019 13:18:51 +0200] rev 2586
pep8 white spaces

Tue, 09 Apr 2019 13:13:27 +0200Now default_evaluator is provided by runtime package
Edouard Tisserant [Tue, 09 Apr 2019 13:13:27 +0200] rev 2585
Now default_evaluator is provided by runtime package

Tue, 09 Apr 2019 13:08:03 +0200merge
Edouard Tisserant <edouard.tisserant@gmail.com> [Tue, 09 Apr 2019 13:08:03 +0200] rev 2584
merge

Tue, 09 Apr 2019 13:05:35 +0200Continue fixing deadlock of previous commit, this time occuring when waiting for 'cleanup' python runtime call to finish. Now 'init' and 'cleanup' python runtime calls are called directly from main thread, and aren't anymore invoked in the context of wxMainloop and/or twisted reactor.
Edouard Tisserant [Tue, 09 Apr 2019 13:05:35 +0200] rev 2583
Continue fixing deadlock of previous commit, this time occuring when waiting for 'cleanup' python runtime call to finish. Now 'init' and 'cleanup' python runtime calls are called directly from main thread, and aren't anymore invoked in the context of wxMainloop and/or twisted reactor.

Tue, 09 Apr 2019 09:13:55 +0200Fix deadlock when indirectly calling PLCObject's evaluator() from twisted of wx event loops. Was freezing while transfer/start/stop through Wamp. Serialize all PLCObject's call to self.PythonRuntimeCall into the same PythonThread thread.
Edouard Tisserant [Tue, 09 Apr 2019 09:13:55 +0200] rev 2582
Fix deadlock when indirectly calling PLCObject's evaluator() from twisted of wx event loops. Was freezing while transfer/start/stop through Wamp. Serialize all PLCObject's call to self.PythonRuntimeCall into the same PythonThread thread.

Mon, 08 Apr 2019 12:53:18 +0200Fixed Wamp assertion because of unexpected type
Edouard Tisserant [Mon, 08 Apr 2019 12:53:18 +0200] rev 2581
Fixed Wamp assertion because of unexpected type

Thu, 28 Mar 2019 13:09:11 +0100Enhanced statistics display code, used it and saw no more noticable leak while editing. Closing branch. wx.NewID_abuse_fix
Edouard Tisserant [Thu, 28 Mar 2019 13:09:11 +0100] rev 2580
Enhanced statistics display code, used it and saw no more noticable leak while editing. Closing branch.

Sun, 07 Apr 2019 21:08:07 +0200Conform to pep8 and pylint :
Edouard Tisserant <edouard.tisserant@gmail.com> [Sun, 07 Apr 2019 21:08:07 +0200] rev 2579
Conform to pep8 and pylint :

pep8 version: 2.3.1
./ConfigTreeNode.py:130:49: E231 missing whitespace after ','
./editors/Viewer.py:643:24: E128 continuation line under-indented for visual indent
./editors/Viewer.py:670:12: E221 multiple spaces before operator
./editors/Viewer.py:671:13: E221 multiple spaces before operator
./editors/Viewer.py:2138:52: E203 whitespace before ':'
./editors/Viewer.py:2139:66: W291 trailing whitespace
./controls/VariablePanel.py:154:25: E231 missing whitespace after ','
./controls/LocationCellEditor.py:88:1: W293 blank line contains whitespace
./controls/LocationCellEditor.py:191:25: E221 multiple spaces before operator
./controls/LocationCellEditor.py:200:17: E128 continuation line under-indented for visual indent

pylint 1.8.3,
************* Module controls.LocationCellEditor
controls/LocationCellEditor.py:200: [C0330(bad-continuation), ] Wrong continued indentation (add 9 spaces).
_("Selected location is identical to previous one"))
^ |
************* Module controls.VariablePanel
controls/VariablePanel.py:154: [E1601(print-statement), VariableTable.SetValue] print statement used
************* Module editors.Viewer
editors/Viewer.py:643: [C0330(bad-continuation), ] Wrong continued indentation (add 1 space).
self.GetAddMenuCallBack(self.AddNewComment))
^|
editors/Viewer.py:598: [W0612(unused-variable), Viewer.AddDivergenceMenuItems] Unused variable 'add_branch'
editors/Viewer.py:1655: [E0602(undefined-variable), Viewer.PopupConnectionMenu] Undefined variable 'variable_type'
editors/Viewer.py:1649: [W0612(unused-variable), Viewer.PopupConnectionMenu] Unused variable 'connection_type'
************* Module connectors.PYRO.PSK_Adapter

Sun, 07 Apr 2019 16:23:49 +0200Merged
Edouard Tisserant <edouard.tisserant@gmail.com> [Sun, 07 Apr 2019 16:23:49 +0200] rev 2578
Merged

Wed, 03 Apr 2019 06:31:34 +0000Fix typo in README.md
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 03 Apr 2019 06:31:34 +0000] rev 2577
Fix typo in README.md

Closes #80

Thu, 04 Apr 2019 14:00:17 +0200merged rename_on_location_change branch
Edouard Tisserant [Thu, 04 Apr 2019 14:00:17 +0200] rev 2576
merged rename_on_location_change branch

Thu, 04 Apr 2019 13:59:22 +0200Rename checkbox and immediately apply. rename_on_location_change
Edouard Tisserant [Thu, 04 Apr 2019 13:59:22 +0200] rev 2575
Rename checkbox and immediately apply.
Added a checkbox in Location selection dialog (saved as user settings) to let user choose if variable is being renamed.
Also forced closing celle editor once new location is selected.

Wed, 03 Apr 2019 13:20:28 +0200LocationCellEditor use better source for variable name replacement, and validate variable name before applying it or complains otherwise. rename_on_location_change
Edouard Tisserant [Wed, 03 Apr 2019 13:20:28 +0200] rev 2574
LocationCellEditor use better source for variable name replacement, and validate variable name before applying it or complains otherwise.

Tue, 02 Apr 2019 09:46:58 +0200LocationCellEditor now systematically change variable name according to name given by CTN, calls VariablePanel' OnVariableNameChange to update POU accordingly. rename_on_location_change
Edouard Tisserant [Tue, 02 Apr 2019 09:46:58 +0200] rev 2573
LocationCellEditor now systematically change variable name according to name given by CTN, calls VariablePanel' OnVariableNameChange to update POU accordingly.

Thu, 28 Mar 2019 14:06:53 +0100Fix problem introduced in 9c5f835b031e : Exception in LDPowerRailDialog.py because of change in OnPaint/RefreshView/DrawPreview.
Edouard Tisserant [Thu, 28 Mar 2019 14:06:53 +0100] rev 2572
Fix problem introduced in 9c5f835b031e : Exception in LDPowerRailDialog.py because of change in OnPaint/RefreshView/DrawPreview.

Thu, 28 Mar 2019 13:39:58 +0100Fixed RecentProjectMenu in BeremizIDE.py broken by untested changes in wx.NewID_abuse_fix.
Edouard Tisserant [Thu, 28 Mar 2019 13:39:58 +0100] rev 2571
Fixed RecentProjectMenu in BeremizIDE.py broken by untested changes in wx.NewID_abuse_fix.

Thu, 28 Mar 2019 13:10:26 +0100Merged wx.NewID_abuse_fix branch
Edouard Tisserant [Thu, 28 Mar 2019 13:10:26 +0100] rev 2570
Merged wx.NewID_abuse_fix branch

Thu, 28 Mar 2019 13:08:20 +0100More wx.NewID abuse removal. This time BeremizIDE.py was cleaned. wx.NewID_abuse_fix
Edouard Tisserant [Thu, 28 Mar 2019 13:08:20 +0100] rev 2569
More wx.NewID abuse removal. This time BeremizIDE.py was cleaned.

Thu, 28 Mar 2019 09:19:30 +0100Merged more of wx.NewID_abuse_fix branch
Edouard Tisserant [Thu, 28 Mar 2019 09:19:30 +0100] rev 2568
Merged more of wx.NewID_abuse_fix branch

Wed, 27 Mar 2019 14:10:39 +0100More wx.NewID abuse removal. All Viewer.py got cured. wx.NewID_abuse_fix
Edouard Tisserant [Wed, 27 Mar 2019 14:10:39 +0100] rev 2567
More wx.NewID abuse removal. All Viewer.py got cured.

Wed, 27 Mar 2019 13:08:51 +0100More wx.NewID abuse removal. This one was apparently silently unbinding toolbar butons when running out of mew wx IDs. wx.NewID_abuse_fix
Edouard Tisserant [Wed, 27 Mar 2019 13:08:51 +0100] rev 2566
More wx.NewID abuse removal. This one was apparently silently unbinding toolbar butons when running out of mew wx IDs.

Tue, 26 Mar 2019 13:54:36 +0100Dyslectic typos
Edouard Tisserant [Tue, 26 Mar 2019 13:54:36 +0100] rev 2565
Dyslectic typos

Mon, 07 Jan 2019 20:32:40 +0000Close branch py3-fix. py3-fix
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 07 Jan 2019 20:32:40 +0000] rev 2564
Close branch py3-fix.

Thu, 27 Jul 2017 20:34:38 +0000Close branch 1.1 Korean release. 1.1 Korean release
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 27 Jul 2017 20:34:38 +0000] rev 2563
Close branch 1.1 Korean release.

Mon, 18 Mar 2019 09:12:44 +0000Close branch generate-button. generate-button
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 18 Mar 2019 09:12:44 +0000] rev 2562
Close branch generate-button.

Mon, 07 Jan 2019 23:55:05 +0300close #2486 head #2486
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 07 Jan 2019 23:55:05 +0300] rev 2561
close #2486 head

Mon, 07 Jan 2019 20:33:11 +0000Close branch nevow_service_rework. nevow_service_rework
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 07 Jan 2019 20:33:11 +0000] rev 2560
Close branch nevow_service_rework.

Mon, 07 Jan 2019 20:32:32 +0000Close branch wx3-fix. wx3-fix
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 07 Jan 2019 20:32:32 +0000] rev 2559
Close branch wx3-fix.

Tue, 26 Mar 2019 11:08:32 +0100Intermediate merge of wx.NewID_abuse_fix branch but kept debug code in the branch. This is still work in progress, banch is NOT closed.
Edouard Tisserant [Tue, 26 Mar 2019 11:08:32 +0100] rev 2558
Intermediate merge of wx.NewID_abuse_fix branch but kept debug code in the branch. This is still work in progress, banch is NOT closed.

Tue, 26 Mar 2019 11:03:57 +0100Continued wx.NewID abuse removal in Viewer.py : Added AppendItem to use instead of AppendMenu, made examples with AddBlockPinMenuItems and AddAlignmentMenuItems wx.NewID_abuse_fix
Edouard Tisserant [Tue, 26 Mar 2019 11:03:57 +0100] rev 2557
Continued wx.NewID abuse removal in Viewer.py : Added AppendItem to use instead of AppendMenu, made examples with AddBlockPinMenuItems and AddAlignmentMenuItems

Tue, 26 Mar 2019 09:43:51 +0100Continued wx.NewID abuse removal in Viewer.py : get rid of one call to AppendMenu method, having no real purpose apparently. To be continued. wx.NewID_abuse_fix
Edouard Tisserant [Tue, 26 Mar 2019 09:43:51 +0100] rev 2556
Continued wx.NewID abuse removal in Viewer.py : get rid of one call to AppendMenu method, having no real purpose apparently. To be continued.

Tue, 26 Mar 2019 09:41:09 +0100Start fixing wx.NewId abuse in viewer.py. This shows how to avoid using AppendMenu() function, definitely useless. wx.NewID_abuse_fix
Edouard Tisserant [Tue, 26 Mar 2019 09:41:09 +0100] rev 2555
Start fixing wx.NewId abuse in viewer.py. This shows how to avoid using AppendMenu() function, definitely useless.

Mon, 25 Mar 2019 14:59:54 +0100VariablePanel's menu do not waste Wx IDs anymore (directly binds wx objects rather than crating new ID wit wx.NewId) wx.NewID_abuse_fix
Edouard Tisserant [Mon, 25 Mar 2019 14:59:54 +0100] rev 2554
VariablePanel's menu do not waste Wx IDs anymore (directly binds wx objects rather than crating new ID wit wx.NewId)

Tue, 26 Mar 2019 09:48:45 +0100Instrument IDE code to find code abusing wx.NewId. wx.NewID_abuse_fix
Edouard Tisserant [Tue, 26 Mar 2019 09:48:45 +0100] rev 2553
Instrument IDE code to find code abusing wx.NewId.

Fri, 22 Mar 2019 14:00:35 +0100Fix error when searching accross project. Collection of result wasn't initialized and was failing in case some CTN was returning no result.
Edouard Tisserant [Fri, 22 Mar 2019 14:00:35 +0100] rev 2552
Fix error when searching accross project. Collection of result wasn't initialized and was failing in case some CTN was returning no result.

Fri, 22 Mar 2019 13:45:19 +0100Make spaghetti-code-quality great again.
Edouard Tisserant [Fri, 22 Mar 2019 13:45:19 +0100] rev 2551
Make spaghetti-code-quality great again.

Fri, 22 Mar 2019 13:26:31 +0100Merged
Edouard Tisserant [Fri, 22 Mar 2019 13:26:31 +0100] rev 2550
Merged

Mon, 18 Mar 2019 12:20:46 +0300Add Docker files to build containers to run automated tests
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 18 Mar 2019 12:20:46 +0300] rev 2549
Add Docker files to build containers to run automated tests

Mon, 18 Mar 2019 12:10:36 +0300merge
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 18 Mar 2019 12:10:36 +0300] rev 2548
merge

Mon, 18 Mar 2019 12:09:41 +0300check_source.sh: fix sed error: -e expression #1, char 25: Invalid range end
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 18 Mar 2019 12:09:41 +0300] rev 2547
check_source.sh: fix sed error: -e expression #1, char 25: Invalid range end

Warning happen only if old sed (4.4) is used.

Mon, 18 Mar 2019 12:07:49 +0300Fix pylint warning [C0325(superfluous-parens), ] Unnecessary parens after u'if' keyword
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 18 Mar 2019 12:07:49 +0300] rev 2546
Fix pylint warning [C0325(superfluous-parens), ] Unnecessary parens after u'if' keyword

************* Module runtime.PLCObject
runtime/PLCObject.py:609: [C0325(superfluous-parens), ] Unnecessary parens after u'if' keyword

Wed, 13 Mar 2019 15:58:34 +0300Update Beremiz dependencies because of added PYROS:// support
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 13 Mar 2019 15:58:34 +0300] rev 2545
Update Beremiz dependencies because of added PYROS:// support

Wed, 13 Mar 2019 15:54:17 +0300Fix header and convert comments to docstrings in PSK_Adapter
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 13 Mar 2019 15:54:17 +0300] rev 2544
Fix header and convert comments to docstrings in PSK_Adapter

Wed, 13 Mar 2019 15:43:45 +0300Fix Pyro work with SSL wrapper (sslpsk)
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 13 Mar 2019 15:43:45 +0300] rev 2543
Fix Pyro work with SSL wrapper (sslpsk)

Following error was shown in Beremiz console:
PYRO connecting to URI : PYROS://127.0.0.1:3001#beremiz
Exception while connecting to 'PYROS://127.0.0.1:3001#beremiz': non-zero flags not allowed in calls to recv() on <class 'ssl.SSLSocket'>
Connection failed to PYROS://127.0.0.1:3001#beremiz!

Reason is that Pyro calls socket recv() with MSGWAITALL flag, that causes ValueError exception.

https://docs.python.org/2/library/ssl.html
recv(), recv_into() (but passing a non-zero flags argument is not allowed)

Wed, 13 Mar 2019 14:27:24 +0300Fix crash in runtime if PSK secret is missing
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 13 Mar 2019 14:27:24 +0300] rev 2542
Fix crash in runtime if PSK secret is missing

./Beremiz_service.py -s $PWD/psk2.txt -n beremiz /tmp/beremiz
Beremiz_service: 1.2-1378c18402c3+

Traceback (most recent call last):
File "./Beremiz_service.py", line 511, in <module>
ensurePSK(servicename, PSKpath)
File "/home/developer/WorkData/PLC/beremiz/beremiz/runtime/Stunnel.py", line 32, in ensurePSK
PSKgen(ID, PSKpath)
File "/home/developer/WorkData/PLC/beremiz/beremiz/runtime/Stunnel.py", line 23, in PSKgen
call(restart_stunnel_cmdline)
File "/home/developer/WorkData/PLC/beremiz/beremiz/runtime/spawn_subprocess.py", line 116, in call
pid = posix_spawn.posix_spawnp(cmd[0], cmd)
File "/home/developer/.local/lib/python2.7/site-packages/posix_spawn/_impl.py", line 120, in posix_spawnp
return _posix_spawn(lib.posix_spawnp, *args, **kwargs)
File "/home/developer/.local/lib/python2.7/site-packages/posix_spawn/_impl.py", line 111, in _posix_spawn
_check_error(res, path)
File "/home/developer/.local/lib/python2.7/site-packages/posix_spawn/_impl.py", line 10, in _check_error
raise OSError(errno, os.strerror(errno), path)
OSError: [Errno 2] No such file or directory: '/etc/init.d/S50stunnel'

Wed, 13 Mar 2019 14:14:31 +0300Update build instruction for BACNet in README
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 13 Mar 2019 14:14:31 +0300] rev 2541
Update build instruction for BACNet in README

in r3189 Steve added new feature to bacnet-stack: network port - to
access configuration and properties of network ports of a device.
https://sourceforge.net/p/bacnet/code/3189/

It's not implemented by Beremiz.

Wed, 13 Mar 2019 14:11:13 +0300Replace md5 module with hashlib
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 13 Mar 2019 14:11:13 +0300] rev 2540
Replace md5 module with hashlib

fix following pylint error:

************* Module connectors.ConnectorBase
connectors/ConnectorBase.py:7: [W1648(bad-python3-import), ] Module moved in Python 3
************* Module runtime.PLCObject
runtime/PLCObject.py:33: [W1648(bad-python3-import), ] Module moved in Python 3

Wed, 13 Mar 2019 11:51:40 +0300Remove execute attributes from runtime/PLCObject.py
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 13 Mar 2019 11:51:40 +0300] rev 2539
Remove execute attributes from runtime/PLCObject.py

Wed, 13 Mar 2019 11:49:46 +0300Fix typo
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 13 Mar 2019 11:49:46 +0300] rev 2538
Fix typo

Wed, 13 Mar 2019 11:47:03 +0300Fix various pylint and pep8 errors
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 13 Mar 2019 11:47:03 +0300] rev 2537
Fix various pylint and pep8 errors

Check basic code-style problems for PEP-8
pep8 version: 2.4.0
./connectors/PYRO/__init__.py:57:43: E261 at least two spaces before inline comment
./connectors/SchemeEditor.py:29:21: E128 continuation line under-indented for visual indent
./controls/IDBrowser.py:101:23: E127 continuation line over-indented for visual indent
./controls/IDBrowser.py:102:23: E127 continuation line over-indented for visual indent

Check for problems using pylint ...
No config file found, using default configuration
pylint 1.9.4,
astroid 1.6.5
Python 2.7.16rc1 (default, Feb 18 2019, 11:05:09)
[GCC 8.2.0]
Use multiple threads for pylint
Using config file /home/developer/WorkData/PLC/beremiz/beremiz/.pylint
************* Module connectors.PYRO_dialog
connectors/PYRO_dialog.py:9: [W0611(unused-import), ] Unused import wx
************* Module connectors
connectors/__init__.py:32: [W1652(deprecated-types-field), ] Accessing a deprecated fields on the types module
connectors/__init__.py:32: [C0411(wrong-import-order), ] standard import "from types import ClassType" should be placed before "from connectors.ConnectorBase import ConnectorBase"
************* Module connectors.PYRO.PSK_Adapter
connectors/PYRO/PSK_Adapter.py:7: [C0411(wrong-import-order), ] standard import "import ssl" should be placed before "import sslpsk"
************* Module connectors.SchemeEditor
connectors/SchemeEditor.py:29: [C0330(bad-continuation), ] Wrong continued indentation (add 1 space).
wx.ALIGN_CENTER_VERTICAL),
^|
connectors/SchemeEditor.py:42: [W0631(undefined-loop-variable), SchemeEditor.__init__] Using possibly undefined loop variable 'tag'
************* Module runtime.WampClient
runtime/WampClient.py:138: [W1612(unicode-builtin), WampSession.onJoin] unicode built-in referenced
runtime/WampClient.py:154: [W1612(unicode-builtin), WampSession.publishWithOwnID] unicode built-in referenced
runtime/WampClient.py:346: [W1612(unicode-builtin), PublishEvent] unicode built-in referenced
runtime/WampClient.py:351: [W1612(unicode-builtin), PublishEventWithOwnID] unicode built-in referenced
runtime/WampClient.py:31: [W0611(unused-import), ] Unused str imported from builtins as text
************* Module runtime.PLCObject
runtime/PLCObject.py:35: [W1648(bad-python3-import), ] Module moved in Python 3
runtime/PLCObject.py:35: [C0411(wrong-import-order), ] standard import "import md5" should be placed before "from six.moves import xrange"
runtime/PLCObject.py:36: [C0411(wrong-import-order), ] standard import "from tempfile import mkstemp" should be placed before "from six.moves import xrange"
runtime/PLCObject.py:37: [C0411(wrong-import-order), ] standard import "import shutil" should be placed before "from six.moves import xrange"
runtime/PLCObject.py:38: [C0411(wrong-import-order), ] standard import "from functools import wraps, partial" should be placed before "from six.moves import xrange"
************* Module runtime.Worker
runtime/Worker.py:12: [W1648(bad-python3-import), ] Module moved in Python 3
************* Module runtime.spawn_subprocess
runtime/spawn_subprocess.py:125: [C0325(superfluous-parens), ] Unnecessary parens after 'print' keyword
runtime/spawn_subprocess.py:130: [C0325(superfluous-parens), ] Unnecessary parens after 'print' keyword
runtime/spawn_subprocess.py:125: [E1601(print-statement), ] print statement used
runtime/spawn_subprocess.py:130: [E1601(print-statement), ] print statement used
************* Module controls.IDBrowser
controls/IDBrowser.py:101: [C0330(bad-continuation), ] Wrong continued indentation (remove 5 spaces).
if self.isManager
| ^
controls/IDBrowser.py:102: [C0330(bad-continuation), ] Wrong continued indentation (remove 5 spaces).
else dv.DATAVIEW_CELL_INERT),
| ^
************* Module Beremiz_service
Beremiz_service.py:34: [W0611(unused-import), ] Unused import __builtin__

Wed, 13 Mar 2019 10:19:30 +0300Fix invalid python3 syntax
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 13 Mar 2019 10:19:30 +0300] rev 2536
Fix invalid python3 syntax

Syntax checking using python3 ...
Python 3.7.2+
File "./connectors/PYRO/__init__.py", line 76
except Exception, e:
^
SyntaxError: invalid syntax

Syntax error in ./connectors/PYRO/__init__.py
File "./connectors/PYRO/PSK_Adapter.py", line 40
except ProtocolError, x:
^
SyntaxError: invalid syntax

Syntax error in ./s.py
File "./runtime/Worker.py", line 67
raise _job.exc_info[0], _job.exc_info[1], _job.exc_info[2]
^
SyntaxError: invalid syntax

Wed, 13 Mar 2019 10:02:11 +0300Exclude pyjslib.py from python3 syntax correction check
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 13 Mar 2019 10:02:11 +0300] rev 2535
Exclude pyjslib.py from python3 syntax correction check

pyjs doesn't support python3 and it's unmaintained.
async is a new keyword introduced in python 3.7.

./tests/tools/check_source.sh
Syntax checking using python3 ...
Python 3.7.2+

Syntax error in ./runtime/Worker.py
File "./svgui/pyjs/lib/pyjslib.py", line 24
def import_module(path, parent_module, module_name, dynamic=1, async=False):
^
SyntaxError: invalid syntax

Wed, 13 Mar 2019 09:56:37 +0300revert occasionally committed changed first_steps project.
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 13 Mar 2019 09:56:37 +0300] rev 2534
revert occasionally committed changed first_steps project.

project was changed by commit:
update translations from https://www.transifex.com/beremiz/beremiz-ide (756d02cf78db)

Mon, 18 Mar 2019 07:13:04 +0000Merged in masterschlumpf/beremiz/generate-button (pull request #38)
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 18 Mar 2019 07:13:04 +0000] rev 2533
Merged in masterschlumpf/beremiz/generate-button (pull request #38)

"Generate Prgram" button

Approved-by: Andrey Skvortsov <andrej.skvortzov@gmail.com>

Fri, 15 Mar 2019 18:27:43 +0100Create a "Generate Program As..." menu to make the "Generate Program" toolbutton even more useful. generate-button
Schlumpf <schlumpf@kr-ll.de> [Fri, 15 Mar 2019 18:27:43 +0100] rev 2532
Create a "Generate Program As..." menu to make the "Generate Program" toolbutton even more useful.

The behaviour is the same as "Save" and "Save As...". Now "Generate Program" uses the last filename
if known and "Generate Progam As..." asks every time.

Fri, 15 Mar 2019 17:34:24 +0100Add "Generate Program" to toolbar in PLCOpenEditor standalone mode. generate-button
Schlumpf <schlumpf@kr-ll.de> [Fri, 15 Mar 2019 17:34:24 +0100] rev 2531
Add "Generate Program" to toolbar in PLCOpenEditor standalone mode.

Currently you can find the "Generate Program" action only in the file menu,
but this action is very often used in standalone mode, so I added toolbuffon.

Fri, 22 Mar 2019 11:10:37 +0100Merged search in CTN branch
Edouard Tisserant [Fri, 22 Mar 2019 11:10:37 +0100] rev 2530
Merged search in CTN branch

Fri, 22 Mar 2019 11:09:41 +0100Finished adding search in python and C files. Stripped debug code and useless comments. Close branch search_in_CTN
Edouard Tisserant [Fri, 22 Mar 2019 11:09:41 +0100] rev 2529
Finished adding search in python and C files. Stripped debug code and useless comments. Close branch

Fri, 22 Mar 2019 10:57:04 +0100WIP adding searching capabilities in python files. was done : search_in_CTN
Edouard Tisserant [Fri, 22 Mar 2019 10:57:04 +0100] rev 2528
WIP adding searching capabilities in python files. was done :
- added search in body of Code File Tree Nodes (moved editor code so that we CTN search can have the same sections text layout as editor to search in)

Thu, 21 Mar 2019 14:00:26 +0100WIP adding searching capabilities in python files. was done : search_in_CTN
Edouard Tisserant [Thu, 21 Mar 2019 14:00:26 +0100] rev 2527
WIP adding searching capabilities in python files. was done :
- added search in global variables used by Code File Tree Nodes

Thu, 21 Mar 2019 13:10:49 +0100WIP adding searching capabilities in python files. was done : search_in_CTN
Edouard Tisserant [Thu, 21 Mar 2019 13:10:49 +0100] rev 2526
WIP adding searching capabilities in python files. was done :
- fixed highlighting search result in text body of CTN code editor.

Thu, 21 Mar 2019 13:04:26 +0100WIP adding searching capabilities in python files. was done : search_in_CTN
Edouard Tisserant [Thu, 21 Mar 2019 13:04:26 +0100] rev 2525
WIP adding searching capabilities in python files. was done :
- change stub search results to trigger highlighting un variable panel
- trying to highlight in CTN code file editors -> problem with EditorPanel not having self.VariableEditor set...
- added highlight capability to CTN's CodeFileEditor's VariablePanel

Wed, 20 Mar 2019 11:34:41 +0100WIP adding searching capabilities in python files. was done : search_in_CTN
Edouard Tisserant [Wed, 20 Mar 2019 11:34:41 +0100] rev 2524
WIP adding searching capabilities in python files. was done :
- fixed stub CTN search results so that they can be accepted by search result panel
- worked on search result panel so that it can display those CTN results
- made search result panel display correctly stub search result, for variables and body matches
- EditProjectElement now opens CTN node as well as PlcOpen project nodes

Fri, 15 Mar 2019 14:11:49 +0100WIP adding searching capabilities in python files: search_in_CTN
Edouard Tisserant [Fri, 15 Mar 2019 14:11:49 +0100] rev 2523
WIP adding searching capabilities in python files:
- Added recursive Search capability to config tree nodes
- Added stub search to code editors, for test

Mon, 11 Mar 2019 17:20:15 +0100Fixed more pylint reports :
Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 11 Mar 2019 17:20:15 +0100] rev 2522
Fixed more pylint reports :
connectors/__init__.py:31: [W1652(deprecated-types-field), ] Accessing a deprecated fields on the types module
in fact, it should have been unused import.

Mon, 11 Mar 2019 13:51:07 +0100Long due merge
Edouard Tisserant [Mon, 11 Mar 2019 13:51:07 +0100] rev 2521
Long due merge

Tue, 05 Mar 2019 11:43:20 +0300Fix backtrace on printing localized (non-ascii) error message in PLCGenerator.
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 05 Mar 2019 11:43:20 +0300] rev 2520
Fix backtrace on printing localized (non-ascii) error message in PLCGenerator.

traceback:
File "C:\Beremiz\targets\st\beremiz\..\..\..\beremiz\beremiz\BeremizIDE.py", line 811, in OnMenu
getattr(self.CTR, method)()
File "C:\Beremiz\targets\st\beremiz\..\..\..\beremiz\beremiz\ProjectController.py", line 1134, in _Build
IECGenRes = self._Generate_SoftPLC()
File "C:\Beremiz\targets\st\beremiz\..\..\..\beremiz\beremiz\ProjectController.py", line 746, in _Generate_SoftPLC
if self._Generate_PLC_ST():
File "C:\Beremiz\targets\st\beremiz\..\..\..\beremiz\beremiz\ProjectController.py", line 763, in _Generate_PLC_ST
self._getIECgeneratedcodepath())
File "C:\Beremiz\targets\st\beremiz\..\..\..\beremiz\beremiz\PLCControler.py", line 466, in GenerateProgram
errors.append(str(ex))
<type 'exceptions.UnicodeEncodeError'>: 'ascii' codec can't encode characters in position 0-9: ordinal not in range(128)
Fix backtrace on printing localized (non-ascii) error message in PLCGenerator.

traceback:
File "C:\Beremiz\targets\st\beremiz\..\..\..\beremiz\beremiz\BeremizIDE.py", line 811, in OnMenu
getattr(self.CTR, method)()
File "C:\Beremiz\targets\st\beremiz\..\..\..\beremiz\beremiz\ProjectController.py", line 1134, in _Build
IECGenRes = self._Generate_SoftPLC()
File "C:\Beremiz\targets\st\beremiz\..\..\..\beremiz\beremiz\ProjectController.py", line 746, in _Generate_SoftPLC
if self._Generate_PLC_ST():
File "C:\Beremiz\targets\st\beremiz\..\..\..\beremiz\beremiz\ProjectController.py", line 763, in _Generate_PLC_ST
self._getIECgeneratedcodepath())
File "C:\Beremiz\targets\st\beremiz\..\..\..\beremiz\beremiz\PLCControler.py", line 466, in GenerateProgram
errors.append(str(ex))
<type 'exceptions.UnicodeEncodeError'>: 'ascii' codec can't encode characters in position 0-9: ordinal not in range(128)


Close #67

Tue, 05 Mar 2019 11:19:36 +0300Fix crash if LD input contact isn't connected
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 05 Mar 2019 11:19:36 +0300] rev 2519
Fix crash if LD input contact isn't connected

Traceback (most recent call last):
File "/home/developer/WorkData/PLC/beremiz/beremiz/BeremizIDE.py", line 339, in OnMethod
obj.CTR.CallMethod('_'+meth)
File "/home/developer/WorkData/PLC/beremiz/beremiz/ProjectController.py", line 1996, in CallMethod
getattr(self, method)()
File "/home/developer/WorkData/PLC/beremiz/beremiz/ProjectController.py", line 1134, in _Build
IECGenRes = self._Generate_SoftPLC()
File "/home/developer/WorkData/PLC/beremiz/beremiz/ProjectController.py", line 746, in _Generate_SoftPLC
if self._Generate_PLC_ST():
File "/home/developer/WorkData/PLC/beremiz/beremiz/ProjectController.py", line 763, in _Generate_PLC_ST
self._getIECgeneratedcodepath())
File "/home/developer/WorkData/PLC/beremiz/beremiz/PLCControler.py", line 456, in GenerateProgram
self.ProgramChunks = GenerateCurrentProgram(self, self.Project, errors, warnings)
File "/home/developer/WorkData/PLC/beremiz/beremiz/PLCGenerator.py", line 1762, in GenerateCurrentProgram
generator.GenerateProgram()
File "/home/developer/WorkData/PLC/beremiz/beremiz/PLCGenerator.py", line 478, in GenerateProgram
self.GeneratePouProgram(pou_name)
File "/home/developer/WorkData/PLC/beremiz/beremiz/PLCGenerator.py", line 260, in GeneratePouProgram
program = pou_program.GenerateProgram(pou)
File "/home/developer/WorkData/PLC/beremiz/beremiz/PLCGenerator.py", line 1718, in GenerateProgram
self.ComputeProgram(pou)
File "/home/developer/WorkData/PLC/beremiz/beremiz/PLCGenerator.py", line 1028, in ComputeProgram
self.GenerateBlock(instance, block_infos, body, None)
File "/home/developer/WorkData/PLC/beremiz/beremiz/PLCGenerator.py", line 1144, in GenerateBlock
expression = self.ComputeExpression(body, connections, executionOrderId > 0)
File "/home/developer/WorkData/PLC/beremiz/beremiz/PLCGenerator.py", line 1373, in ComputeExpression
paths = self.GeneratePaths(connections, body, order, to_inout)
File "/home/developer/WorkData/PLC/beremiz/beremiz/PLCGenerator.py", line 1344, in GeneratePaths
elif isinstance(result[0], list):
IndexError: list index out of range


Close #70

Fri, 01 Mar 2019 16:55:16 +0300Fix section styling in code editor (python and c extensions) if non-latin symbols are used in the code
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 01 Mar 2019 16:55:16 +0300] rev 2518
Fix section styling in code editor (python and c extensions) if non-latin symbols are used in the code

Problem exists even if non-latin characters are placed in comments.
Close #76

Thu, 21 Feb 2019 11:39:50 +0300update localization template
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 21 Feb 2019 11:39:50 +0300] rev 2517
update localization template

Thu, 21 Feb 2019 11:27:16 +0300merge
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 21 Feb 2019 11:27:16 +0300] rev 2516
merge

Thu, 21 Feb 2019 11:25:58 +0300updated list of translators
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 21 Feb 2019 11:25:58 +0300] rev 2515
updated list of translators

Thu, 21 Feb 2019 11:25:03 +0300update translations from https://www.transifex.com/beremiz/beremiz-ide
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 21 Feb 2019 11:25:03 +0300] rev 2514
update translations from https://www.transifex.com/beremiz/beremiz-ide

added Basque (eu) and Vietnamese (Viet Nam) (vi_VN) translations

Thu, 21 Feb 2019 10:58:37 +0300Add SpinButtons for integer and floating point variables in ForceVariableDialog
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 21 Feb 2019 10:58:37 +0300] rev 2513
Add SpinButtons for integer and floating point variables in ForceVariableDialog

it allows to change variable value using only mouse.

Thu, 21 Feb 2019 10:17:38 +0300Fix non-marking as manually forced floating point variable if the value isn't integer
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 21 Feb 2019 10:17:38 +0300] rev 2512
Fix non-marking as manually forced floating point variable if the value isn't integer

For example, if user in debug variable panel set any floating point
variable to 34.3, then it's not shown as forced (blue color) and user
can't release this enforcement.

If user changes the value to 34.0, then enforcement shows
correctly. This is done because binary representation of floating point
numbers in IDE and runtime can be slightly different (double vs float)
and as a result values aren't equal.

Thu, 14 Feb 2019 10:27:24 +0300Don't close ForceVariableDialog if user entered wrong new value
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 14 Feb 2019 10:27:24 +0300] rev 2511
Don't close ForceVariableDialog if user entered wrong new value

return back to edit field in this case

Thu, 14 Feb 2019 10:19:30 +0300Additional fix for rewrite ForceVariableDialog commit (9076249f)
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 14 Feb 2019 10:19:30 +0300] rev 2510
Additional fix for rewrite ForceVariableDialog commit (9076249f)

fix following backtrace:

Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/wx-3.0-gtk3/wx/_core.py", line 16765, in <lambda>
lambda event: event.callable(*event.args, **event.kw) )
File "/home/developer/WorkData/PLC/beremiz/beremiz/controls/DebugVariablePanel/DebugVariableViewer.py", line 232, in HandleButton
button.ProcessCallback()
File "/home/developer/WorkData/PLC/beremiz/beremiz/controls/DebugVariablePanel/GraphButton.py", line 156, in ProcessCallback
self.Callback()
File "/home/developer/WorkData/PLC/beremiz/beremiz/controls/DebugVariablePanel/DebugVariableViewer.py", line 350, in OnForceButton
self.ForceValue(self.ItemsDict.values()[0])
File "/home/developer/WorkData/PLC/beremiz/beremiz/controls/DebugVariablePanel/DebugVariableViewer.py", line 428, in ForceValue
dialog.GetValue())
File "/home/developer/WorkData/PLC/beremiz/beremiz/dialogs/ForceVariableDialog.py", line 232, in GetValue
return GetTypeValue[self.IEC_Type](wx.TextEntryDialog.GetValue(self))
TypeError: unbound method GetValue() must be called with TextEntryDialog instance as first argument (got ForceVariableDialog instance instead)

Thu, 14 Feb 2019 10:02:58 +0300Fix redraw problems in preview frames and debug panel
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 14 Feb 2019 10:02:58 +0300] rev 2509
Fix redraw problems in preview frames and debug panel

The problem was that direct call of RefreshView (now DrawView) doesn't
generate EVT_PAINT (at least on GNU/Linux with Wayland and wxgtk build
with gtk3+ support).
Now RefreshView simply triggers EVT_PAINT and EVT_PAINT handler does actual work.

Thu, 14 Feb 2019 09:44:19 +0300Rewrite ForceVariableDialog. It's not based on wx.TextEntryDialog
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 14 Feb 2019 09:44:19 +0300] rev 2508
Rewrite ForceVariableDialog. It's not based on wx.TextEntryDialog

Don't customize standard wx.TextEntryDialog on the fly, implement your
own dialog for that with expected behavior and without any hacks.

Wed, 13 Feb 2019 13:35:48 +0000merge updates to modbus/mb_runtime.c
Mario de Sousa <msousa@fe.up.pt> [Wed, 13 Feb 2019 13:35:48 +0000] rev 2507
merge updates to modbus/mb_runtime.c

Mon, 14 Jan 2019 12:30:32 +0300fix 'SaveAs' in case of overwriting existing project
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 14 Jan 2019 12:30:32 +0300] rev 2506
fix 'SaveAs' in case of overwriting existing project

Traceback (most recent call last):
File "/home/developer/WorkData/PLC/beremiz/beremiz/BeremizIDE.py", line 959, in OnSaveProjectAsMenu
self.CTR.SaveProjectAs()
File "/home/developer/WorkData/PLC/beremiz/beremiz/ProjectController.py", line 600, in SaveProjectAs
self.SaveProject(old_project_path)
File "/home/developer/WorkData/PLC/beremiz/beremiz/ProjectController.py", line 579, in SaveProject
self._getProjectFilesPath(self.ProjectPath))
File "/usr/lib/python2.7/shutil.py", line 200, in copytree
os.makedirs(dst)
File "/usr/lib/python2.7/os.py", line 157, in makedirs
mkdir(name, mode)
OSError: [Errno 17] File exists: '/tmp/tests/project_files'

Mon, 14 Jan 2019 12:17:48 +0300fix 'SaveAs' to non-empty directory and directory without write permissions
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 14 Jan 2019 12:17:48 +0300] rev 2505
fix 'SaveAs' to non-empty directory and directory without write permissions

Sat, 12 Jan 2019 15:02:17 +0300fix problems with recursive beremiz.h inclusion
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 12 Jan 2019 15:02:17 +0300] rev 2504
fix problems with recursive beremiz.h inclusion

Sat, 12 Jan 2019 13:57:16 +0300remove LogMessage prototype from plc_main_head.c
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 12 Jan 2019 13:57:16 +0300] rev 2503
remove LogMessage prototype from plc_main_head.c

it's not needed, because prototype is included in beremiz.h
But it caused problems with TARGET_LOGGING_DISABLE.

Mon, 07 Jan 2019 23:28:28 +0300merge
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 07 Jan 2019 23:28:28 +0300] rev 2502
merge

Sun, 06 Jan 2019 03:11:39 +0300Make online debug optional
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sun, 06 Jan 2019 03:11:39 +0300] rev 2501
Make online debug optional

It could be useful for very small targets like Atmega (Arduino) and
for target bring-up there developer want to have running PLC program,
but has not implemented runtime communication yet.


TARGET_DEBUG_AND_RETAIN_DISABLE - completely disable debug and retain
functionality. Previously named TARGET_DEBUG_DISABLE.

TARGET_ONLINE_DEBUG_DISABLE - can be used to enable retain
functionality (no define TARGET_DEBUG_AND_RETAIN_DISABLE is used), but disable
online debug with corresponding RAM/FLASH overhead.

TARGET_LOGGING_DISABLE - disables logging functionality from runtime and PLC program

TARGET_EXT_SYNC_DISABLE - disables PLC program synchronization with
external events. For example, it could be used to synchronize several
PLCs that control motors for different axes.

By default all these options are off.

To test generate program for Generic target, put following files in
project files directory and run build.sh after generating PLC program.
This is very easy to integrate into makefile (Generic target).

[------------- build.sh --------------------------]
files=$(find $PWD/../build -iname '*.c' | grep -v POUS.c)
arm-none-eabi-gcc \
-DTARGET_DEBUG_AND_RETAIN_DISABLE \
-DTARGET_ONLINE_DEBUG_DISABLE \
-DTARGET_LOGGING_DISABLE \
-DTARGET_EXT_SYNC_DISABLE \
-flto -ffunction-sections -fdata-sections -I../../../../matiec/lib/C \
$files \
main.c \
-Wl,--Map=./program.map,--cref \
-nodefaultlibs --specs=nano.specs -Wl,--static -Wl,--gc-section -Wl,--start-group -lc -lm -lnosys -lgcc -Wl,--end-group
[------------------------------------------------]

[------------- main.c --------------------------]
#ifndef TARGET_DEBUG_AND_RETAIN_DISABLE
void Retain(void){}
void InValidateRetainBuffer(void){}
void ValidateRetainBuffer(void){}
#endif

extern void __run(void);
int main(void)
{
for(;;) {
__run();
// sleep common_ticktime__ ns
// add common_ticktime__ ns to __CURRENT_TIME
}
return 0;
}
[------------------------------------------------]

Sun, 06 Jan 2019 02:00:07 +0300Disable Python extension in First steps example
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sun, 06 Jan 2019 02:00:07 +0300] rev 2500
Disable Python extension in First steps example

Sun, 06 Jan 2019 01:22:46 +0300use pregenerated CRC32 lookup tables for retain on Win32 and GNU/Linux
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sun, 06 Jan 2019 01:22:46 +0300] rev 2499
use pregenerated CRC32 lookup tables for retain on Win32 and GNU/Linux

This code could be possible reused on low-end targets with limited RAM.

code to generate lookup table:
[---------------------------------------------------------------------]

/* CRC lookup table and initial state. */
uint32_t crc32_table[256];

/* Generate CRC32 lookup table. */
void GenerateCRC32Table(void)
{
unsigned int i, j;
/* Use CRC-32-IEEE 802.3 polynomial 0x04C11DB7 (bit reflected). */
uint32_t poly = 0xEDB88320;

for (i = 0; i <= 0xFF; i++)
{
uint32_t c = i;
for (j = 0 ; j < 8 ; j++)
c = (c & 1) ? (c >> 1 ) ^ poly : (c >> 1);
crc32_table[i] = c;
}
}

void main(void)
{
GenerateCRC32Table();
int j=0;
for(int i=0; i<256; i++) {
printf("0x%08X, ", crc32_table[i]);
if (++j >= 8) {
j = 0;
printf("\n");
}
}
}
[---------------------------------------------------------------------]

Mon, 07 Jan 2019 20:24:49 +0000Merged in masterschlumpf/beremiz/wx3-fix (pull request #37)
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 07 Jan 2019 20:24:49 +0000] rev 2498
Merged in masterschlumpf/beremiz/wx3-fix (pull request #37)

Fix an exception with wx-3.0-gtk3 in PLCOpenEditor when generating ST files

Approved-by: Andrey Skvortsov <andrej.skvortzov@gmail.com>

Mon, 07 Jan 2019 18:32:03 +0100Fix an exception on wx-3.0-gtk3 in PLCOpenEditor when generating ST files. wx3-fix
Schlumpf <schlumpf@kr-ll.de> [Mon, 07 Jan 2019 18:32:03 +0100] rev 2497
Fix an exception on wx-3.0-gtk3 in PLCOpenEditor when generating ST files.

On Python2.7 with WX3.0 and GTK3, an assertionError rises on generating a ST file if the name is already set. The first generation works without problems, if you generate the file a second one, PLCOpenEditor tries to open the file
save dialog with the pre entered name from last run. Then the following assertion pops up:

PyAssertionError: C++ assertion "volDummy.empty() && pathDummy.empty()" failed at ./src/common/filename.cpp(568) in Assign(): the file name shouldn't contain the path

This fix reduces the filepath of the ST file the to the filename. Now it works fine.

Mon, 24 Dec 2018 16:44:06 +0300Fix typos in function names
Dmitriy Kuzmin <z644813828@gmail.com> [Mon, 24 Dec 2018 16:44:06 +0300] rev 2496
Fix typos in function names

Mon, 24 Dec 2018 16:22:28 +0300update links to matiec and beremiz repos in README
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 24 Dec 2018 16:22:28 +0300] rev 2495
update links to matiec and beremiz repos in README

Mon, 24 Dec 2018 16:20:20 +0300fix zoom-in/zoom-out using mouse wheel
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 24 Dec 2018 16:20:20 +0300] rev 2494
fix zoom-in/zoom-out using mouse wheel

regression introduced by 2393:235f847be37e "python3 support: pylint, W1619 #(old-division) division w/o __future__ statement"

Mon, 11 Mar 2019 09:18:58 +0100better pylint complain workaround
Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 11 Mar 2019 09:18:58 +0100] rev 2493
better pylint complain workaround

Mon, 11 Mar 2019 01:03:32 +0100check_sources.sh makes me become even less productive
Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 11 Mar 2019 01:03:32 +0100] rev 2492
check_sources.sh makes me become even less productive

Thu, 07 Mar 2019 21:57:18 +0100Added stub axis_s type in EtherLAB CiA402 support code, until Motion Contol Library comes back
Edouard Tisserant <edouard.tisserant@gmail.com> [Thu, 07 Mar 2019 21:57:18 +0100] rev 2491
Added stub axis_s type in EtherLAB CiA402 support code, until Motion Contol Library comes back

Tue, 19 Feb 2019 11:27:29 +0100Allow using one XSD based target description for many targets. Target description XSD can now use %(target_name)s to refer to target name.
Edouard Tisserant [Tue, 19 Feb 2019 11:27:29 +0100] rev 2490
Allow using one XSD based target description for many targets. Target description XSD can now use %(target_name)s to refer to target name.

Thu, 14 Feb 2019 10:06:43 +0100Fix previous commit : Using wx.CallAfter shouldn't have been necessary, and was a symptom of failing evaluator's deadlock detection.
Edouard Tisserant [Thu, 14 Feb 2019 10:06:43 +0100] rev 2489
Fix previous commit : Using wx.CallAfter shouldn't have been necessary, and was a symptom of failing evaluator's deadlock detection.

Wed, 13 Feb 2019 13:08:26 +0100Fix startup of wxGlade base HMI. Wx calls were issued from non-wx thread (main).
Edouard Tisserant [Wed, 13 Feb 2019 13:08:26 +0100] rev 2488
Fix startup of wxGlade base HMI. Wx calls were issued from non-wx thread (main).

Wed, 13 Feb 2019 09:41:35 +0100Reworked chunk based transfer to support duplicated files (i.e. files with same content, but different names)
Edouard Tisserant [Wed, 13 Feb 2019 09:41:35 +0100] rev 2487
Reworked chunk based transfer to support duplicated files (i.e. files with same content, but different names)

Fri, 01 Feb 2019 14:14:13 +0100Fixed deadlock in runtime's Worker. Was discovered while using WAMP and PYRO simultaneously.
Edouard Tisserant [Fri, 01 Feb 2019 14:14:13 +0100] rev 2486
Fixed deadlock in runtime's Worker. Was discovered while using WAMP and PYRO simultaneously.

Thu, 31 Jan 2019 14:10:06 +0100Add a debugger token to SetTraceVariables and GetTraceVariables to prevent crash an inconsistant data in case of multiple connections. Last connection now takes over existing connections's debug, and first connected IDE gets a wrning.
Edouard Tisserant [Thu, 31 Jan 2019 14:10:06 +0100] rev 2485
Add a debugger token to SetTraceVariables and GetTraceVariables to prevent crash an inconsistant data in case of multiple connections. Last connection now takes over existing connections's debug, and first connected IDE gets a wrning.

Tue, 29 Jan 2019 09:14:47 +0100Fixed deadlock when using Wx together with Twisted in runtime.
Edouard Tisserant [Tue, 29 Jan 2019 09:14:47 +0100] rev 2484
Fixed deadlock when using Wx together with Twisted in runtime.

Fri, 25 Jan 2019 14:06:11 +0100Split IDE's frame OnCloseFrame() into TryCloseFrame() and OnCloseFrame(), to help further customization
Edouard Tisserant [Fri, 25 Jan 2019 14:06:11 +0100] rev 2483
Split IDE's frame OnCloseFrame() into TryCloseFrame() and OnCloseFrame(), to help further customization

Wed, 09 Jan 2019 14:10:07 +0100fixed exception happening randomly just after showing discovery panel.
Edouard Tisserant [Wed, 09 Jan 2019 14:10:07 +0100] rev 2482
fixed exception happening randomly just after showing discovery panel.

Wed, 09 Jan 2019 14:09:02 +0100fixed exception happening when connecting to empty URI, and set URI through URI Editor Dialog popping up becaue empty.
Edouard Tisserant [Wed, 09 Jan 2019 14:09:02 +0100] rev 2481
fixed exception happening when connecting to empty URI, and set URI through URI Editor Dialog popping up becaue empty.

Mon, 07 Jan 2019 13:50:39 +0100Merged Mario's modbus fix : Modbus plugin: reset periodic activation timer when overrun occurs (delays due to communication errors, ...)
Edouard Tisserant [Mon, 07 Jan 2019 13:50:39 +0100] rev 2480
Merged Mario's modbus fix : Modbus plugin: reset periodic activation timer when overrun occurs (delays due to communication errors, ...)

Sat, 02 Jun 2018 11:56:01 +0100Modbus plugin: reset periodic activation timer when overrun occurs (delays due to communication errors, ...)
Mario de Sousa <msousa@fe.up.pt> [Sat, 02 Jun 2018 11:56:01 +0100] rev 2479
Modbus plugin: reset periodic activation timer when overrun occurs (delays due to communication errors, ...)

Mon, 07 Jan 2019 11:33:34 +0100Disable MDNS:// scheme support. Also prevent discovery pannel to produce some. For now it seems that that feature is unused, and could be a security issue.
Edouard Tisserant [Mon, 07 Jan 2019 11:33:34 +0100] rev 2478
Disable MDNS:// scheme support. Also prevent discovery pannel to produce some. For now it seems that that feature is unused, and could be a security issue.

Fri, 21 Dec 2018 13:51:33 +0100Added support to PYROS in Zeroconf discovery and publish. For now, PYRO://mdnsname._tcp.local. URI are broken, and discovery panel generate IP based URI by default.
Edouard Tisserant [Fri, 21 Dec 2018 13:51:33 +0100] rev 2477
Added support to PYROS in Zeroconf discovery and publish. For now, PYRO://mdnsname._tcp.local. URI are broken, and discovery panel generate IP based URI by default.

Fri, 21 Dec 2018 13:43:41 +0100PyroServer: fixed naming of class, and reorganized methods in order to ease subclassing, in case of customization of service publication on the local network (i.e. zeroconf)
Edouard Tisserant [Fri, 21 Dec 2018 13:43:41 +0100] rev 2476
PyroServer: fixed naming of class, and reorganized methods in order to ease subclassing, in case of customization of service publication on the local network (i.e. zeroconf)

Fri, 21 Dec 2018 13:39:41 +0100Fix exception dialog with non recognized URI schemes
Edouard Tisserant [Fri, 21 Dec 2018 13:39:41 +0100] rev 2475
Fix exception dialog with non recognized URI schemes

Wed, 19 Dec 2018 10:53:19 +0100Fixed runtime's reconnecting loop not stopping when re-configuring WAMP.
Edouard Tisserant [Wed, 19 Dec 2018 10:53:19 +0100] rev 2474
Fixed runtime's reconnecting loop not stopping when re-configuring WAMP.
In case WAMP was already trying to connect without success and user change WAMP configuration through web interface, previous ReconnectingClient wasn't stopped.

Wed, 19 Dec 2018 10:48:53 +0100Removed nonsense code, that I should have check more in details before merging m(
Edouard Tisserant [Wed, 19 Dec 2018 10:48:53 +0100] rev 2473
Removed nonsense code, that I should have check more in details before merging m(

Tue, 18 Dec 2018 14:12:16 +0100Allow easier monkey patching of WAMP connector Session class
Edouard Tisserant [Tue, 18 Dec 2018 14:12:16 +0100] rev 2472
Allow easier monkey patching of WAMP connector Session class

Tue, 18 Dec 2018 14:10:43 +0100Expose new PLCObject API members to WAMP interface.
Edouard Tisserant [Tue, 18 Dec 2018 14:10:43 +0100] rev 2471
Expose new PLCObject API members to WAMP interface.

Tue, 18 Dec 2018 14:08:11 +0100Use another way to ensure compatibility with Py3 about text type.
Edouard Tisserant [Tue, 18 Dec 2018 14:08:11 +0100] rev 2470
Use another way to ensure compatibility with Py3 about text type.

Mon, 10 Dec 2018 11:22:43 +0100Make easier to read console error message in case of connection problem.
Edouard Tisserant [Mon, 10 Dec 2018 11:22:43 +0100] rev 2469
Make easier to read console error message in case of connection problem.

Wed, 05 Dec 2018 14:05:35 +0100PYRO(S): Added timeout on client side to allow unfreezing IDE after some time when communication with target dropped
Edouard Tisserant [Wed, 05 Dec 2018 14:05:35 +0100] rev 2468
PYRO(S): Added timeout on client side to allow unfreezing IDE after some time when communication with target dropped

Wed, 05 Dec 2018 13:05:51 +0100Enure that autostart blocks other @RunInMain PLCObject methods, and _unblocks_ them once autostart is done...
Edouard Tisserant [Wed, 05 Dec 2018 13:05:51 +0100] rev 2467
Enure that autostart blocks other @RunInMain PLCObject methods, and _unblocks_ them once autostart is done...

Wed, 05 Dec 2018 13:04:37 +0100Fixed Discovery panel in URI Editor dialog : double click works back again, and avoid setting URI to unicode type.
Edouard Tisserant [Wed, 05 Dec 2018 13:04:37 +0100] rev 2466
Fixed Discovery panel in URI Editor dialog : double click works back again, and avoid setting URI to unicode type.

Wed, 05 Dec 2018 13:03:09 +0100Bigger chunks, from 16k to 1M
Edouard Tisserant [Wed, 05 Dec 2018 13:03:09 +0100] rev 2465
Bigger chunks, from 16k to 1M

Wed, 05 Dec 2018 11:35:18 +0100Empirically reverted calls done just after NewPLC back to the order as it was before chunked transfer. Apparently I broke something... To be continued
Edouard Tisserant [Wed, 05 Dec 2018 11:35:18 +0100] rev 2464
Empirically reverted calls done just after NewPLC back to the order as it was before chunked transfer. Apparently I broke something... To be continued

Tue, 04 Dec 2018 11:31:58 +0100Chunk based transfer for PLC binary and extra files, and some collateral code refactoring.
Edouard Tisserant [Tue, 04 Dec 2018 11:31:58 +0100] rev 2463
Chunk based transfer for PLC binary and extra files, and some collateral code refactoring.

Tue, 27 Nov 2018 13:34:14 +0100Fix failing PLC build when building freshly created project that use default libraries blocks. When controller loads libraries according to attibutes in project files (BeremizRoot/Enable_{libname}_Library), use known default if attribute is missing.
Edouard Tisserant [Tue, 27 Nov 2018 13:34:14 +0100] rev 2462
Fix failing PLC build when building freshly created project that use default libraries blocks. When controller loads libraries according to attibutes in project files (BeremizRoot/Enable_{libname}_Library), use known default if attribute is missing.

Tue, 27 Nov 2018 10:54:13 +0100Cosmetic change in PSKManagement.py
Edouard Tisserant [Tue, 27 Nov 2018 10:54:13 +0100] rev 2461
Cosmetic change in PSKManagement.py

Mon, 26 Nov 2018 15:12:18 +0100Fixed ID,last URI, or last connection date not being updated when connnecting to target.
Edouard Tisserant [Mon, 26 Nov 2018 15:12:18 +0100] rev 2460
Fixed ID,last URI, or last connection date not being updated when connnecting to target.

Fri, 23 Nov 2018 12:13:24 +0100Merged. Some changes that should already have been incuded during previous merge (mostly about PlcStatus) have been included this time.
Edouard Tisserant [Fri, 23 Nov 2018 12:13:24 +0100] rev 2459
Merged. Some changes that should already have been incuded during previous merge (mostly about PlcStatus) have been included this time.

Fri, 23 Nov 2018 11:01:20 +0100IDManager : small cosmetic fixes and cleanup.
Edouard Tisserant [Fri, 23 Nov 2018 11:01:20 +0100] rev 2458
IDManager : small cosmetic fixes and cleanup.

Fri, 12 Oct 2018 13:24:47 +0300python3 support: pylint, W1633 # (round-builtin) round built-in referenced
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 12 Oct 2018 13:24:47 +0300] rev 2457
python3 support: pylint, W1633 # (round-builtin) round built-in referenced

because round behavior is changed to default behavior in Python3
(Banker round). It can cause slight differences in some cases.
Mostly graphical editors are affected, there could be single pixel differences.
Now I couldn't locate any visual differences in test programs.

Fri, 12 Oct 2018 12:06:45 +0300python3 support: pylint,W1610 # (reduce-builtin) reduce built-in referenced
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 12 Oct 2018 12:06:45 +0300] rev 2456
python3 support: pylint,W1610 # (reduce-builtin) reduce built-in referenced

Fri, 12 Oct 2018 11:50:40 +0300python3 support: pylint, W1653 # (next-method-defined) next method defined
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 12 Oct 2018 11:50:40 +0300] rev 2455
python3 support: pylint, W1653 # (next-method-defined) next method defined

Fri, 12 Oct 2018 11:35:15 +0300python3 support: pylint, W1622 # (next-method-called) Called a next() method on an object
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 12 Oct 2018 11:35:15 +0300] rev 2454
python3 support: pylint, W1622 # (next-method-called) Called a next() method on an object

Fri, 12 Oct 2018 11:14:34 +0300python3 support: pylint, W1625 # (raising-string) Raising a string exception
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 12 Oct 2018 11:14:34 +0300] rev 2453
python3 support: pylint, W1625 # (raising-string) Raising a string exception

Fri, 12 Oct 2018 10:42:47 +0300python3 support: pylint, W1624 # (indexing-exception) Indexing exceptions will not work on Python 3
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 12 Oct 2018 10:42:47 +0300] rev 2452
python3 support: pylint, W1624 # (indexing-exception) Indexing exceptions will not work on Python 3

Thu, 11 Oct 2018 12:09:04 +0300python3 support: pylint, W1611 # (standarderror-builtin) StandardError built-in referenced
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 11 Oct 2018 12:09:04 +0300] rev 2451
python3 support: pylint, W1611 # (standarderror-builtin) StandardError built-in referenced

Thu, 11 Oct 2018 12:00:40 +0300python3 support: pylint, W1652 # (deprecated-types-field) Accessing a deprecated fields on the types module
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 11 Oct 2018 12:00:40 +0300] rev 2450
python3 support: pylint, W1652 # (deprecated-types-field) Accessing a deprecated fields on the types module

Thu, 11 Oct 2018 10:25:19 +0300python3 support: pylint, W1651 (deprecated-itertools-function) Accessing a deprecated function on the itertools module
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 11 Oct 2018 10:25:19 +0300] rev 2449
python3 support: pylint, W1651 (deprecated-itertools-function) Accessing a deprecated function on the itertools module

It's even 20% faster, than previous code. On python3 zip is even much more faster.

Thu, 11 Oct 2018 10:01:12 +0300python3 support: pylint, W1649 # (deprecated-string-function) Accessing a deprecated function on the string module
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 11 Oct 2018 10:01:12 +0300] rev 2448
python3 support: pylint, W1649 # (deprecated-string-function) Accessing a deprecated function on the string module

Thu, 11 Oct 2018 09:41:15 +0300python3 support: pylint, W1645 # (exception-message-attribute) Exception.message removed in Python 3
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 11 Oct 2018 09:41:15 +0300] rev 2447
python3 support: pylint, W1645 # (exception-message-attribute) Exception.message removed in Python 3

Wed, 10 Oct 2018 10:50:00 +0300python3 support: pylint, W1646 # (invalid-str-codec) non-text encoding used in str.decode
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 10 Oct 2018 10:50:00 +0300] rev 2446
python3 support: pylint, W1646 # (invalid-str-codec) non-text encoding used in str.decode

Wed, 10 Oct 2018 10:36:07 +0300python3 support: pylint,W1602 # (basestring-builtin) basestring built-in referenced
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 10 Oct 2018 10:36:07 +0300] rev 2445
python3 support: pylint,W1602 # (basestring-builtin) basestring built-in referenced

Wed, 10 Oct 2018 10:32:57 +0300python3 support: pylint, W1629 # (nonzero-method) __nonzero__ method defined
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 10 Oct 2018 10:32:57 +0300] rev 2444
python3 support: pylint, W1629 # (nonzero-method) __nonzero__ method defined

Wed, 10 Oct 2018 10:26:27 +0300python3 support: pylint, W1606 # (execfile-builtin) execfile built-in referenced
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 10 Oct 2018 10:26:27 +0300] rev 2443
python3 support: pylint, W1606 # (execfile-builtin) execfile built-in referenced

Tue, 09 Oct 2018 14:03:44 +0300python3 support: pylint, W1607 # (file-builtin) file built-in referenced
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 09 Oct 2018 14:03:44 +0300] rev 2442
python3 support: pylint, W1607 # (file-builtin) file built-in referenced

Tue, 09 Oct 2018 13:50:29 +0300python3 support: pylint, W1659 # (xreadlines-attribute) Accessing a removed xreadlines attribute
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 09 Oct 2018 13:50:29 +0300] rev 2441
python3 support: pylint, W1659 # (xreadlines-attribute) Accessing a removed xreadlines attribute

Tue, 09 Oct 2018 12:05:43 +0300python3 support: pylint, W1601 # (apply-builtin) apply built-in referenced
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 09 Oct 2018 12:05:43 +0300] rev 2440
python3 support: pylint, W1601 # (apply-builtin) apply built-in referenced

Tue, 09 Oct 2018 11:56:45 +0300Fix pep8 warning: W605 invalid escape sequence ?x?
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 09 Oct 2018 11:56:45 +0300] rev 2439
Fix pep8 warning: W605 invalid escape sequence ?x?

Tue, 09 Oct 2018 11:43:39 +0300pep8, ignore W606 'async' and 'await' are reserved keywords starting with Python 3.7
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 09 Oct 2018 11:43:39 +0300] rev 2438
pep8, ignore W606 'async' and 'await' are reserved keywords starting with Python 3.7

This error exists in pyjs extension, but pyjs isn't going to Python3.
'noqa' isn't working for W606, so this warning is disabled completely.
'async' and 'await' are still checked by pylint.

Fri, 05 Oct 2018 14:22:01 +0300python3 support: pylint, W1619 #(old-division) division w/o __future__ statement
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 05 Oct 2018 14:22:01 +0300] rev 2437
python3 support: pylint, W1619 #(old-division) division w/o __future__ statement

Fri, 05 Oct 2018 13:48:54 +0300Make easier to run pytest on local X-server
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 05 Oct 2018 13:48:54 +0300] rev 2436
Make easier to run pytest on local X-server

Fri, 05 Oct 2018 13:11:28 +0300cleanup pyc files between running pytest
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 05 Oct 2018 13:11:28 +0300] rev 2435
cleanup pyc files between running pytest

this is need to avoid problem sometimes tests are run inside docker
container and sometimes local.

Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/_pytest/config/__init__.py", line 409, in _importconftest
mod = conftestpath.pyimport()
File "/usr/lib/python2.7/dist-packages/py/_path/local.py", line 686, in pyimport
raise self.ImportMismatchError(modname, modfile, self)
ImportMismatchError: ('conftest', '/beremiz/tests/tools/conftest.py', local('/home/developer/beremiz/tests/tools/conftest.py'))
ERROR: could not load /home/developer/beremiz/tests/tools/conftest.py

Thu, 04 Oct 2018 17:24:40 +0300python3 support: pylint, W1612 # (unicode-builtin) unicode built-in referenced
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 04 Oct 2018 17:24:40 +0300] rev 2434
python3 support: pylint, W1612 # (unicode-builtin) unicode built-in referenced

Thu, 04 Oct 2018 12:09:23 +0300Use multiple processes to speed up pylint
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 04 Oct 2018 12:09:23 +0300] rev 2433
Use multiple processes to speed up pylint

0 will auto-detect the number of processors available to use.
version 1.6.5 (Debian 9.5) hangs for some reason in multi-process mode.

Thu, 04 Oct 2018 12:07:16 +0300python3 support: pylint, W1613 # (xrange-builtin) xrange built-in referenced
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 04 Oct 2018 12:07:16 +0300] rev 2432
python3 support: pylint, W1613 # (xrange-builtin) xrange built-in referenced

Thu, 04 Oct 2018 11:25:42 +0300python3 support: pylint, W1648 # (bad-python3-import) Module moved in Python 3
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 04 Oct 2018 11:25:42 +0300] rev 2431
python3 support: pylint, W1648 # (bad-python3-import) Module moved in Python 3

Fri, 23 Nov 2018 00:45:51 +0100Fixed regression in connecting to LOCAL:// targets
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 23 Nov 2018 00:45:51 +0100] rev 2430
Fixed regression in connecting to LOCAL:// targets

Fri, 23 Nov 2018 00:33:04 +0100Merge, with surprizingly little conflicts
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 23 Nov 2018 00:33:04 +0100] rev 2429
Merge, with surprizingly little conflicts

Thu, 22 Nov 2018 23:39:54 +0100IDManager : finished Import/Export. Added merging capability to import (asks if particular ID is replaced during import). Added ESC as closing shortcut to IDManager dialog, and adjusted its size.
Edouard Tisserant [Thu, 22 Nov 2018 23:39:54 +0100] rev 2428
IDManager : finished Import/Export. Added merging capability to import (asks if particular ID is replaced during import). Added ESC as closing shortcut to IDManager dialog, and adjusted its size.

Wed, 03 Oct 2018 15:47:59 +0300merge
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 03 Oct 2018 15:47:59 +0300] rev 2427
merge

Wed, 03 Oct 2018 14:20:57 +0300Update localization template
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 03 Oct 2018 14:20:57 +0300] rev 2426
Update localization template

Wed, 03 Oct 2018 14:19:41 +0300Fix 'msgid' format string with unnamed arguments cannot be properly localized
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 03 Oct 2018 14:19:41 +0300] rev 2425
Fix 'msgid' format string with unnamed arguments cannot be properly localized

Wed, 03 Oct 2018 14:17:19 +0300Add automatic check for localization strings with multiple unnamed arguments
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 03 Oct 2018 14:17:19 +0300] rev 2424
Add automatic check for localization strings with multiple unnamed arguments

Wed, 03 Oct 2018 12:43:35 +0300Improve localization support in etherlab (mostly)
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 03 Oct 2018 12:43:35 +0300] rev 2423
Improve localization support in etherlab (mostly)

Wed, 03 Oct 2018 12:07:56 +0300cleanup etherlab: pylint, W0602 (global-variable-not-assigned) Using global for 'X' but no assignment is done
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 03 Oct 2018 12:07:56 +0300] rev 2422
cleanup etherlab: pylint, W0602 (global-variable-not-assigned) Using global for 'X' but no assignment is done

Wed, 03 Oct 2018 11:48:05 +0300cleanup: pylint, W0109 # (duplicate-key) Duplicate key 'X' in dictionary
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 03 Oct 2018 11:48:05 +0300] rev 2421
cleanup: pylint, W0109 # (duplicate-key) Duplicate key 'X' in dictionary

Wed, 03 Oct 2018 11:47:04 +0300Add python3 syntax checking to CI
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 03 Oct 2018 11:47:04 +0300] rev 2420
Add python3 syntax checking to CI

Wed, 03 Oct 2018 11:44:57 +0300Fix old style exception raise and exec syntax
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 03 Oct 2018 11:44:57 +0300] rev 2419
Fix old style exception raise and exec syntax

Tue, 02 Oct 2018 18:08:49 +0300Use python 3 compatible exception syntax everywhere
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 02 Oct 2018 18:08:49 +0300] rev 2418
Use python 3 compatible exception syntax everywhere

Tue, 02 Oct 2018 17:18:09 +0300cleanup: pylint, R0123 # (literal-comparison) Comparison to literal
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 02 Oct 2018 17:18:09 +0300] rev 2417
cleanup: pylint, R0123 # (literal-comparison) Comparison to literal

Tue, 02 Oct 2018 16:53:14 +0300Use predefined constants for PlcStatus instead of string literals
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 02 Oct 2018 16:53:14 +0300] rev 2416
Use predefined constants for PlcStatus instead of string literals

Mon, 01 Oct 2018 15:53:34 +0300cleanup: pylint, R1704 # (redefined-argument-from-local) Redefining argument with the local name 'Y'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 01 Oct 2018 15:53:34 +0300] rev 2415
cleanup: pylint, R1704 # (redefined-argument-from-local) Redefining argument with the local name 'Y'

Mon, 01 Oct 2018 15:36:01 +0300cleanup: pylint, R1701 # (consider-merging-isinstance) Consider merging these isinstance calls to isinstance(CTNLDFLAGS, (str, unicode))
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 01 Oct 2018 15:36:01 +0300] rev 2414
cleanup: pylint, R1701 # (consider-merging-isinstance) Consider merging these isinstance calls to isinstance(CTNLDFLAGS, (str, unicode))

Mon, 01 Oct 2018 14:29:01 +0300cleanup: pylint, E1304 # (missing-format-string-key) Missing key 'X_name' in format string dictionary
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 01 Oct 2018 14:29:01 +0300] rev 2413
cleanup: pylint, E1304 # (missing-format-string-key) Missing key 'X_name' in format string dictionary

Mon, 01 Oct 2018 14:13:05 +0300cleanup: pylint, E1300 # (bad-format-character) Unsupported format character '"' (0x22) at index 17
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 01 Oct 2018 14:13:05 +0300] rev 2412
cleanup: pylint, E1300 # (bad-format-character) Unsupported format character '"' (0x22) at index 17

Mon, 01 Oct 2018 13:43:50 +0300cleanup: pylint, W0111 # (assign-to-new-keyword) Name async will become a keyword in Python 3.7
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 01 Oct 2018 13:43:50 +0300] rev 2411
cleanup: pylint, W0111 # (assign-to-new-keyword) Name async will become a keyword in Python 3.7

Mon, 01 Oct 2018 13:31:52 +0300cleanup: pylint, E1310 (bad-str-strip-call) Suspicious argument in str.strip call
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 01 Oct 2018 13:31:52 +0300] rev 2410
cleanup: pylint, E1310 (bad-str-strip-call) Suspicious argument in str.strip call

Mon, 01 Oct 2018 12:04:58 +0300Fix segmentation fault when last lines in text POUs should be highlighted
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 01 Oct 2018 12:04:58 +0300] rev 2409
Fix segmentation fault when last lines in text POUs should be highlighted

Sat, 29 Sep 2018 19:18:50 +0300enable etherlab checks
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 19:18:50 +0300] rev 2408
enable etherlab checks

resort enabled pylint check to move likely-most invasive changes to the end

Sat, 29 Sep 2018 19:10:43 +0300clean etherlab: pylint, C0330 # (bad-continuation) Wrong hanging indentation before block
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 19:10:43 +0300] rev 2407
clean etherlab: pylint, C0330 # (bad-continuation) Wrong hanging indentation before block

Sat, 29 Sep 2018 18:59:41 +0300clean etherlab: pylint, W0612 # (unused-variable) Unused variable 'X'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 18:59:41 +0300] rev 2406
clean etherlab: pylint, W0612 # (unused-variable) Unused variable 'X'

Sat, 29 Sep 2018 17:52:33 +0300clean etherlab: pylint, W1618 # (no-absolute-import) import missing `from __future__ import absolute_import`
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 17:52:33 +0300] rev 2405
clean etherlab: pylint, W1618 # (no-absolute-import) import missing `from __future__ import absolute_import`

Sat, 29 Sep 2018 17:39:21 +0300clean etherlab: pylint,E0602 # (undefined-variable) Undefined variable 'X'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 17:39:21 +0300] rev 2404
clean etherlab: pylint,E0602 # (undefined-variable) Undefined variable 'X'

Sat, 29 Sep 2018 17:12:44 +0300clean etherlab: pylint, E1136 # (unsubscriptable-object) Value 'X' is unsubscriptable
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 17:12:44 +0300] rev 2403
clean etherlab: pylint, E1136 # (unsubscriptable-object) Value 'X' is unsubscriptable

Sat, 29 Sep 2018 17:00:01 +0300ignore missing MotionLibrary
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 17:00:01 +0300] rev 2402
ignore missing MotionLibrary

to fix pylint error 'E0401 # (import-error) Unable to import 'X'

Sat, 29 Sep 2018 16:57:25 +0300clean etherlab: pylint, E0611 # (no-name-in-module) No name 'X' in module 'Y'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 16:57:25 +0300] rev 2401
clean etherlab: pylint, E0611 # (no-name-in-module) No name 'X' in module 'Y'

Sat, 29 Sep 2018 16:53:46 +0300clean etherlab: pylint, C0123 # (unidiomatic-typecheck) Using type() instead of isinstance() for a typecheck.
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 16:53:46 +0300] rev 2400
clean etherlab: pylint, C0123 # (unidiomatic-typecheck) Using type() instead of isinstance() for a typecheck.

Sat, 29 Sep 2018 16:48:25 +0300clean etherlab: pylint, W0104 # (pointless-statement) Statement seems to have no effect
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 16:48:25 +0300] rev 2399
clean etherlab: pylint, W0104 # (pointless-statement) Statement seems to have no effect

Sat, 29 Sep 2018 16:46:41 +0300clean etherlab: pylint, W0631 # (undefined-loop-variable) Using possibly undefined loop variable 'X'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 16:46:41 +0300] rev 2398
clean etherlab: pylint, W0631 # (undefined-loop-variable) Using possibly undefined loop variable 'X'

Sat, 29 Sep 2018 16:40:56 +0300clean etherlab: pylint, C1001 # (old-style-class) Old-style class defined.
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 16:40:56 +0300] rev 2397
clean etherlab: pylint, C1001 # (old-style-class) Old-style class defined.

Sat, 29 Sep 2018 16:39:25 +0300clean etherlab: pylint, W0611 # (unused-import) Unused import X
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 16:39:25 +0300] rev 2396
clean etherlab: pylint, W0611 # (unused-import) Unused import X

Sat, 29 Sep 2018 16:35:38 +0300clean etherlab: pylint, E0102 # (function-redefined) method already defined
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 16:35:38 +0300] rev 2395
clean etherlab: pylint, E0102 # (function-redefined) method already defined

Sat, 29 Sep 2018 16:33:22 +0300clean etherlab: pylint, W0105 # (pointless-string-statement) String statement has no effect
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 16:33:22 +0300] rev 2394
clean etherlab: pylint, W0105 # (pointless-string-statement) String statement has no effect

Sat, 29 Sep 2018 16:31:54 +0300clean etherlab: pylint,W0231 # (super-init-not-called) __init__ method from base class is not called
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 16:31:54 +0300] rev 2393
clean etherlab: pylint,W0231 # (super-init-not-called) __init__ method from base class is not called

Sat, 29 Sep 2018 16:29:41 +0300clean etherlab: pylint, C0412 # (ungrouped-imports) Imports from package X are not grouped
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 16:29:41 +0300] rev 2392
clean etherlab: pylint, C0412 # (ungrouped-imports) Imports from package X are not grouped

Sat, 29 Sep 2018 16:23:20 +0300clean etherlab: pylint,W0108 # (unnecessary-lambda) Lambda may not be necessary
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 16:23:20 +0300] rev 2391
clean etherlab: pylint,W0108 # (unnecessary-lambda) Lambda may not be necessary

Sat, 29 Sep 2018 16:19:15 +0300clean etherlab: pylint, C0411 # (wrong-import-order) standard import "import x" comes before "import y"
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 16:19:15 +0300] rev 2390
clean etherlab: pylint, C0411 # (wrong-import-order) standard import "import x" comes before "import y"

Sat, 29 Sep 2018 16:17:04 +0300clean etherlab: pylint, W0404 # reimported module
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 16:17:04 +0300] rev 2389
clean etherlab: pylint, W0404 # reimported module

Sat, 29 Sep 2018 15:41:20 +0300check_source.sh: add E301 check to the list of selected PEP8 errors
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 15:41:20 +0300] rev 2388
check_source.sh: add E301 check to the list of selected PEP8 errors

Sat, 29 Sep 2018 15:38:49 +0300clean etherlab: pep8, E301 expected 2 blank lines, found 1
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 15:38:49 +0300] rev 2387
clean etherlab: pep8, E301 expected 2 blank lines, found 1

Sat, 29 Sep 2018 15:35:22 +0300clean etherlab: pep8, W503 line break before binary operator
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 15:35:22 +0300] rev 2386
clean etherlab: pep8, W503 line break before binary operator

Sat, 29 Sep 2018 15:33:41 +0300clean etherlab: pep8, E266 too many leading '#' for block comment
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 15:33:41 +0300] rev 2385
clean etherlab: pep8, E266 too many leading '#' for block comment

Sat, 29 Sep 2018 15:31:50 +0300clean etherlab: pep8, E122 continuation line missing indentation or outdented
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 15:31:50 +0300] rev 2384
clean etherlab: pep8, E122 continuation line missing indentation or outdented

Sat, 29 Sep 2018 15:24:07 +0300clean etherlab: pep8, W191 indentation contains tabs
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 15:24:07 +0300] rev 2383
clean etherlab: pep8, W191 indentation contains tabs

Sat, 29 Sep 2018 15:21:06 +0300clean etherlab: pep8, E211 whitespace before '['
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 15:21:06 +0300] rev 2382
clean etherlab: pep8, E211 whitespace before '['

Sat, 29 Sep 2018 15:16:21 +0300clean etherlab: pep8, E129 visually indented line with same indent as next logical line
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 15:16:21 +0300] rev 2381
clean etherlab: pep8, E129 visually indented line with same indent as next logical line

Sat, 29 Sep 2018 15:03:17 +0300clean etherlab: pep8, E127 continuation line over-indented for visual indent
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 15:03:17 +0300] rev 2380
clean etherlab: pep8, E127 continuation line over-indented for visual indent

Sat, 29 Sep 2018 14:57:15 +0300clean etherlab: pep8, E129 visually indented line with same indent as next logical line
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 14:57:15 +0300] rev 2379
clean etherlab: pep8, E129 visually indented line with same indent as next logical line

Sat, 29 Sep 2018 13:44:02 +0300clean etherlab: pep8, W602 deprecated form of raising exception
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 13:44:02 +0300] rev 2378
clean etherlab: pep8, W602 deprecated form of raising exception

Sat, 29 Sep 2018 13:34:06 +0300clean etherlab: pep8, W601 .has_key() is deprecated, use 'in'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 13:34:06 +0300] rev 2377
clean etherlab: pep8, W601 .has_key() is deprecated, use 'in'

Sat, 29 Sep 2018 13:30:41 +0300clean etherlab: pep8, E731 do not assign a lambda expression, use a def
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 13:30:41 +0300] rev 2376
clean etherlab: pep8, E731 do not assign a lambda expression, use a def

Sat, 29 Sep 2018 13:29:20 +0300clean etherlab: pep8, E203 whitespace before ','
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 13:29:20 +0300] rev 2375
clean etherlab: pep8, E203 whitespace before ','

Sat, 29 Sep 2018 13:04:33 +0300clean etherlab: pep8, E712 comparison to True should be 'if cond is True:' or 'if cond:'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 13:04:33 +0300] rev 2374
clean etherlab: pep8, E712 comparison to True should be 'if cond is True:' or 'if cond:'

Sat, 29 Sep 2018 12:55:56 +0300clean etherlab: pep8, E222 multiple spaces after operator
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 12:55:56 +0300] rev 2373
clean etherlab: pep8, E222 multiple spaces after operator

Sat, 29 Sep 2018 12:54:42 +0300clean etherlab: pep8, E741 ambiguous variable name 'l'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 12:54:42 +0300] rev 2372
clean etherlab: pep8, E741 ambiguous variable name 'l'

Sat, 29 Sep 2018 12:48:28 +0300cleanup etherlab: pep8, E306 expected 1 blank line before a nested definition, found X
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 12:48:28 +0300] rev 2371
cleanup etherlab: pep8, E306 expected 1 blank line before a nested definition, found X

Fri, 28 Sep 2018 19:30:16 +0300cleanup etherlab: pep8, E305 expected 2 blank lines after class or function definition, found X
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 28 Sep 2018 19:30:16 +0300] rev 2370
cleanup etherlab: pep8, E305 expected 2 blank lines after class or function definition, found X

Fri, 28 Sep 2018 19:25:18 +0300cleanup etherlab: pep8, E201 whitespace after '('
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 28 Sep 2018 19:25:18 +0300] rev 2369
cleanup etherlab: pep8, E201 whitespace after '('

Fri, 28 Sep 2018 19:22:14 +0300cleanup etherlab: pep8, E202 whitespace before ')'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 28 Sep 2018 19:22:14 +0300] rev 2368
cleanup etherlab: pep8, E202 whitespace before ')'

Fri, 28 Sep 2018 19:20:32 +0300cleanup etherlab: pep8, E227 missing whitespace around bitwise or shift operator
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 28 Sep 2018 19:20:32 +0300] rev 2367
cleanup etherlab: pep8, E227 missing whitespace around bitwise or shift operator

Fri, 28 Sep 2018 19:16:12 +0300cleanup etherlab: pep8, E251 unexpected spaces around keyword / parameter equals
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 28 Sep 2018 19:16:12 +0300] rev 2366
cleanup etherlab: pep8, E251 unexpected spaces around keyword / parameter equals

Fri, 28 Sep 2018 19:12:26 +0300cleanup etherlab: pep8, E225 missing whitespace around operator
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 28 Sep 2018 19:12:26 +0300] rev 2365
cleanup etherlab: pep8, E225 missing whitespace around operator

Fri, 28 Sep 2018 19:06:28 +0300cleanup etherlab: pep8, E303 too many blank lines (2)
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 28 Sep 2018 19:06:28 +0300] rev 2364
cleanup etherlab: pep8, E303 too many blank lines (2)

Fri, 28 Sep 2018 19:02:49 +0300cleanup etherlab: pep8, E231 missing whitespace after ','
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 28 Sep 2018 19:02:49 +0300] rev 2363
cleanup etherlab: pep8, E231 missing whitespace after ','

Fri, 28 Sep 2018 18:12:18 +0300cleanup etherlab: pep8, E271 multiple spaces after keyword
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 28 Sep 2018 18:12:18 +0300] rev 2362
cleanup etherlab: pep8, E271 multiple spaces after keyword

Fri, 28 Sep 2018 18:06:59 +0300cleanup etherlab: pep8, E261 at least two spaces before inline comment
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 28 Sep 2018 18:06:59 +0300] rev 2361
cleanup etherlab: pep8, E261 at least two spaces before inline comment

Fri, 28 Sep 2018 18:04:28 +0300cleanup etherlab: pep8, E302 expected 2 blank lines, found 1
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 28 Sep 2018 18:04:28 +0300] rev 2360
cleanup etherlab: pep8, E302 expected 2 blank lines, found 1

Fri, 28 Sep 2018 18:00:50 +0300cleanup etherlab: pep8, W293 blank line contains whitespace
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 28 Sep 2018 18:00:50 +0300] rev 2359
cleanup etherlab: pep8, W293 blank line contains whitespace

Fri, 28 Sep 2018 17:59:28 +0300cleanup etherlab: pep8, E228 missing whitespace around modulo operator
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 28 Sep 2018 17:59:28 +0300] rev 2358
cleanup etherlab: pep8, E228 missing whitespace around modulo operator

Fri, 28 Sep 2018 17:52:30 +0300cleanup etherlab: pep8, E401 multiple imports on one line
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 28 Sep 2018 17:52:30 +0300] rev 2357
cleanup etherlab: pep8, E401 multiple imports on one line

Fri, 28 Sep 2018 17:48:10 +0300cleanup etherlab: pep8, E265 block comment should start with '# '
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 28 Sep 2018 17:48:10 +0300] rev 2356
cleanup etherlab: pep8, E265 block comment should start with '# '

Fri, 28 Sep 2018 17:20:11 +0300cleanup etherlab: pep8, W291 trailing whitespace
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 28 Sep 2018 17:20:11 +0300] rev 2355
cleanup etherlab: pep8, W291 trailing whitespace

Fri, 28 Sep 2018 17:15:53 +0300convert some etherlab source files to unix format
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 28 Sep 2018 17:15:53 +0300] rev 2354
convert some etherlab source files to unix format

Fri, 28 Sep 2018 17:14:42 +0300cleanup etherlab: pep8, E722 do not use bare except
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 28 Sep 2018 17:14:42 +0300] rev 2353
cleanup etherlab: pep8, E722 do not use bare except

Fri, 28 Sep 2018 13:21:06 +0300Ignore cache files and generated test reports
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 28 Sep 2018 13:21:06 +0300] rev 2352
Ignore cache files and generated test reports

Fri, 28 Sep 2018 13:17:30 +0300Update Beremiz translations and list of translators
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 28 Sep 2018 13:17:30 +0300] rev 2351
Update Beremiz translations and list of translators

Added Turkish, Romania, Portuguese, Polish, Dutch, Hungarian.
Most existed translation are updated.

Fri, 28 Sep 2018 13:07:46 +0300Use the list of supported by app translations instead of supported translations by wx
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 28 Sep 2018 13:07:46 +0300] rev 2350
Use the list of supported by app translations instead of supported translations by wx

This will make possible to translate application into locales, that
are not explicitly supported by wx: for example, 'pl' or 'bn_BD', 'bn_IN'.

Fri, 28 Sep 2018 12:54:14 +0300Suppress message box in case current locale is unsupported or missing in wx
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 28 Sep 2018 12:54:14 +0300] rev 2349
Suppress message box in case current locale is unsupported or missing in wx

Beremiz can still be translated into it using own locales
available in './locale'.

Thu, 27 Sep 2018 19:07:57 +0300Add commands to pull translation from transifex
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 27 Sep 2018 19:07:57 +0300] rev 2348
Add commands to pull translation from transifex

tx - transifex cli client should be installed in the system.
It's free software and is available in Debian archive.

Run following commands:
1. Init your authorization token
$ make transifex_init

2. Pull translations
$ make transifex_pull

Wed, 26 Sep 2018 18:08:57 +0300Add custom dialog to add/edit comment block in graphical editors
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 26 Sep 2018 18:08:57 +0300] rev 2347
Add custom dialog to add/edit comment block in graphical editors

That allows to edit comment and immediately see how it'll be shown on wiresheet.

Wed, 26 Sep 2018 14:20:51 +0300Cleanup examples so they look clean, nice and almost the same on Windows and GNU/Linux
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 26 Sep 2018 14:20:51 +0300] rev 2346
Cleanup examples so they look clean, nice and almost the same on Windows and GNU/Linux

Wed, 26 Sep 2018 14:15:22 +0300use the same font size on Windows and GNU/Linux
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 26 Sep 2018 14:15:22 +0300] rev 2345
use the same font size on Windows and GNU/Linux

Wed, 26 Sep 2018 12:13:23 +0300use nice and pretty mono font in graphical languages (SFC, FBD, LD) as well
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 26 Sep 2018 12:13:23 +0300] rev 2344
use nice and pretty mono font in graphical languages (SFC, FBD, LD) as well

it looks like that was original idea, but some bug squashed in and
default font was used for POU.

at the same time fix use of mono font in the header of Variable panel
for SFC/FBD/LD POUs.

Tue, 25 Sep 2018 19:00:03 +0300Don't need to call extra _init_
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 25 Sep 2018 19:00:03 +0300] rev 2343
Don't need to call extra _init_

_init_ is already called for value in infos["elmt_type"]["initial"]().
Additional _init_() creates second set of child element and that
creates unusable xml project.
This regression cause by not well tested commit "Proper fix for error
'object has no attribute 'getSlave' in EtherCAT extension" (96ca6b056c55595f71bfaca9f54b9e8646460c23)

Tue, 25 Sep 2018 18:31:17 +0300Fix black background in preview window
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 25 Sep 2018 18:31:17 +0300] rev 2342
Fix black background in preview window

Problem found and fixed on GNU/Linux
wxWidgets 3.0 built with GTK3+ support and running on Xorg.

Tue, 25 Sep 2018 18:29:10 +0300Avoid division by zero in case width or height for page are not specified
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 25 Sep 2018 18:29:10 +0300] rev 2341
Avoid division by zero in case width or height for page are not specified

traceback:
File "/home/developer/WorkData/PLC/beremiz/beremiz/editors/Viewer.py", line 3755, in OnPaint
self.DoDrawing(dc)
File "/home/developer/WorkData/PLC/beremiz/beremiz/editors/Viewer.py", line 3723, in DoDrawing
for y in xrange(self.PageSize[1] - (ystart * SCROLLBAR_UNIT) % self.PageSize[1], int(window_size[1] / self.ViewScale[1]), self.PageSize[1]):
<type 'exceptions.ZeroDivisionError'>: integer division or modulo by zero

Wed, 21 Nov 2018 14:10:51 +0100IDManager: added import/export plus little cosmetic enhancements.
Edouard Tisserant [Wed, 21 Nov 2018 14:10:51 +0100] rev 2340
IDManager: added import/export plus little cosmetic enhancements.

Tue, 20 Nov 2018 11:32:42 +0100IDManager : refactored a bit, moved some code into PSKManagement.py. Now captures URI and PSK on new PYRO(S) and propose them when editing URI. Import/export still to be implemented.
Edouard Tisserant [Tue, 20 Nov 2018 11:32:42 +0100] rev 2339
IDManager : refactored a bit, moved some code into PSKManagement.py. Now captures URI and PSK on new PYRO(S) and propose them when editing URI. Import/export still to be implemented.

Mon, 19 Nov 2018 10:39:50 +0100Renaming servicetype into scheme.
Edouard Tisserant [Mon, 19 Nov 2018 10:39:50 +0100] rev 2338
Renaming servicetype into scheme.

Fri, 16 Nov 2018 14:04:51 +0100Added toolbar button to launch ID Manager dialog.
Edouard Tisserant [Fri, 16 Nov 2018 14:04:51 +0100] rev 2337
Added toolbar button to launch ID Manager dialog.

Fri, 16 Nov 2018 10:00:06 +0100Renamed IDManager control into IDBrowser, because dialog will be named IDManager
Edouard Tisserant [Fri, 16 Nov 2018 10:00:06 +0100] rev 2336
Renamed IDManager control into IDBrowser, because dialog will be named IDManager

Wed, 14 Nov 2018 14:09:18 +0100IDManager.py : finished selector mode.
Edouard Tisserant [Wed, 14 Nov 2018 14:09:18 +0100] rev 2335
IDManager.py : finished selector mode.

Wed, 14 Nov 2018 11:32:08 +0100Added early implementation of IDManager.py. For now only used to select ID in URIEditor
Edouard Tisserant [Wed, 14 Nov 2018 11:32:08 +0100] rev 2334
Added early implementation of IDManager.py. For now only used to select ID in URIEditor

Fri, 09 Nov 2018 13:26:06 +0100Path may contain spaces... sequel of d1359cb
Edouard Tisserant [Fri, 09 Nov 2018 13:26:06 +0100] rev 2333
Path may contain spaces... sequel of d1359cb

Thu, 08 Nov 2018 14:33:35 +0100'Merged' URI editor dialog and Discovery dialog, also clean up related code
Edouard Tisserant [Thu, 08 Nov 2018 14:33:35 +0100] rev 2332
'Merged' URI editor dialog and Discovery dialog, also clean up related code

Thu, 08 Nov 2018 11:20:35 +0100Cut more useless code from URI Editor
Edouard Tisserant [Thu, 08 Nov 2018 11:20:35 +0100] rev 2331
Cut more useless code from URI Editor

Thu, 08 Nov 2018 11:14:06 +0100URI Editor Dialog : moved it to /dialog, and fixed naming.
Edouard Tisserant [Thu, 08 Nov 2018 11:14:06 +0100] rev 2330
URI Editor Dialog : moved it to /dialog, and fixed naming.

Thu, 08 Nov 2018 09:39:06 +0100URI editor : Rewrote most of it, cleaner.
Edouard Tisserant [Thu, 08 Nov 2018 09:39:06 +0100] rev 2329
URI editor : Rewrote most of it, cleaner.

Tue, 30 Oct 2018 14:08:28 +0100PSK : Stunnel and/or OpenSSL (undocumented) handles PSK better without special chars, apparently
Edouard Tisserant [Tue, 30 Oct 2018 14:08:28 +0100] rev 2328
PSK : Stunnel and/or OpenSSL (undocumented) handles PSK better without special chars, apparently

Tue, 30 Oct 2018 13:47:24 +0100Prevent PLCObject to be imported from IDE as a side effect of importing runtime package
Edouard Tisserant [Tue, 30 Oct 2018 13:47:24 +0100] rev 2327
Prevent PLCObject to be imported from IDE as a side effect of importing runtime package

Tue, 30 Oct 2018 09:46:46 +0100WAMP : ensure that unicode string is passed for published events IDs
Edouard Tisserant [Tue, 30 Oct 2018 09:46:46 +0100] rev 2326
WAMP : ensure that unicode string is passed for published events IDs

Tue, 30 Oct 2018 09:45:47 +0100PYRO PSK: adjusted cipher and key length to be usable with openSSL 1.0.2k.
Edouard Tisserant [Tue, 30 Oct 2018 09:45:47 +0100] rev 2325
PYRO PSK: adjusted cipher and key length to be usable with openSSL 1.0.2k.

Mon, 29 Oct 2018 11:33:36 +0100Automatically get PSK and ID when connecting to PYRO[S], so that future connection through PYROS can use that same key. Also fixed case to UPPER for *PSK.
Edouard Tisserant [Mon, 29 Oct 2018 11:33:36 +0100] rev 2324
Automatically get PSK and ID when connecting to PYRO[S], so that future connection through PYROS can use that same key. Also fixed case to UPPER for *PSK.

Tue, 23 Oct 2018 16:19:20 +0200Runtime : Ensure that a random PSK secret compatible with stunnel is generated if -s commandline switch is used. Stunnel service is restarted after generation, using spawn_subprocess. TODO : give stunnel restart command as a commandline parameter.
Edouard Tisserant [Tue, 23 Oct 2018 16:19:20 +0200] rev 2323
Runtime : Ensure that a random PSK secret compatible with stunnel is generated if -s commandline switch is used. Stunnel service is restarted after generation, using spawn_subprocess. TODO : give stunnel restart command as a commandline parameter.

Tue, 23 Oct 2018 16:13:34 +0200Added runtime/spawn_subprocess.py. Force use posix spawn instead of fork, with API similar to subprocess. Using fork in runtime is incompatible with Xenomai, because memory is locked and this can lead to out of memory error.
Edouard Tisserant [Tue, 23 Oct 2018 16:13:34 +0200] rev 2322
Added runtime/spawn_subprocess.py. Force use posix spawn instead of fork, with API similar to subprocess. Using fork in runtime is incompatible with Xenomai, because memory is locked and this can lead to out of memory error.

Tue, 23 Oct 2018 13:36:07 +0200Small cosmetic change to enhance readability and avoid confusion.
Edouard Tisserant [Tue, 23 Oct 2018 13:36:07 +0200] rev 2321
Small cosmetic change to enhance readability and avoid confusion.

Tue, 23 Oct 2018 13:34:15 +0200Force Zeroconf to listen and answer only on interface specified with '-i' command line argument.
Edouard Tisserant [Tue, 23 Oct 2018 13:34:15 +0200] rev 2320
Force Zeroconf to listen and answer only on interface specified with '-i' command line argument.

Tue, 23 Oct 2018 13:31:26 +0200Useless __name__ == '__main__' tests.
Edouard Tisserant [Tue, 23 Oct 2018 13:31:26 +0200] rev 2319
Useless __name__ == '__main__' tests.

Mon, 22 Oct 2018 12:58:10 +0200Fixed PYRO's PSK_Adapter : monkey patching was breaking non-PSK protocol, and import ssl was missing.
Edouard Tisserant [Mon, 22 Oct 2018 12:58:10 +0200] rev 2318
Fixed PYRO's PSK_Adapter : monkey patching was breaking non-PSK protocol, and import ssl was missing.

Fri, 19 Oct 2018 13:34:52 +0200merge
Edouard Tisserant [Fri, 19 Oct 2018 13:34:52 +0200] rev 2317
merge

Fri, 19 Oct 2018 13:29:52 +0200Fix PYROPSK protocol configuration. After a few iteration of trial and error it appears that TSLv1 and PSK ciphers needs to be specified
Edouard Tisserant [Fri, 19 Oct 2018 13:29:52 +0200] rev 2316
Fix PYROPSK protocol configuration. After a few iteration of trial and error it appears that TSLv1 and PSK ciphers needs to be specified

Thu, 18 Oct 2018 18:37:01 +0200merge
Edouard Tisserant <edouard.tisserant@gmail.com> [Thu, 18 Oct 2018 18:37:01 +0200] rev 2315
merge

Thu, 18 Oct 2018 13:17:48 +0200PYRO/TLSPSK : must use PYROLOC* protocol scheme in pyro URI, otherwise object ID is missing. Had to use more persuasive pyro3 monkey patching to have PYROLOCPSK resolved properly
Edouard Tisserant [Thu, 18 Oct 2018 13:17:48 +0200] rev 2314
PYRO/TLSPSK : must use PYROLOC* protocol scheme in pyro URI, otherwise object ID is missing. Had to use more persuasive pyro3 monkey patching to have PYROLOCPSK resolved properly

Thu, 18 Oct 2018 11:01:14 +0200PYRO/TLSPSK : fixed typos, used appropriate ciphers (https://github.com/drbild/sslpsk/issues/3), use PYROPSK instead of unresolvable PYROLOCPSK.
Edouard Tisserant [Thu, 18 Oct 2018 11:01:14 +0200] rev 2313
PYRO/TLSPSK : fixed typos, used appropriate ciphers (https://github.com/drbild/sslpsk/issues/3), use PYROPSK instead of unresolvable PYROLOCPSK.

Mon, 15 Oct 2018 16:26:59 +0200Replaced PYROSSL with PYROPSK.
Edouard Tisserant [Mon, 15 Oct 2018 16:26:59 +0200] rev 2312
Replaced PYROSSL with PYROPSK.
Secrets are files named $ID.secret in project's /psk directory.
Connect with URI formated PYROPSK://host[:port]#ID

Mon, 15 Oct 2018 15:27:47 +0200Beremiz_service now binds both pyro and nevow ports to interface given with '-i' argument.
Edouard Tisserant [Mon, 15 Oct 2018 15:27:47 +0200] rev 2311
Beremiz_service now binds both pyro and nevow ports to interface given with '-i' argument.

Mon, 15 Oct 2018 15:24:52 +0200Fixed typo in Wampclient.py
Edouard Tisserant [Mon, 15 Oct 2018 15:24:52 +0200] rev 2310
Fixed typo in Wampclient.py

Wed, 03 Oct 2018 00:05:32 +0200Please pylint and pep8
Edouard Tisserant <edouard.tisserant@gmail.com> [Wed, 03 Oct 2018 00:05:32 +0200] rev 2309
Please pylint and pep8

Tue, 02 Oct 2018 15:57:26 +0200Merged
Edouard Tisserant [Tue, 02 Oct 2018 15:57:26 +0200] rev 2308
Merged

Tue, 02 Oct 2018 15:56:09 +0200Show more exceptions on stdout, particularly those that are raised by AutoLoad (first item in Main Thread worker)
Edouard Tisserant [Tue, 02 Oct 2018 15:56:09 +0200] rev 2307
Show more exceptions on stdout, particularly those that are raised by AutoLoad (first item in Main Thread worker)

Tue, 02 Oct 2018 15:52:11 +0200Some cleanup in WampClient and added functions that are usefull for extensions that need to use pub/sub.
Edouard Tisserant [Tue, 02 Oct 2018 15:52:11 +0200] rev 2306
Some cleanup in WampClient and added functions that are usefull for extensions that need to use pub/sub.

Wed, 12 Sep 2018 22:59:30 +0200Merged in Andrey's branch
Edouard Tisserant <edouard.tisserant@gmail.com> [Wed, 12 Sep 2018 22:59:30 +0200] rev 2305
Merged in Andrey's branch

Fri, 07 Sep 2018 20:58:13 +0000Merged in yegorich/beremiz/py3-fix (pull request #36)
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 07 Sep 2018 20:58:13 +0000] rev 2304
Merged in yegorich/beremiz/py3-fix (pull request #36)

Use Python 3 compatible syntax for exceptions

Fri, 07 Sep 2018 09:24:52 +0200Use Python 3 compatible syntax for exceptions py3-fix
Yegor Yefremov <yegorslists@googlemail.com> [Fri, 07 Sep 2018 09:24:52 +0200] rev 2303
Use Python 3 compatible syntax for exceptions

Wed, 29 Aug 2018 18:58:51 +0300Fix non-usable toolbar on wxPython with GTK3+ in PLCOpenEditor
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 29 Aug 2018 18:58:51 +0300] rev 2302
Fix non-usable toolbar on wxPython with GTK3+ in PLCOpenEditor

this problem is related to 'Fix non-usable toolbar on wxPython with
GTK3+' (5927710b). This problem does not happen in Beremiz because
additional necessary self.AUIManager.Update() is called
BeremizIDE. Therefore minimal change in the mentioned commit was
enough for Beremiz, but is not enough for PLCOpenEditor.

Wed, 29 Aug 2018 18:53:02 +0300Avoid usage of localized strings before initialization during import in many modules
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 29 Aug 2018 18:53:02 +0300] rev 2301
Avoid usage of localized strings before initialization during import in many modules

This happens if import is done before i18n setup
(InstallLocalRessources()).
This affects PLCOpenEditor mostly. Beremiz IDE is free from this issue, but moving
initialization from import should make modules more robust.
Otherwise execution result depends on where and when import was done
and this is not a good thing.

Some modules (ConfigTreeNode, features, CodeFileEditor related
classes) still have this, but they are used only in Beremiz.
Most problems result in non-working internatialization.
In some cases (VariablePanel) there is backtrace, because localized
key is not found in non-localized dictionary.

Tue, 28 Aug 2018 18:06:30 +0300Remove executable bit from source files where it's not needed.
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 28 Aug 2018 18:06:30 +0300] rev 2300
Remove executable bit from source files where it's not needed.

Tue, 28 Aug 2018 17:19:13 +0300Avoid dictionary initialization during import in PouDialog
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 28 Aug 2018 17:19:13 +0300] rev 2299
Avoid dictionary initialization during import in PouDialog

Because initialization happened before i18n setup, then it causes later
problems during creating new POU on non-English locales (Russian for example).

Traceback (most recent call last):
File "/home/developer/WorkData/PLC/beremiz/beremiz/IDEFrame.py", line 2332, in OnAddPouMenu
dialog = PouDialog(self, pou_type, type_readonly)
File "/home/developer/WorkData/PLC/beremiz/beremiz/dialogs/PouDialog.py", line 101, in __init__
self.RefreshLanguage()
File "/home/developer/WorkData/PLC/beremiz/beremiz/dialogs/PouDialog.py", line 154, in RefreshLanguage
if language != "SFC" or PouDialog.POU_TYPES_DICT[self.PouType.GetStringSelection()] != "function":
KeyError: u'\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430'

Mon, 27 Aug 2018 12:06:24 +0300Increase size of comment block in WAMP example, so all information is visible
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 27 Aug 2018 12:06:24 +0300] rev 2298
Increase size of comment block in WAMP example, so all information is visible

Fri, 24 Aug 2018 13:41:43 +0300Proper fix for error 'object has no attribute 'getSlave' in EtherCAT extension
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 24 Aug 2018 13:41:43 +0300] rev 2297
Proper fix for error 'object has no attribute 'getSlave' in EtherCAT extension

traceback:
File "/home/developer/WorkData/PLC/beremiz/beremiz/IDEFrame.py", line 1433, in OnPouSelectedChanged
window.RefreshView()
File "/home/developer/WorkData/PLC/beremiz/beremiz/etherlab/ConfigEditor.py", line 837, in RefreshView
self.RefreshProcessVariables()
File "/home/developer/WorkData/PLC/beremiz/beremiz/etherlab/ConfigEditor.py", line 886, in RefreshProcessVariables
slaves = self.Controler.GetSlaves(**self.CurrentNodesFilter)
File "/home/developer/WorkData/PLC/beremiz/beremiz/etherlab/EthercatMaster.py", line 341, in GetSlaves
for slave in self.Config.getConfig().getSlave():
<type 'exceptions.AttributeError'>:_'lxml.etree._Element'_object_has_no_attribute_'getSlave'

Steps to reproduce problem:

- Add new EtherCAT master
- Add new EthercatNode to the master
- double click on


Revert commit "Dirty fix for error '_object_has_no_attribute_'getSlave' in EtherCAT extension"
[a3ac46366b86a0b237dac93be6b2281ac70b98a8].

The problem was that XML elements (proxy object) in some cases were created using custom XML
classes constructors and lxml.etree.Element() call and live python
patching. This causes that lxml backend doesn't know that custom python class
should be used for these XML elements.
Proxy object can be move/deleted and recreated by lxml
backend at any point in time or this can be done in python by copy/deepcopy operations.
If this happens, then newly created
proxy elements are using default class lxml.etree._Element. And all
custom functionality is lost.

All created XML elements should be always created through corresponding
parser and class lookup callback done by lxml backend.
It's described in more details in lxml documentation:
https://lxml.de/element_classes.html

Fri, 24 Aug 2018 13:25:05 +0300Make comment blocks in examples slightly bigger so text inside is always visible
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 24 Aug 2018 13:25:05 +0300] rev 2296
Make comment blocks in examples slightly bigger so text inside is always visible

Tue, 21 Aug 2018 13:05:23 +0300Separate application tests and code-style checking in different steps in bitbucket-pipelines
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 21 Aug 2018 13:05:23 +0300] rev 2295
Separate application tests and code-style checking in different steps in bitbucket-pipelines

Mon, 20 Aug 2018 17:11:20 +0300Make Beremiz_service print version information
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 20 Aug 2018 17:11:20 +0300] rev 2294
Make Beremiz_service print version information

Add support for long options '--help' and '--version' as
is recommended by GNU Coding Standards.

Mon, 20 Aug 2018 16:46:50 +0300leave execute permissions only on Beremiz.py, Beremiz_serivce.py and PLCOpenEditor.py
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 20 Aug 2018 16:46:50 +0300] rev 2293
leave execute permissions only on Beremiz.py, Beremiz_serivce.py and PLCOpenEditor.py

Mon, 20 Aug 2018 15:48:06 +0300Update requirements to include WAMP support
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 20 Aug 2018 15:48:06 +0300] rev 2292
Update requirements to include WAMP support

Mon, 20 Aug 2018 15:17:24 +0300Use static library for Modbus
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 20 Aug 2018 15:17:24 +0300] rev 2291
Use static library for Modbus

It makes easier deployment of projects with Modbus (similar to BACnet implementation)

Thu, 16 Aug 2018 16:29:06 +0300Cleanup WAMP example
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 16 Aug 2018 16:29:06 +0300] rev 2290
Cleanup WAMP example

Closes #39

Thu, 16 Aug 2018 13:42:18 +0300Update README for WAMP example to use crossbar with python3
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 16 Aug 2018 13:42:18 +0300] rev 2289
Update README for WAMP example to use crossbar with python3

crossbar python2 support is broken in v18.7.2.
I've submitted with fixes for that.
https://github.com/crossbario/crossbar/pull/1376

But they don't test crossbar with python2 in CI, so it's going to be
broken again in the future.
And there is no much reason to use crossbar with python2.

Thu, 16 Aug 2018 11:01:54 +0300Make ID in WAMP project match with ID PLC runtime.
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 16 Aug 2018 11:01:54 +0300] rev 2288
Make ID in WAMP project match with ID PLC runtime.

See project_files/wampconf.json. ID for runtime is "wamptest". The
same id should be used in project's location URI: WAMP://127.0.0.1:8888#Automation#wamptest

Thu, 16 Aug 2018 10:53:54 +0300Fix SetServer method in WAMP
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 16 Aug 2018 10:53:54 +0300] rev 2287
Fix SetServer method in WAMP

Thu, 16 Aug 2018 10:52:20 +0300Remove non-existed PLCObject method 'ForceReload'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 16 Aug 2018 10:52:20 +0300] rev 2286
Remove non-existed PLCObject method 'ForceReload'

Tue, 14 Aug 2018 17:00:01 +0300remote execute permissions from README file
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 14 Aug 2018 17:00:01 +0300] rev 2285
remote execute permissions from README file

Mon, 13 Aug 2018 18:29:07 +0300Fix wxHMI example after upgrading wxGlade
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 13 Aug 2018 18:29:07 +0300] rev 2284
Fix wxHMI example after upgrading wxGlade

Newer wxGlade generates code to initialize GridSizer's with empty
elements.

...
grid_sizer_1.Add(self.window_1, 1, wx.ALIGN_CENTER, 0)
sizer_2.Add((0, 0), 0, 0, 0)
sizer_2.Add((0, 0), 0, 0, 0)
sizer_2.Add((0, 0), 0, 0, 0)
sizer_2.Add((0, 0), 0, 0, 0)
...

That causes following traceback, if new buttons are added
to already full sizer.

PLCobject : Traceback (most recent call last):

File "./Beremiz_service.py", line 389, in default_evaluator
res = (tocall(*args, **kwargs), None)

File "/tmp/tmpQS8ct2/runtime_0.py", line 540, in _runtime_0_start
wx.MessageBox(_("Please stop PLC to close"))

File "/tmp/tmpQS8ct2/runtime_0.py", line 504, in Init
lambda axis:( MakeButtonFunc(self, sizer, axis+"axisMinus"),

File "/tmp/tmpQS8ct2/runtime_0.py", line 502, in <lambda>
lambda btname: MakeButtonFunc(self, sizer, btname), ActionButtons)

File "/tmp/tmpQS8ct2/runtime_0.py", line 461, in MakeButtonFunc
print sizer, btname

File "/usr/lib/python2.7/dist-packages/wx-3.0-gtk3/wx/_core.py", line 14453, in Add
return _core_.Sizer_Add(*args, **kwargs)

PyAssertionError: C++ assertion "Assert failure" failed at
../src/common/sizer.cpp(1401) in DoInsert(): too many items (11 > 2*5)
in grid sizer (maybe you should omit the number of either rows or
columns?)


Tested with wxGlade version 0.8.3
Closes #41

Mon, 13 Aug 2018 18:21:10 +0300Remove useless print statement from wxHMI GUI code
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 13 Aug 2018 18:21:10 +0300] rev 2283
Remove useless print statement from wxHMI GUI code

It's py3k incompatible.

Mon, 13 Aug 2018 18:19:17 +0300Rename extension instance 'wxHMI' to 'wxglade_hmi'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 13 Aug 2018 18:19:17 +0300] rev 2282
Rename extension instance 'wxHMI' to 'wxglade_hmi'

It is necessary because of following commit 7f59aa398669 ('WxGlade HMI extension now does
only instanciate wx object who's name match extension's name. If no
object match the name and no code is provided in 'start' user python
code section, then a warning is issued')

Mon, 13 Aug 2018 18:05:16 +0300Remove backup .bak files
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 13 Aug 2018 18:05:16 +0300] rev 2281
Remove backup .bak files

Mon, 13 Aug 2018 11:33:30 +0300Drop EtherCAT examples, because they are non-functional without releasing motion control library
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 13 Aug 2018 11:33:30 +0300] rev 2280
Drop EtherCAT examples, because they are non-functional without releasing motion control library

Closes #38

Fri, 10 Aug 2018 18:07:38 +0300merge
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 10 Aug 2018 18:07:38 +0300] rev 2279
merge

Fri, 10 Aug 2018 17:45:33 +0300Dirty fix for error '_object_has_no_attribute_'getSlave' in EtherCAT extension
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 10 Aug 2018 17:45:33 +0300] rev 2278
Dirty fix for error '_object_has_no_attribute_'getSlave' in EtherCAT extension

traceback:
File "/home/developer/WorkData/PLC/beremiz/beremiz/IDEFrame.py", line 1433, in OnPouSelectedChanged
window.RefreshView()
File "/home/developer/WorkData/PLC/beremiz/beremiz/etherlab/ConfigEditor.py", line 837, in RefreshView
self.RefreshProcessVariables()
File "/home/developer/WorkData/PLC/beremiz/beremiz/etherlab/ConfigEditor.py", line 886, in RefreshProcessVariables
slaves = self.Controler.GetSlaves(**self.CurrentNodesFilter)
File "/home/developer/WorkData/PLC/beremiz/beremiz/etherlab/EthercatMaster.py", line 341, in GetSlaves
for slave in self.Config.getConfig().getSlave():
<type 'exceptions.AttributeError'>:_'lxml.etree._Element'_object_has_no_attribute_'getSlave'

Steps to reproduce problem:

- Add new EtherCAT master
- Add new EthercatNode to the master
- double click on


this is looks like dirty hack to fix strange problem with initial[0]
changing its type after returning from _init_ method to lxml.etree._Element
As a result all methods generated by class factory are lost.

For example, in function initMethod initial[0].__class__ points to
xmlclass.xmlclass.Config. After map(self.append, initial)
self.Config.__class__ is 'xmlclass.xmlclass.Config' as well.
But after returning from initMethod (_init) in CreateElement
self.Config.__class__ has changed to lxml.etree._Element.


I've noticed similar behavior if copy/deepcopy is used for any child
of etree.ElementBase. See simple example below.
[-------------------------------------------------------------]
#!/usr/bin/python

from __future__ import print_function
from lxml import etree
import copy

class DefaultElementClass(etree.ElementBase):
def getLocalTag(self):
return etree.QName(self.tag).localname


def printInformation(x):
print(x, x.__class__, "getLocalTag" in dir(x))


a = DefaultElementClass()
printInformation(a)

#
printInformation(copy.copy(a))
printInformation(copy.deepcopy(a))
[-------------------------------------------------------------]

Fri, 10 Aug 2018 15:58:40 +0300Fix wrong ST code generation in case of several coils connected to each other.
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 10 Aug 2018 15:58:40 +0300] rev 2277
Fix wrong ST code generation in case of several coils connected to each other.


For example,
|---|Var0|----(Var1)--(Var2)---|

Closes #32

Thu, 09 Aug 2018 14:00:14 +0300Update README with instruction to build BACnet library for BACnet support
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 09 Aug 2018 14:00:14 +0300] rev 2276
Update README with instruction to build BACnet library for BACnet support

Thu, 09 Aug 2018 13:58:47 +0300Improve fix wrong code generation if EN/ENO are used in FBD/LD/SFC
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 09 Aug 2018 13:58:47 +0300] rev 2275
Improve fix wrong code generation if EN/ENO are used in FBD/LD/SFC

Commit c9915bc6 "Fix wrong code generation if EN/ENO are used in
FBD/LD/SFC" caused following backtrace in some cases:

File "/home/developer/WorkData/PLC/beremiz/beremiz/PLCGenerator.py", line 476, in GenerateProgram
self.GeneratePouProgram(pou_name)
File "/home/developer/WorkData/PLC/beremiz/beremiz/PLCGenerator.py", line 258, in GeneratePouProgram
program = pou_program.GenerateProgram(pou)
File "/home/developer/WorkData/PLC/beremiz/beremiz/PLCGenerator.py", line 1713, in GenerateProgram
self.ComputeProgram(pou)
File "/home/developer/WorkData/PLC/beremiz/beremiz/PLCGenerator.py", line 997, in ComputeProgram
eno_var = self.GetUsedEno(body, connections)
File "/home/developer/WorkData/PLC/beremiz/beremiz/PLCGenerator.py", line 929, in GetUsedEno
for invar in blk.inputVariables.getvariable():
File "/home/developer/WorkData/PLC/beremiz/beremiz/xmlclass/xmlclass.py", line 1363, in getattrMethod
return DefaultElementClass.__getattribute__(self, name)
<type 'exceptions.AttributeError'>: 'inOutVariable' object has no attribute 'inputVariables'

Wed, 01 Aug 2018 14:09:12 +0300Load images for EtherCAT extension
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 01 Aug 2018 14:09:12 +0300] rev 2274
Load images for EtherCAT extension

Fixes following backtrace:

Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/wx-3.0-gtk3/wx/_core.py", line 16765, in <lambda>
lambda event: event.callable(*event.args, **event.kw) )
File "/home/developer/WorkData/PLC/beremiz/beremiz/BeremizIDE.py", line 1074, in AddConfNode
self._Refresh(TITLE, FILEMENU, PROJECTTREE)
File "/home/developer/WorkData/PLC/beremiz/beremiz/IDEFrame.py", line 917, in _Refresh
self.RefreshFunctions[element]()
File "/home/developer/WorkData/PLC/beremiz/beremiz/IDEFrame.py", line 1526, in RefreshProjectTree
self.GenerateProjectTreeBranch(root, infos)
File "/home/developer/WorkData/PLC/beremiz/beremiz/IDEFrame.py", line 1565, in GenerateProjectTreeBranch
self.GenerateProjectTreeBranch(item, values)
File "/home/developer/WorkData/PLC/beremiz/beremiz/IDEFrame.py", line 1554, in GenerateProjectTreeBranch
self.TreeImageDict[icon_name] = self.TreeImageList.Add(GetBitmap(icon_name))
File "/usr/lib/python2.7/dist-packages/wx-3.0-gtk3/wx/_gdi.py", line 6735, in Add
return _gdi_.ImageList_Add(*args, **kwargs)
ValueError: invalid null reference in method 'ImageList_Add', expected argument 2 of type 'wxBitmap const &

Wed, 12 Sep 2018 11:36:50 +0200Flush standard output when runtime ready, so that IDE knows it, and can continue connection to LOCAL:// uri
Edouard Tisserant [Wed, 12 Sep 2018 11:36:50 +0200] rev 2273
Flush standard output when runtime ready, so that IDE knows it, and can continue connection to LOCAL:// uri

Tue, 11 Sep 2018 16:08:21 +0200Change behaviour of python_eval function block : if TRIG is false, then ACK is also false except a pulse precisely when receiving answer from interpreter
Edouard Tisserant [Tue, 11 Sep 2018 16:08:21 +0200] rev 2272
Change behaviour of python_eval function block : if TRIG is false, then ACK is also false except a pulse precisely when receiving answer from interpreter

Wed, 05 Sep 2018 12:58:41 +0200Removed useless condition in Worker.py that was allowing misfit non-serialized call when worker still not running its loop.
Edouard Tisserant [Wed, 05 Sep 2018 12:58:41 +0200] rev 2271
Removed useless condition in Worker.py that was allowing misfit non-serialized call when worker still not running its loop.

Tue, 21 Aug 2018 16:11:02 +0200Refactoring. Separated PLC Object, PYRO Server and MainWorker :
Edouard Tisserant [Tue, 21 Aug 2018 16:11:02 +0200] rev 2270
Refactoring. Separated PLC Object, PYRO Server and MainWorker :
- PLC Object is now a Singleton, instantiated through runtime.CreatePLCObjectSingleton(...)
- Pyro server doesn't hold any reference to PLCObject, and doesn't create it anymore
- PLC Object class doesn't inherit from Pyro.ObjBase anymore
- Pyro related code moved to runtime.PyroServer.py
- MainWorker class moved to runtime/Worker.py
- Both PLC Object and MainWorker creation happens in runtime/__init__.py

Thu, 16 Aug 2018 11:22:40 +0200Fixed new code-generation code, that was making exception with simple variable-to-variable assignments.
Edouard Tisserant [Thu, 16 Aug 2018 11:22:40 +0200] rev 2269
Fixed new code-generation code, that was making exception with simple variable-to-variable assignments.

Tue, 14 Aug 2018 13:10:15 +0200BACnet : Fixed missing header include in server.c introduced in 37ef7a3c6b8b
Edouard Tisserant [Tue, 14 Aug 2018 13:10:15 +0200] rev 2268
BACnet : Fixed missing header include in server.c introduced in 37ef7a3c6b8b

Tue, 14 Aug 2018 12:43:43 +0200merged
Edouard Tisserant [Tue, 14 Aug 2018 12:43:43 +0200] rev 2267
merged

Tue, 14 Aug 2018 11:14:20 +0200NevowServer : Added minimalist css style customization and a link to go to settings page and back
dporopat <denis.poropat@smarteh.si> [Tue, 14 Aug 2018 11:14:20 +0200] rev 2266
NevowServer : Added minimalist css style customization and a link to go to settings page and back

Mon, 13 Aug 2018 15:00:51 +0200fixed setServer call in WampClient module. Was doing nothing because _PySrv wasn't global.
Edouard Tisserant [Mon, 13 Aug 2018 15:00:51 +0200] rev 2265
fixed setServer call in WampClient module. Was doing nothing because _PySrv wasn't global.

Mon, 13 Aug 2018 14:58:59 +0200Removed now deprecated ForceReload from WAMP exposed calls
Edouard Tisserant [Mon, 13 Aug 2018 14:58:59 +0200] rev 2264
Removed now deprecated ForceReload from WAMP exposed calls

Mon, 13 Aug 2018 13:24:48 +0200fixed documentation bug
Edouard Tisserant [Mon, 13 Aug 2018 13:24:48 +0200] rev 2263
fixed documentation bug

Mon, 13 Aug 2018 13:24:28 +0200NevowServer : added addInfoString to allow extensions to declare some read-only strings to be displayed in settings. Also renamed addExtension in addSettings for clarity.
Edouard Tisserant [Mon, 13 Aug 2018 13:24:28 +0200] rev 2262
NevowServer : added addInfoString to allow extensions to declare some read-only strings to be displayed in settings. Also renamed addExtension in addSettings for clarity.

Mon, 13 Aug 2018 11:10:23 +0200fixed problems reported by certification testing : vendor identifier acces rights (now read only), and bvlc_maintenance timer was increasing too fast.
Mario de Sousa <msousa@fe.up.pt> [Mon, 13 Aug 2018 11:10:23 +0200] rev 2261
fixed problems reported by certification testing : vendor identifier acces rights (now read only), and bvlc_maintenance timer was increasing too fast.

Thu, 09 Aug 2018 09:07:09 +0200Some blank lines to make bitbucket's PEP8 2.2.0 happy
Edouard Tisserant [Thu, 09 Aug 2018 09:07:09 +0200] rev 2260
Some blank lines to make bitbucket's PEP8 2.2.0 happy

Wed, 08 Aug 2018 13:46:19 +0200merged Andrey's default
Edouard Tisserant [Wed, 08 Aug 2018 13:46:19 +0200] rev 2259
merged Andrey's default

Wed, 01 Aug 2018 13:09:45 +0300Fix wrong code generation if EN/ENO are used in FBD/LD/SFC
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 01 Aug 2018 13:09:45 +0300] rev 2258
Fix wrong code generation if EN/ENO are used in FBD/LD/SFC

This problem appears for example here

--------
------- | MOVE |
| MOVE1 |------|EN ENO|
------- | |
| |
------- | | -----------
| 23 |------|IN OUT|---| LocalVar0 |
------- -------- -----------


--------
------- | MOVE |
| MOVE2 |------|EN ENO|
------- | |
| |
------- | | -----------
| 15 |------|IN OUT|---| LocalVar0 |
------- -------- -----------

Before wrong code was generated for this case:

MOVE6_OUT := MOVE(EN := move1, IN := 23, ENO => MOVE6_ENO);
LocalVar0 := MOVE6_OUT;
MOVE4_OUT := MOVE(EN := move2, IN := 15, ENO => MOVE4_ENO);
LocalVar0 := MOVE4_OUT;

With this patch now following code is generated:

MOVE6_OUT := MOVE(EN := move1, IN := 23, ENO => MOVE6_ENO);
IF MOVE6_ENO THEN
LocalVar0 := MOVE6_OUT;
END_IF;
MOVE4_OUT := MOVE(EN := move2, IN := 15, ENO => MOVE4_ENO);
IF MOVE4_ENO THEN
LocalVar0 := MOVE4_OUT;
END_IF;


See discussion here:
https://sourceforge.net/p/beremiz/mailman/message/36378805/

Tue, 31 Jul 2018 14:17:41 +0300Fix flickering in debug panel
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 31 Jul 2018 14:17:41 +0300] rev 2257
Fix flickering in debug panel

This flickering made debug panel unusable, because most of the time
panel was white. This problem effects wxPython with GTK3+ backend
(at least on GNU/Linux systems).

Removed code IIUC draws box with content of moved debug variable, I
don't see any effect of it neither on GNU/Linux nor on Windows. It
should be safe to remove.

Mon, 30 Jul 2018 19:28:39 +0300Fix non-usable toolbar on wxPython with GTK3+
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 30 Jul 2018 19:28:39 +0300] rev 2256
Fix non-usable toolbar on wxPython with GTK3+

On GNU/Linux if wxPython uses wxWidget with GTK3+ backend (this is
what most modern distributions do), then size of EditorToolBar was
always to store only one button.
This is because GetBestSize() is updated only after pane is shown and
updated.
The code does work correctly on python-wxgtk3.0 (gtk2 backend) on
GNU/Linux and with wxpython 2.8 on Windows.

Mon, 30 Jul 2018 19:02:36 +0300Fix problem with decreasing size of StatusToolBar when tools are removed from toolbar.
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 30 Jul 2018 19:02:36 +0300] rev 2255
Fix problem with decreasing size of StatusToolBar when tools are removed from toolbar.

StatusToolBar - toolbar with tool to build, clear, connect, ...
This problem appears only in python-wxgtk3.0. In python-wxgtk2.8 there
was not such problem.

If call StatusToolBar.SetMinSize(wx.DefaultSize), all is working, but
following warning message appears:

(Beremiz.py:15155): Gtk-WARNING **: 18:42:24.115: Negative content
width -6 (allocation 1, extents 4x3) while allocating gadget (node
toolbar, owner GtkToolbar)

To avoid that StatusToolBar.GetToolBitmapSize() is used instead of wx.DefaultSize

Sun, 29 Jul 2018 02:00:03 +0300Add BACnet example
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sun, 29 Jul 2018 02:00:03 +0300] rev 2254
Add BACnet example

Fri, 27 Jul 2018 22:01:10 +0000Rework README.md, add examples section, add instructions for Modbus extension, more information about runtime.
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 27 Jul 2018 22:01:10 +0000] rev 2253
Rework README.md, add examples section, add instructions for Modbus extension, more information about runtime.

Fri, 27 Jul 2018 15:44:20 +0300Add Modbus example
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 27 Jul 2018 15:44:20 +0300] rev 2252
Add Modbus example

Wed, 08 Aug 2018 13:27:44 +0200Disable source quality checking on ethercat plugin - will fix it later
Edouard Tisserant [Wed, 08 Aug 2018 13:27:44 +0200] rev 2251
Disable source quality checking on ethercat plugin - will fix it later

Wed, 08 Aug 2018 13:26:48 +0200Passed bacnet*.py through autopep8, and attemped to fix manually what went wrong + fixed pylint complains
Edouard Tisserant [Wed, 08 Aug 2018 13:26:48 +0200] rev 2250
Passed bacnet*.py through autopep8, and attemped to fix manually what went wrong + fixed pylint complains

Wed, 08 Aug 2018 10:17:19 +0200More pylint+pep8 conformance
Edouard Tisserant [Wed, 08 Aug 2018 10:17:19 +0200] rev 2249
More pylint+pep8 conformance

Wed, 08 Aug 2018 10:15:51 +0200autopep8 + hand made fixes on ProjectController.py runtime/WampClient.py wxglade_hmi/wxglade_hmi.py
Edouard Tisserant [Wed, 08 Aug 2018 10:15:51 +0200] rev 2248
autopep8 + hand made fixes on ProjectController.py runtime/WampClient.py wxglade_hmi/wxglade_hmi.py

Tue, 07 Aug 2018 13:35:28 +0200pylint on runtime/NevowServer.py
Edouard Tisserant [Tue, 07 Aug 2018 13:35:28 +0200] rev 2247
pylint on runtime/NevowServer.py

Mon, 06 Aug 2018 15:36:09 +0200pep8 on runtime/NevowServer.py
Edouard Tisserant [Mon, 06 Aug 2018 15:36:09 +0200] rev 2246
pep8 on runtime/NevowServer.py

Mon, 06 Aug 2018 14:30:43 +0200merged
Edouard Tisserant [Mon, 06 Aug 2018 14:30:43 +0200] rev 2245
merged

Mon, 06 Aug 2018 13:14:50 +0200Make some POU libraries selected by default or not. This changes structure of features.libraries, please check and update your extensions if they use libraries
Edouard Tisserant [Mon, 06 Aug 2018 13:14:50 +0200] rev 2244
Make some POU libraries selected by default or not. This changes structure of features.libraries, please check and update your extensions if they use libraries

Wed, 04 Jul 2018 17:47:38 +0300remove useless code
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 04 Jul 2018 17:47:38 +0300] rev 2243
remove useless code

1. hotkey is already defined in menu string
2. remove duplicated code

Wed, 04 Jul 2018 16:41:02 +0300Add full screen mode (menu and title are hidden)
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 04 Jul 2018 16:41:02 +0300] rev 2242
Add full screen mode (menu and title are hidden)

It's can be switched by pressing Shift-F12 or by clicking button on the toolbar

Tue, 03 Jul 2018 17:09:11 +0300Add information how to make shelve command work with check_source.sh called from hg hook
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 03 Jul 2018 17:09:11 +0300] rev 2241
Add information how to make shelve command work with check_source.sh called from hg hook

and added coresponding flag handling in check_source.sh

Fri, 29 Jun 2018 17:53:57 +0300Automatically increment IEC-location address if copy of the variable is created
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 29 Jun 2018 17:53:57 +0300] rev 2240
Automatically increment IEC-location address if copy of the variable is created

Fri, 29 Jun 2018 15:36:34 +0300Make information about translation to be in unicode
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 29 Jun 2018 15:36:34 +0300] rev 2239
Make information about translation to be in unicode

This is necessary because some translator's names contains non-ASCII
characters and they are not handled properly in about dialog on Windows

Fri, 29 Jun 2018 13:40:11 +0300Take plcopen_icons.svg as source of png icons as well
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 29 Jun 2018 13:40:11 +0300] rev 2238
Take plcopen_icons.svg as source of png icons as well

generate poe.ico from png images of different sizes.

Fri, 29 Jun 2018 13:36:32 +0300Add 256x256 and 64x64 Beremiz icons
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 29 Jun 2018 13:36:32 +0300] rev 2237
Add 256x256 and 64x64 Beremiz icons


remove svg:midPointStop tags from icons.svg, because Inkscape
complained about unsupported tag. It seems that these tags were made
by Adobe Illustrator and aren't supported by any other app.

Fri, 29 Jun 2018 13:30:39 +0300Add PLCOpenEditor icon to plcopen_icons.svg
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 29 Jun 2018 13:30:39 +0300] rev 2236
Add PLCOpenEditor icon to plcopen_icons.svg

add 256x256 size to the icon

Wed, 27 Jun 2018 18:13:31 +0300Fix rounding of thousandths of microseconds in duration editor
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 27 Jun 2018 18:13:31 +0300] rev 2235
Fix rounding of thousandths of microseconds in duration editor

Wed, 27 Jun 2018 17:13:06 +0300Add checking value in microseconds field in duration editor dialog
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 27 Jun 2018 17:13:06 +0300] rev 2234
Add checking value in microseconds field in duration editor dialog

Wed, 27 Jun 2018 13:57:03 +0300Catch 'clipboard already open' errors in editors
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 27 Jun 2018 13:57:03 +0300] rev 2233
Catch 'clipboard already open' errors in editors

Apparently following commits have not fixed the problem completely,
because it still happens (although not so often).

changeset: 2019:b8f795bdfe9f
user: Andrey Skvortsov <andrej.skvortzov@gmail.com>
date: Fri May 25 17:40:29 2018 +0300
summary: fix hangs on mouse selection in case if wxPython uses wxWidgets with GTK3+ support

changeset: 2018:5ce6d08ff2c7
user: Andrey Skvortsov <andrej.skvortzov@gmail.com>
date: Fri May 25 17:23:15 2018 +0300
summary: make clipboard open minimal time as wxPython documentation recommends

Wed, 27 Jun 2018 10:58:45 +0300If task type is changed from 'interrupt' to 'cyclic' init interval with T#20ms.
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 27 Jun 2018 10:58:45 +0300] rev 2232
If task type is changed from 'interrupt' to 'cyclic' init interval with T#20ms.

Tue, 26 Jun 2018 18:02:51 +0300Explicitly enable required libraries in test projects
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 26 Jun 2018 18:02:51 +0300] rev 2231
Explicitly enable required libraries in test projects

Tue, 26 Jun 2018 17:46:37 +0300Disable by default unlisted in project beremiz.xml libraries
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 26 Jun 2018 17:46:37 +0300] rev 2230
Disable by default unlisted in project beremiz.xml libraries

Used libraries should be explicitly enabled.

Tue, 26 Jun 2018 17:34:15 +0300Fix 'DoGetTextExtent - invalid DC' error
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 26 Jun 2018 17:34:15 +0300] rev 2229
Fix 'DoGetTextExtent - invalid DC' error

most likely this error happens only on certain wx backends.
GTK3+ on GNU/Linux is apparently one of them.
The problem is described in wxWidgets issue tracker.
http://trac.wxwidgets.org/ticket/12486

[-------------------------------------------------------------------------------------------------------------------]
platform:
Linux-4.16.0-2-rt-amd64-x86_64-with-debian-buster-sid

python-version:
2.7.15

traceback:
File "/home/developer/WorkData/PLC/beremiz/beremiz/ProjectController.py", line 1605, in DispatchDebugValuesProc
self.CallWeakcallables("__tick__", "NewDataAvailable", debug_ticks)
File "/home/developer/WorkData/PLC/beremiz/beremiz/ProjectController.py", line 1585, in CallWeakcallables
function(*cargs)
File "/home/developer/WorkData/PLC/beremiz/beremiz/editors/Viewer.py", line 1217, in NewDataAvailable
refresh_rect.Union(element.GetRedrawRect())
File "/home/developer/WorkData/PLC/beremiz/beremiz/graphics/GraphicCommons.py", line 1609, in GetRedrawRect
self.ValueSize = self.Parent.GetMiniTextExtent(self.ComputedValue)
File "/home/developer/WorkData/PLC/beremiz/beremiz/editors/Viewer.py", line 932, in GetMiniTextExtent
return self.MiniTextDC.GetTextExtent(text)
File "/usr/lib/python2.7/dist-packages/wx-3.0-gtk3/wx/_gdi.py", line 4127, in GetTextExtent
return _gdi_.DC_GetTextExtent(*args, **kwargs)
<class 'wx._core.PyAssertionError'>: C++ assertion "m_graphicContext" failed at ../src/common/dcgraph.cpp(1160) in DoGetTextExtent(): wxGCDC(cg)::DoGetTextExtent - invalid DC

wx-platform:
__WXGTK__

wx-version:
3.0.2.0

[-------------------------------------------------------------------------------------------------------------------]

traceback:
File "/home/developer/WorkData/PLC/beremiz/beremiz/controls/LogViewer.py", line 740, in OnMessageToolTipTimer
self.MessageToolTip.SetFont(self.Font)
File "/home/developer/WorkData/PLC/beremiz/beremiz/controls/CustomToolTip.py", line 75, in SetFont
self.RefreshTip()
File "/home/developer/WorkData/PLC/beremiz/beremiz/controls/CustomToolTip.py", line 158, in RefreshTip
self.SetClientSize(self.GetToolTipSize())
File "/home/developer/WorkData/PLC/beremiz/beremiz/controls/CustomToolTip.py", line 145, in GetToolTipSize
w, h = dc.GetTextExtent(line)
File "/usr/lib/python2.7/dist-packages/wx-3.0-gtk3/wx/_gdi.py", line 4127, in GetTextExtent
return _gdi_.DC_GetTextExtent(*args, **kwargs)
<class 'wx._core.PyAssertionError'>: C++ assertion "m_graphicContext" failed at ../src/common/dcgraph.cpp(1160) in DoGetTextExtent(): wxGCDC(cg)::DoGetTextExtent - invalid DC

[-------------------------------------------------------------------------------------------------------------------]

Tue, 26 Jun 2018 14:48:44 +0300Fix size of ProjectDialog used by PLCOpenEditor
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 26 Jun 2018 14:48:44 +0300] rev 2228
Fix size of ProjectDialog used by PLCOpenEditor

Disable scrolling for ProjectDialog, because otherwise very very small
windows is created.
This regression was introduced by 5701225 ("replaced normal panel with scrolled panel under project
properties").

Tue, 26 Jun 2018 10:37:36 +0300Fix some compilation warnings for better ANSI C compliance
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 26 Jun 2018 10:37:36 +0300] rev 2227
Fix some compilation warnings for better ANSI C compliance

Fri, 20 Jul 2018 11:10:42 +0200Customizable columns in VariableTables (i.e. can be monkey patched properly)
Edouard Tisserant [Fri, 20 Jul 2018 11:10:42 +0200] rev 2226
Customizable columns in VariableTables (i.e. can be monkey patched properly)

Fri, 20 Jul 2018 11:05:17 +0200Merged
Edouard Tisserant [Fri, 20 Jul 2018 11:05:17 +0200] rev 2225
Merged

Thu, 19 Jul 2018 13:32:27 +0200Customizable update of toolbar buttons (i.e. 'methods') according to PLCStatus nevow_service_rework
Edouard Tisserant [Thu, 19 Jul 2018 13:32:27 +0200] rev 2224
Customizable update of toolbar buttons (i.e. 'methods') according to PLCStatus

Fri, 13 Jul 2018 09:06:01 +0200Fixed small typo in error message. nevow_service_rework
Edouard Tisserant [Fri, 13 Jul 2018 09:06:01 +0200] rev 2223
Fixed small typo in error message.

Thu, 12 Jul 2018 09:35:09 +0200WAMP : complains about failure to start WAMP only if it was successfully imported. nevow_service_rework
Edouard Tisserant [Thu, 12 Jul 2018 09:35:09 +0200] rev 2222
WAMP : complains about failure to start WAMP only if it was successfully imported.

Wed, 11 Jul 2018 14:32:19 +0200WAMP: now config and secret given in project files always override those given in commandline. Also made extensions web customisations happen before registration of web interface. nevow_service_rework
Edouard Tisserant [Wed, 11 Jul 2018 14:32:19 +0200] rev 2221
WAMP: now config and secret given in project files always override those given in commandline. Also made extensions web customisations happen before registration of web interface.

Tue, 10 Jul 2018 12:54:05 +0200Moved Wamp configuration file selection logic into runtime/wampclient.py. Added Wamp CRA secret file upload and download. Slightly reworked code for config and secret file loading and saving. nevow_service_rework
Edouard Tisserant [Tue, 10 Jul 2018 12:54:05 +0200] rev 2220
Moved Wamp configuration file selection logic into runtime/wampclient.py. Added Wamp CRA secret file upload and download. Slightly reworked code for config and secret file loading and saving.

Tue, 10 Jul 2018 12:51:28 +0200Added a way for extension to register dedicated URL under settings page URL (i.e. /settings/something) nevow_service_rework
Edouard Tisserant [Tue, 10 Jul 2018 12:51:28 +0200] rev 2219
Added a way for extension to register dedicated URL under settings page URL (i.e. /settings/something)

Fri, 06 Jul 2018 15:09:44 +0200Fixed a bit of everything in WAMP, and added web settings for that same extension. nevow_service_rework
Edouard Tisserant [Fri, 06 Jul 2018 15:09:44 +0200] rev 2218
Fixed a bit of everything in WAMP, and added web settings for that same extension.

Fri, 06 Jul 2018 15:07:40 +0200Added some immutable field (platform) in default runtime web setting page, for the example. nevow_service_rework
Edouard Tisserant [Fri, 06 Jul 2018 15:07:40 +0200] rev 2217
Added some immutable field (platform) in default runtime web setting page, for the example.

Fri, 06 Jul 2018 15:05:03 +0200Fix misc typos in exception handling code. nevow_service_rework
Edouard Tisserant [Fri, 06 Jul 2018 15:05:03 +0200] rev 2216
Fix misc typos in exception handling code.

Thu, 05 Jul 2018 13:46:18 +0200Fixed i18n related typo. nevow_service_rework
Edouard Tisserant [Thu, 05 Jul 2018 13:46:18 +0200] rev 2215
Fixed i18n related typo.

Thu, 05 Jul 2018 13:45:24 +0200Fixed typo nevow_service_rework
Edouard Tisserant [Thu, 05 Jul 2018 13:45:24 +0200] rev 2214
Fixed typo

Thu, 05 Jul 2018 13:44:54 +0200Better logging of Nevow Server import in case of exception. nevow_service_rework
Edouard Tisserant [Thu, 05 Jul 2018 13:44:54 +0200] rev 2213
Better logging of Nevow Server import in case of exception.

Thu, 05 Jul 2018 11:11:01 +0200WampClient : Simplified, removed dead code, use exception for handling failures and misconfiguration, check existence of mandatory parameters. nevow_service_rework
Edouard Tisserant [Thu, 05 Jul 2018 11:11:01 +0200] rev 2212
WampClient : Simplified, removed dead code, use exception for handling failures and misconfiguration, check existence of mandatory parameters.

Wed, 04 Jul 2018 14:17:00 +0200Merged #2486, enhancements to WAMP client : auto reconnecting, wamp conf checking and saving, additional attributes for exposed calls, etc nevow_service_rework
Edouard Tisserant [Wed, 04 Jul 2018 14:17:00 +0200] rev 2211
Merged #2486, enhancements to WAMP client : auto reconnecting, wamp conf checking and saving, additional attributes for exposed calls, etc

Wed, 04 Jul 2018 14:10:03 +0200Nevow based web interface now show simple Log message sending form for basic runtime, and allow extensions to add their own web settings. nevow_service_rework
Edouard Tisserant [Wed, 04 Jul 2018 14:10:03 +0200] rev 2210
Nevow based web interface now show simple Log message sending form for basic runtime, and allow extensions to add their own web settings.

Fri, 22 Jun 2018 14:08:34 +0200Now, runtime extensions should be able to add their own settings to web configuration interface. nevow_service_rework
Edouard Tisserant [Fri, 22 Jun 2018 14:08:34 +0200] rev 2209
Now, runtime extensions should be able to add their own settings to web configuration interface.

Fri, 22 Jun 2018 12:43:33 +0200Embrio of setting form, just to test nevow_service_rework
Edouard Tisserant [Fri, 22 Jun 2018 12:43:33 +0200] rev 2208
Embrio of setting form, just to test

Tue, 05 Jun 2018 15:29:58 +0200#2486 Exception if custom protocol options are wrong. #2486
dporopat <denis.poropat@smarteh.si> [Tue, 05 Jun 2018 15:29:58 +0200] rev 2207
#2486 Exception if custom protocol options are wrong.

Fri, 18 May 2018 11:05:49 +0200#2486 ExposedCalls with register options as a dictionary. #2486
dporopat <denis.poropat@smarteh.si> [Fri, 18 May 2018 11:05:49 +0200] rev 2206
#2486 ExposedCalls with register options as a dictionary.

Mon, 14 May 2018 13:05:54 +0200#2486 Renaming functions. #2486
dporopat <denis.poropat@smarteh.si> [Mon, 14 May 2018 13:05:54 +0200] rev 2205
#2486 Renaming functions.

Mon, 14 May 2018 08:45:44 +0200#2486 Reconnect funtion in SaveWampClientConf function. #2486
dporopat <denis.poropat@smarteh.si> [Mon, 14 May 2018 08:45:44 +0200] rev 2204
#2486 Reconnect funtion in SaveWampClientConf function.

Wed, 09 May 2018 09:59:53 +0200#2486 Modified reconnect function. Added 'active' parameter to wampconf.json file. #2486
dporopat <denis.poropat@smarteh.si> [Wed, 09 May 2018 09:59:53 +0200] rev 2203
#2486 Modified reconnect function. Added 'active' parameter to wampconf.json file.

Thu, 19 Apr 2018 13:40:56 +0200#2486 Adding reconnect funtion to WampClient. Global TransportFactory not needed anymore. #2486
dporopat <denis.poropat@smarteh.si> [Thu, 19 Apr 2018 13:40:56 +0200] rev 2202
#2486 Adding reconnect funtion to WampClient. Global TransportFactory not needed anymore.

Wed, 18 Apr 2018 10:42:33 +0200#2486 Added global TransportFactory, needed in WebInterface reconnecting function. #2486
dporopat <denis.poropat@smarteh.si> [Wed, 18 Apr 2018 10:42:33 +0200] rev 2201
#2486 Added global TransportFactory, needed in WebInterface reconnecting function.

Wed, 18 Apr 2018 10:40:16 +0200#2486 WampClient needs pyro.plcobj before registration calls. #2486
dporopat <denis.poropat@smarteh.si> [Wed, 18 Apr 2018 10:40:16 +0200] rev 2200
#2486 WampClient needs pyro.plcobj before registration calls.

Wed, 11 Apr 2018 10:53:48 +0200#2486 Fix if protocol, register options are not present in wapmconf.json file. #2486
dporopat <denis.poropat@smarteh.si> [Wed, 11 Apr 2018 10:53:48 +0200] rev 2199
#2486 Fix if protocol, register options are not present in wapmconf.json file.

Tue, 10 Apr 2018 12:08:23 +0200#2486 Added ExposedProgressCalls list using details argument for registration progress calls. #2486
dporopat <denis.poropat@smarteh.si> [Tue, 10 Apr 2018 12:08:23 +0200] rev 2198
#2486 Added ExposedProgressCalls list using details argument for registration progress calls.

Tue, 10 Apr 2018 10:44:46 +0200#2486 Unnecessary variable removed. #2486
dporopat <denis.poropat@smarteh.si> [Tue, 10 Apr 2018 10:44:46 +0200] rev 2197
#2486 Unnecessary variable removed.

Tue, 10 Apr 2018 09:54:22 +0200#2486 Added option to use websocket register options. Added function getValidOptins to read options from wampconf.json. #2486
dporopat <denis.poropat@smarteh.si> [Tue, 10 Apr 2018 09:54:22 +0200] rev 2196
#2486 Added option to use websocket register options. Added function getValidOptins to read options from wampconf.json.

Mon, 09 Apr 2018 14:38:38 +0200#2486 Added option to use websocket protocol options. #2486
dporopat <denis.poropat@smarteh.si> [Mon, 09 Apr 2018 14:38:38 +0200] rev 2195
#2486 Added option to use websocket protocol options.

Tue, 27 Mar 2018 10:11:04 +0200#2486 Updated wamp test project to work with the latest Crossbar version. #2486
dporopat <denis.poropat@smarteh.si> [Tue, 27 Mar 2018 10:11:04 +0200] rev 2194
#2486 Updated wamp test project to work with the latest Crossbar version.

Mon, 19 Mar 2018 12:18:07 +0100#2486 Reset delay function added. It resets the delay and the retry counter on reconnect. #2486
dporopat <denis.poropat@smarteh.si> [Mon, 19 Mar 2018 12:18:07 +0100] rev 2193
#2486 Reset delay function added. It resets the delay and the retry counter on reconnect.

Sat, 23 Jun 2018 09:17:20 +0200merge
Edouard Tisserant <edouard.tisserant@gmail.com> [Sat, 23 Jun 2018 09:17:20 +0200] rev 2192
merge

Sat, 23 Jun 2018 09:16:35 +0200merge
Edouard Tisserant <edouard.tisserant@gmail.com> [Sat, 23 Jun 2018 09:16:35 +0200] rev 2191
merge

Mon, 18 Jun 2018 12:17:07 +0300Fix compilation warning/error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 18 Jun 2018 12:17:07 +0300] rev 2190
Fix compilation warning/error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]

Mon, 18 Jun 2018 12:12:57 +0300merge
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 18 Jun 2018 12:12:57 +0300] rev 2189
merge

Fri, 15 Jun 2018 09:48:05 +0200WxGlade HMI extension now does only instanciate wx object who's name match extension's name. If no object match the name and no code is provided in 'start' user python code section, then a warning is issued
Edouard Tisserant [Fri, 15 Jun 2018 09:48:05 +0200] rev 2188
WxGlade HMI extension now does only instanciate wx object who's name match extension's name. If no object match the name and no code is provided in 'start' user python code section, then a warning is issued

Wed, 13 Jun 2018 08:54:13 +0200BACnet : ensure that Init did happen before continuing with PLC startup.
Edouard Tisserant [Wed, 13 Jun 2018 08:54:13 +0200] rev 2187
BACnet : ensure that Init did happen before continuing with PLC startup.

Fri, 15 Jun 2018 16:41:55 +0300Update list of files with strings for i18n and templates for translations
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 15 Jun 2018 16:41:55 +0300] rev 2186
Update list of files with strings for i18n and templates for translations

Fri, 15 Jun 2018 16:30:06 +0300Add small contributing document with information about codestyle checking
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 15 Jun 2018 16:30:06 +0300] rev 2185
Add small contributing document with information about codestyle checking

Fri, 15 Jun 2018 16:12:50 +0300Add argument to set list of source files to check
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 15 Jun 2018 16:12:50 +0300] rev 2184
Add argument to set list of source files to check

This is necessary, in case you want to use docker run in pretxncommit
Mercurial hook. Unfortunately for some reason if hg running in
container can't find just created commit defined by $HG_NODE. And it
throws error 'unknown revision'.

Here is example for hgrc.

[hooks]
pretxncommit.linter = hg status -m -n -a -n -I '**.py' --change $HG_NODE > files.lst && docker run --volume=$PWD:/beremiz --workdir="/beremiz" --volume=$PWD/../CanFestival-3:/CanFestival-3 --memory=1g --entrypoint=/beremiz/tests/tools/check_source.sh skvorl/beremiz-requirements --files-to-check files.lst

Sat, 09 Jun 2018 17:59:46 +0300check_source.sh: handle case if there are no files to check
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 09 Jun 2018 17:59:46 +0300] rev 2183
check_source.sh: handle case if there are no files to check

Sat, 09 Jun 2018 17:14:56 +0300Fix linter errors
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 09 Jun 2018 17:14:56 +0300] rev 2182
Fix linter errors

Sat, 09 Jun 2018 17:13:16 +0300Add command line argument to run linter only on changed files
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 09 Jun 2018 17:13:16 +0300] rev 2181
Add command line argument to run linter only on changed files

./tests/tools/check_source.sh --only-changes

It's recommended to run check_source.sh automatically on each commit,
so the rules are always enforced.
Even better is to use docker for that, so the versions of pep8 and
pylint are the same as on pipeline server.

To do this couple of lines should be added into repository's hgrc file.

[----------- cut from .hg/hgrc------------------]

[hooks]
precommit.linter = ./tests/tools/check_source.sh --only-changes
# precommit.linter = docker run -it --volume=$PWD:/beremiz --workdir="/beremiz" --volume=$PWD/../CanFestival-3:/CanFestival-3 --memory=1g --entrypoint=/beremiz/tests/tools/check_source.sh skvorl/beremiz-requirements --only-changes

[-----------------------------------------------]

Fri, 08 Jun 2018 15:10:27 +0300Don't use fixed width labels in WAMP and PYRO dialogs
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 08 Jun 2018 15:10:27 +0300] rev 2180
Don't use fixed width labels in WAMP and PYRO dialogs

This causes problems if labels are translated into other languages and
width wasn't enough.

Thu, 07 Jun 2018 16:58:13 +0300Fix internatialization in UriLocationEditor, PYRO dialog and Modbus configurator
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 07 Jun 2018 16:58:13 +0300] rev 2179
Fix internatialization in UriLocationEditor, PYRO dialog and Modbus configurator

Thu, 07 Jun 2018 16:53:21 +0300Add copyright headers to retain implementation for GNU/Linux and Win32
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 07 Jun 2018 16:53:21 +0300] rev 2178
Add copyright headers to retain implementation for GNU/Linux and Win32

Thu, 07 Jun 2018 16:31:26 +0300Drop support for wxPython 2.6 and below
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 07 Jun 2018 16:31:26 +0300] rev 2177
Drop support for wxPython 2.6 and below

Thu, 07 Jun 2018 14:45:03 +0300Autoresize UriLocationEditor dialog window
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 07 Jun 2018 14:45:03 +0300] rev 2176
Autoresize UriLocationEditor dialog window

Thu, 07 Jun 2018 14:12:18 +0300Fix compilation problem in case of TARGET_LOGGING_DISABLE turned on and TARGET_DEBUG_DISABLE turned off
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 07 Jun 2018 14:12:18 +0300] rev 2175
Fix compilation problem in case of TARGET_LOGGING_DISABLE turned on and TARGET_DEBUG_DISABLE turned off

Thu, 07 Jun 2018 14:04:45 +0300Use the same retain implementation for Win32 targets
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 07 Jun 2018 14:04:45 +0300] rev 2174
Use the same retain implementation for Win32 targets

Currently plc_Win32_main_retain.c is exact copy of
plc_Linux_main_retain.c, because it's not possible to use symbol
links.

It'd be nice in the future to have possibility to modify targets.code.

Thu, 07 Jun 2018 13:45:35 +0300Add retain basic implementation on GNU/Linux
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 07 Jun 2018 13:45:35 +0300] rev 2173
Add retain basic implementation on GNU/Linux

Retain is saved in file and backup of this file is done every time.
File isn't saved on every PLC cycle to avoid high I/O load.
By default, retain is saved every second and on PLC stop/shutdown.
It's possible to override retain flush period by using CFLAGS option
in project's settings. For example, for 0.5 seconds period
use "-DFILE_RETAIN_SAVE_PERIOD_S=0.5".

Fri, 01 Jun 2018 15:46:17 +0300Add helper function GetRetainSize()
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 01 Jun 2018 15:46:17 +0300] rev 2172
Add helper function GetRetainSize()

it will be useful for retain implementations.

Fri, 01 Jun 2018 12:21:37 +0300use CLOCK_MONOTONIC instead of CLOCK_REALTIME for timer setup
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 01 Jun 2018 12:21:37 +0300] rev 2171
use CLOCK_MONOTONIC instead of CLOCK_REALTIME for timer setup

CLOCK_REALTIME is a wall clock, that could change back and forth (user
changes system time, winter/summer time, NTP corrections and so on).
For real-time application CLOCK_MONOTONIC should be used, it doesn't
have such jumps.

Thu, 31 May 2018 13:07:10 +0300Add function example to first_steps example
Surkov Sergey <surkovsv93@gmail.com> [Thu, 31 May 2018 13:07:10 +0300] rev 2170
Add function example to first_steps example

It'll be used in documentation to show how to create function in
Beremiz.

Fri, 25 May 2018 18:37:59 +0300fix type introduced by f33942053466 (fix pylint warning "(undefined-loop-variable) Using possibly undefined loop variable 'X'")
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 25 May 2018 18:37:59 +0300] rev 2169
fix type introduced by f33942053466 (fix pylint warning "(undefined-loop-variable) Using possibly undefined loop variable 'X'")

Fri, 25 May 2018 18:34:05 +0300Build by default with optimization level -O2 for GCC
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 25 May 2018 18:34:05 +0300] rev 2168
Build by default with optimization level -O2 for GCC

before -O0 was used by default, that caused pretty bad performance.

Amd64, i6700k, 4200MHz, GNU/Linux (non-RT kernel), gcc 7.2.0

-------------------------------------
Optimization | EN/ENO |no EN/ENO |
-------------------------------------
default | 11 | 9.5 |
-O3 | 3.9 | 5.2 |
-O2 | 4 | 4.8 |
-Os | 4.1 | 3.5 |
-Ofast | 3.9 | 5.2 |
-------------------------------------

ARM, BBB Cortex-A8, 600Mhz, GNU/Linux, gcc 4.6.3

-------------------------------------
Optimization | EN/ENO |no EN/ENO |
-------------------------------------
default | 273 | 226 |
-O3 | 141.8 | 106.2 |
-O2 | 142 | 107 |
-Os | 152.5 | 112.2 |
-Ofast | 141.7 | 106.2 |
-------------------------------------

For embedded systems with size constaints (like Cortex-Mx, AVR and so
on) I usually use -Os. It gets pretty good results. For
GNU/Linux-based systems -O2 is usually a good choice, as you see the
test results.

Fri, 25 May 2018 17:40:29 +0300fix hangs on mouse selection in case if wxPython uses wxWidgets with GTK3+ support
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 25 May 2018 17:40:29 +0300] rev 2167
fix hangs on mouse selection in case if wxPython uses wxWidgets with GTK3+ support

This is default configuration on Debian Buster+ and Ubuntu 18.04+.
Probably it'll fix completely problem with 'clipboard already open'
described in the previous commit 5ce6d08f ("make clipboard open minimal time as wxPython documentation recommends")

Fri, 25 May 2018 17:23:15 +0300make clipboard open minimal time as wxPython documentation recommends
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 25 May 2018 17:23:15 +0300] rev 2166
make clipboard open minimal time as wxPython documentation recommends

https://wxpython.org/Phoenix/docs/html/wx.Clipboard.html#wx.Clipboard.GetData

"Call wx.Clipboard.Open to get ownership of the clipboard. If this
operation returns True, you now own the clipboard. Call
wx.Clipboard.SetData to put data on the clipboard, or
wx.Clipboard.GetData to retrieve data from the clipboard. Call
wx.Clipboard.Close to close the clipboard and relinquish ownership.
You should keep the clipboard open only momentarily."

Maybe it makes situation with pretty annoying error 'clipboard already
open' a little bit better.

traceback:
File "/home/developer/WorkData/PLC/beremiz/avangard-beremiz-ide/src/../../beremiz/BeremizIDE.py", line 955, in OnSaveProjectMenu
self.RefreshAfterSave()
File "/home/developer/WorkData/PLC/beremiz/avangard-beremiz-ide/src/../../beremiz/BeremizIDE.py", line 946, in RefreshAfterSave
self._Refresh(TITLE, FILEMENU, EDITMENU, PAGETITLES)
File "/home/developer/WorkData/PLC/beremiz/avangard-beremiz-ide/src/../../beremiz/IDEFrame.py", line 926, in _Refresh
self.RefreshFunctions[element]()
File "/home/developer/WorkData/PLC/beremiz/avangard-beremiz-ide/src/../../beremiz/BeremizIDE.py", line 766, in RefreshEditMenu
IDEFrame.RefreshEditMenu(self)
File "/home/developer/WorkData/PLC/beremiz/avangard-beremiz-ide/src/../../beremiz/IDEFrame.py", line 1185, in RefreshEditMenu
if self.GetCopyBuffer() is not None:
File "/home/developer/WorkData/PLC/beremiz/avangard-beremiz-ide/src/../../beremiz/IDEFrame.py", line 956, in GetCopyBuffer
if wx.TheClipboard.Open():
File "/usr/lib/python2.7/dist-packages/wx-3.0-gtk3/wx/_misc.py", line 5793, in Open
return _misc_.Clipboard_Open(*args, **kwargs)
<class 'wx._core.PyAssertionError'>: C++ assertion "!m_open" failed at ../src/gtk/clipbrd.cpp(598) in Open(): clipboard already open

Sat, 23 Jun 2018 09:08:13 +0200Merged GPL + LGPL v2 or later EtherCAT extension. Fixed headers and copyright notice.
Edouard Tisserant <edouard.tisserant@gmail.com> [Sat, 23 Jun 2018 09:08:13 +0200] rev 2165
Merged GPL + LGPL v2 or later EtherCAT extension. Fixed headers and copyright notice.

Mon, 11 Aug 2014 23:13:35 +0200Propagated matiec changes in FB var accessors
Edouard Tisserant [Mon, 11 Aug 2014 23:13:35 +0200] rev 2164
Propagated matiec changes in FB var accessors

Wed, 02 Apr 2014 21:22:35 +0200Fixed most obvious bugs appear after grafting changes from previous development branches : re-enable openning non-CoE, CoE and CiA 402 nodes config
Edouard Tisserant [Wed, 02 Apr 2014 21:22:35 +0200] rev 2163
Fixed most obvious bugs appear after grafting changes from previous development branches : re-enable openning non-CoE, CoE and CiA 402 nodes config

Wed, 02 Oct 2013 10:46:18 +0200Fixed xslt stylesheet for extracting entries defined in module, rewiting xslt stylesheet to yslt
Laurent Bessard [Wed, 02 Oct 2013 10:46:18 +0200] rev 2162
Fixed xslt stylesheet for extracting entries defined in module, rewiting xslt stylesheet to yslt

Mon, 30 Sep 2013 13:43:02 +0200Fixed bug in information returned for module where entries are defined only in PDO mapping
Laurent Bessard [Mon, 30 Sep 2013 13:43:02 +0200] rev 2161
Fixed bug in information returned for module where entries are defined only in PDO mapping

Fri, 27 Sep 2013 17:49:40 +0200Added support for loading XML file even if not following XSD schema (but still following XML syntax), warning user of errors in XML file
Laurent Bessard [Fri, 27 Sep 2013 17:49:40 +0200] rev 2160
Added support for loading XML file even if not following XSD schema (but still following XML syntax), warning user of errors in XML file

Tue, 24 Sep 2013 15:18:25 +0200Fixed bug when compiling
Laurent Bessard [Tue, 24 Sep 2013 15:18:25 +0200] rev 2159
Fixed bug when compiling

Tue, 24 Sep 2013 00:50:02 +0200Fixed higen example removing obsolete attribute in CIA402 node params file
Laurent Bessard [Tue, 24 Sep 2013 00:50:02 +0200] rev 2158
Fixed higen example removing obsolete attribute in CIA402 node params file

Tue, 24 Sep 2013 00:48:21 +0200Fixed controllers for working with latest version of xmlclass
Laurent Bessard [Tue, 24 Sep 2013 00:48:21 +0200] rev 2157
Fixed controllers for working with latest version of xmlclass

Tue, 25 Jun 2013 00:55:38 +0200Added bug in support for set flag for optional variables activation in axis public struct
Laurent Bessard [Tue, 25 Jun 2013 00:55:38 +0200] rev 2156
Added bug in support for set flag for optional variables activation in axis public struct

Mon, 24 Jun 2013 23:53:57 +0200Added support for set flag for optional variables activation in axis public struct
Laurent Bessard [Mon, 24 Jun 2013 23:53:57 +0200] rev 2155
Added support for set flag for optional variables activation in axis public struct

Mon, 24 Jun 2013 21:03:22 +0200Replaced location for axis ref from %IW(location).0 to %IW(location).402. Added location for network position at %IW(location).
Laurent Bessard [Mon, 24 Jun 2013 21:03:22 +0200] rev 2154
Replaced location for axis ref from %IW(location).0 to %IW(location).402. Added location for network position at %IW(location).

Mon, 24 Jun 2013 09:23:28 +0200Rewrite CIA402 node specific code generating part
Laurent Bessard [Mon, 24 Jun 2013 09:23:28 +0200] rev 2153
Rewrite CIA402 node specific code generating part

Wed, 02 Apr 2014 15:03:32 +0200Cherry-pick and re-commit to legitimate ancestor of commit 'Ethercat Management Function Refactoring Source by RTES Lab.' from youcu <youcu1022@gmail.com>
Edouard Tisserant [Wed, 02 Apr 2014 15:03:32 +0200] rev 2152
Cherry-pick and re-commit to legitimate ancestor of commit 'Ethercat Management Function Refactoring Source by RTES Lab.' from youcu <youcu1022@gmail.com>

Mon, 03 Jun 2013 08:24:08 +0200Fixed bug when drag'n dropping variable in master startup command grid
Laurent Bessard [Mon, 03 Jun 2013 08:24:08 +0200] rev 2151
Fixed bug when drag'n dropping variable in master startup command grid

Tue, 21 May 2013 16:03:40 +0900Moved ratio scaling back to MCL. Rewrote CiA402 C part in a way it can be read and understood by some humans.
Edouard Tisserant [Tue, 21 May 2013 16:03:40 +0900] rev 2150
Moved ratio scaling back to MCL. Rewrote CiA402 C part in a way it can be read and understood by some humans.

Thu, 16 May 2013 23:21:01 +0200Added icon for Ethercat extension root and Ethercat master node
Laurent Bessard [Thu, 16 May 2013 23:21:01 +0200] rev 2149
Added icon for Ethercat extension root and Ethercat master node

Fri, 10 May 2013 09:16:07 +0200Fixed bug with global instance declaration
Laurent Bessard [Fri, 10 May 2013 09:16:07 +0200] rev 2148
Fixed bug with global instance declaration

Fri, 10 May 2013 08:44:05 +0200Fix bug in when moving Ethercat slaves fixed
Laurent Bessard [Fri, 10 May 2013 08:44:05 +0200] rev 2147
Fix bug in when moving Ethercat slaves fixed

Wed, 08 May 2013 10:40:06 +0200Added mapping for TouchProbe function in CIA402 slave node
Laurent Bessard [Wed, 08 May 2013 10:40:06 +0200] rev 2146
Added mapping for TouchProbe function in CIA402 slave node

Fri, 03 May 2013 13:47:51 +0200Fixed bug with axes boolean parameters value
Laurent Bessard [Fri, 03 May 2013 13:47:51 +0200] rev 2145
Fixed bug with axes boolean parameters value

Thu, 02 May 2013 13:40:35 +0200Added error message when a device informations can't be found in ESI files
Laurent Bessard [Thu, 02 May 2013 13:40:35 +0200] rev 2144
Added error message when a device informations can't be found in ESI files

Thu, 02 May 2013 10:21:47 +0200Fixed ToolTip on VariablesGrid columns on Windows
Laurent Bessard [Thu, 02 May 2013 10:21:47 +0200] rev 2143
Fixed ToolTip on VariablesGrid columns on Windows

Tue, 30 Apr 2013 01:39:54 +0200Update higen drive example introducing usage of csv mode
Laurent Bessard [Tue, 30 Apr 2013 01:39:54 +0200] rev 2142
Update higen drive example introducing usage of csv mode

Tue, 30 Apr 2013 01:31:47 +0200Merged
Laurent Bessard [Tue, 30 Apr 2013 01:31:47 +0200] rev 2141
Merged

Mon, 29 Apr 2013 11:07:32 +0200Fixed bug in support for module extra params in EthercatCFileGenerator
Laurent Bessard [Mon, 29 Apr 2013 11:07:32 +0200] rev 2140
Fixed bug in support for module extra params in EthercatCFileGenerator

Mon, 29 Apr 2013 11:03:06 +0200Added support for module extra params in EthercatCFileGenerator
Laurent Bessard [Mon, 29 Apr 2013 11:03:06 +0200] rev 2139
Added support for module extra params in EthercatCFileGenerator

Fri, 26 Apr 2013 23:23:09 +0200Fixed support for multiple module extra params in ModulesLibrary
Laurent Bessard [Fri, 26 Apr 2013 23:23:09 +0200] rev 2138
Fixed support for multiple module extra params in ModulesLibrary

Fri, 26 Apr 2013 13:57:10 +0200Added support for multiple module extra params in ModulesLibrary
Laurent Bessard [Fri, 26 Apr 2013 13:57:10 +0200] rev 2137
Added support for multiple module extra params in ModulesLibrary

Thu, 25 Apr 2013 23:01:06 +0200Added support for using CIA402 motion mode csp, csv and cst
Laurent Bessard [Thu, 25 Apr 2013 23:01:06 +0200] rev 2136
Added support for using CIA402 motion mode csp, csv and cst

Fri, 26 Apr 2013 13:59:43 +0200Fixed order of LocationCFilesAndCFLAGS, master was called after slaves in PLC init and retrieve functions
Laurent Bessard [Fri, 26 Apr 2013 13:59:43 +0200] rev 2135
Fixed order of LocationCFilesAndCFLAGS, master was called after slaves in PLC init and retrieve functions

Wed, 24 Apr 2013 23:27:35 +0200Fixed bug on Windows with sizers on Windows in Master Editor panel when its size changed
Laurent Bessard [Wed, 24 Apr 2013 23:27:35 +0200] rev 2134
Fixed bug on Windows with sizers on Windows in Master Editor panel when its size changed

Wed, 24 Apr 2013 17:27:31 +0200Fixed Save As... function in Beremiz
Laurent Bessard [Wed, 24 Apr 2013 17:27:31 +0200] rev 2133
Fixed Save As... function in Beremiz

Mon, 22 Apr 2013 23:54:22 +0200Added support for stopping SDOThreadProc when stopping PLC
Laurent Bessard [Mon, 22 Apr 2013 23:54:22 +0200] rev 2132
Added support for stopping SDOThreadProc when stopping PLC

Mon, 22 Apr 2013 09:30:48 +0200Fixed bug when modifying slave module type
Laurent Bessard [Mon, 22 Apr 2013 09:30:48 +0200] rev 2131
Fixed bug when modifying slave module type

Fri, 19 Apr 2013 00:55:40 +0200Fixed bug in filters behavior on Windows
Laurent Bessard [Fri, 19 Apr 2013 00:55:40 +0200] rev 2130
Fixed bug in filters behavior on Windows

Thu, 18 Apr 2013 00:48:32 +0200Fixed filter behavior in MasterEditor and SlaveEditor
Laurent Bessard [Thu, 18 Apr 2013 00:48:32 +0200] rev 2129
Fixed filter behavior in MasterEditor and SlaveEditor

Tue, 16 Apr 2013 00:53:38 +0200Fixed CIA402 node template for working with MC_Power modification removing implicit set position
Laurent Bessard [Tue, 16 Apr 2013 00:53:38 +0200] rev 2128
Fixed CIA402 node template for working with MC_Power modification removing implicit set position

Mon, 15 Apr 2013 00:40:47 +0200Fix scan network functionality, project tree not refreshed after adding slaves
Laurent Bessard [Mon, 15 Apr 2013 00:40:47 +0200] rev 2127
Fix scan network functionality, project tree not refreshed after adding slaves

Mon, 15 Apr 2013 00:37:59 +0200Rollback last commit
Laurent Bessard [Mon, 15 Apr 2013 00:37:59 +0200] rev 2126
Rollback last commit

Sat, 13 Apr 2013 12:27:49 +0200Fixed CIA402 node template for working with MC_Power modification removing implicit set position
Laurent Bessard [Sat, 13 Apr 2013 12:27:49 +0200] rev 2125
Fixed CIA402 node template for working with MC_Power modification removing implicit set position

Sat, 13 Apr 2013 02:14:37 +0200Fixed bugs in drag'n drop from variables panel in master and slaves editor panel
Laurent Bessard [Sat, 13 Apr 2013 02:14:37 +0200] rev 2124
Fixed bugs in drag'n drop from variables panel in master and slaves editor panel

Sat, 13 Apr 2013 01:40:31 +0200Added initialization of abort_code and result_size to prevent warning message if not used in following code
Laurent Bessard [Sat, 13 Apr 2013 01:40:31 +0200] rev 2123
Added initialization of abort_code and result_size to prevent warning message if not used in following code

Sat, 13 Apr 2013 01:39:05 +0200Fixed header files inclusion in CIA402 node template file
Laurent Bessard [Sat, 13 Apr 2013 01:39:05 +0200] rev 2122
Fixed header files inclusion in CIA402 node template file

Fri, 12 Apr 2013 15:41:22 +0900Fixed (again) some non-clean exit in case of SDO failure at init
Edouard Tisserant [Fri, 12 Apr 2013 15:41:22 +0900] rev 2121
Fixed (again) some non-clean exit in case of SDO failure at init

Thu, 11 Apr 2013 10:32:58 +0200Merged
Laurent Bessard [Thu, 11 Apr 2013 10:32:58 +0200] rev 2120
Merged

Fri, 05 Apr 2013 00:14:00 +0200Fixed ethercat test with higen drive project
Laurent Bessard [Fri, 05 Apr 2013 00:14:00 +0200] rev 2119
Fixed ethercat test with higen drive project

Fri, 05 Apr 2013 00:09:54 +0200Fixed bug when using real axis and simulated axis at the same time (got the same index)
Laurent Bessard [Fri, 05 Apr 2013 00:09:54 +0200] rev 2118
Fixed bug when using real axis and simulated axis at the same time (got the same index)

Fri, 05 Apr 2013 21:47:37 +0900Now failure in template based part of C code also release the master for later use...
Edouard Tisserant [Fri, 05 Apr 2013 21:47:37 +0900] rev 2117
Now failure in template based part of C code also release the master for later use...

Fri, 05 Apr 2013 16:49:41 +0900Better logging, saffer failure at init (allows restart)
Edouard Tisserant [Fri, 05 Apr 2013 16:49:41 +0900] rev 2116
Better logging, saffer failure at init (allows restart)

Fri, 05 Apr 2013 11:55:09 +0900Added error logging when SDO FB fails
Edouard Tisserant [Fri, 05 Apr 2013 11:55:09 +0900] rev 2115
Added error logging when SDO FB fails

Thu, 04 Apr 2013 17:50:43 +0900Added logging based on collecting Kernel logs
Edouard Tisserant [Thu, 04 Apr 2013 17:50:43 +0900] rev 2114
Added logging based on collecting Kernel logs

Thu, 04 Apr 2013 14:32:02 +0900Fixed typo
Edouard Tisserant [Thu, 04 Apr 2013 14:32:02 +0900] rev 2113
Fixed typo

Fri, 29 Mar 2013 14:25:10 +0900Fixed linking with non RTDM etherlab lib. Now with rtdm...
Edouard Tisserant [Fri, 29 Mar 2013 14:25:10 +0900] rev 2112
Fixed linking with non RTDM etherlab lib. Now with rtdm...

Fri, 29 Mar 2013 01:15:01 +0100Split etherlab.py into multiple files
Laurent Bessard [Fri, 29 Mar 2013 01:15:01 +0100] rev 2111
Split etherlab.py into multiple files

Fri, 29 Mar 2013 01:13:17 +0100Fixed bug with process variables grid
Laurent Bessard [Fri, 29 Mar 2013 01:13:17 +0100] rev 2110
Fixed bug with process variables grid

Thu, 28 Mar 2013 18:06:03 +0900Stripped useless depricated comments, changed print format of sdo abort code
Edouard Tisserant [Thu, 28 Mar 2013 18:06:03 +0900] rev 2109
Stripped useless depricated comments, changed print format of sdo abort code

Thu, 28 Mar 2013 15:50:23 +0900Updated generated code to etherlab 1.5.2
Edouard Tisserant [Thu, 28 Mar 2013 15:50:23 +0900] rev 2108
Updated generated code to etherlab 1.5.2

Tue, 26 Mar 2013 12:42:49 +0900Added Logging
Edouard Tisserant [Tue, 26 Mar 2013 12:42:49 +0900] rev 2107
Added Logging

Tue, 26 Mar 2013 09:34:30 +0900Now use beremiz.h
Edouard Tisserant [Tue, 26 Mar 2013 09:34:30 +0900] rev 2106
Now use beremiz.h

Wed, 20 Mar 2013 09:17:15 +0100Fixed bugs in Network Configuration Editor
Laurent Bessard [Wed, 20 Mar 2013 09:17:15 +0100] rev 2105
Fixed bugs in Network Configuration Editor

Thu, 14 Mar 2013 17:29:59 +0900CiA402 now fills NetworkPosition member of public axis struct
Edouard Tisserant [Thu, 14 Mar 2013 17:29:59 +0900] rev 2104
CiA402 now fills NetworkPosition member of public axis struct

Thu, 07 Mar 2013 00:54:45 +0100Fixed bugs in process variables generated code
Laurent Bessard [Thu, 07 Mar 2013 00:54:45 +0100] rev 2103
Fixed bugs in process variables generated code

Wed, 06 Mar 2013 19:25:20 +0100Added specific add menu for directly choose slave type while adding new slave
Laurent Bessard [Wed, 06 Mar 2013 19:25:20 +0100] rev 2102
Added specific add menu for directly choose slave type while adding new slave

Wed, 06 Mar 2013 18:38:17 +0100Added code generation for process variables
Laurent Bessard [Wed, 06 Mar 2013 18:38:17 +0100] rev 2101
Added code generation for process variables

Wed, 06 Mar 2013 18:37:23 +0100Fixed modifications in Startup Commands grid
Laurent Bessard [Wed, 06 Mar 2013 18:37:23 +0100] rev 2100
Fixed modifications in Startup Commands grid

Tue, 05 Mar 2013 23:04:59 +0100Improved Ethercat Network Configurator panels
Laurent Bessard [Tue, 05 Mar 2013 23:04:59 +0100] rev 2099
Improved Ethercat Network Configurator panels

Tue, 05 Mar 2013 00:59:34 +0100Improved Ethercat Network Configurator panels
Laurent Bessard [Tue, 05 Mar 2013 00:59:34 +0100] rev 2098
Improved Ethercat Network Configurator panels

Wed, 27 Feb 2013 22:40:45 +0100Added panel for managing ESI files from project and from database including module PDO alignment setting
Laurent Bessard [Wed, 27 Feb 2013 22:40:45 +0100] rev 2097
Added panel for managing ESI files from project and from database including module PDO alignment setting

Thu, 07 Feb 2013 00:59:50 +0100Added support for MC_*DigitalOutput, MC_ReadAxisInfo and MC_ReadAxisError blocks from MCL in DS402 nodes generated code
Laurent Bessard [Thu, 07 Feb 2013 00:59:50 +0100] rev 2096
Added support for MC_*DigitalOutput, MC_ReadAxisInfo and MC_ReadAxisError blocks from MCL in DS402 nodes generated code

Wed, 30 Jan 2013 23:46:58 +0100Replaced SplitterWindow in ConfTreeNodeEditor by Notebook
Laurent Bessard [Wed, 30 Jan 2013 23:46:58 +0100] rev 2095
Replaced SplitterWindow in ConfTreeNodeEditor by Notebook

Fri, 16 Nov 2012 23:43:45 +0100Fix bug in support for Etherlab specific fieldbus interface function blocks
Laurent Bessard [Fri, 16 Nov 2012 23:43:45 +0100] rev 2094
Fix bug in support for Etherlab specific fieldbus interface function blocks

Fri, 16 Nov 2012 00:23:35 +0100Fix bug in support for Etherlab specific fieldbus interface function blocks
Laurent Bessard [Fri, 16 Nov 2012 00:23:35 +0100] rev 2093
Fix bug in support for Etherlab specific fieldbus interface function blocks

Thu, 15 Nov 2012 22:43:44 +0100Adding support for Etherlab specific function blocks for MCL fieldbus interface function blocks
Laurent Bessard [Thu, 15 Nov 2012 22:43:44 +0100] rev 2092
Adding support for Etherlab specific function blocks for MCL fieldbus interface function blocks

Fri, 09 Nov 2012 11:27:30 +0100Adding support for extracting ActualVelocity from CIA402 nodes PDOs
Laurent Bessard [Fri, 09 Nov 2012 11:27:30 +0100] rev 2091
Adding support for extracting ActualVelocity from CIA402 nodes PDOs

Fri, 09 Nov 2012 11:25:44 +0100Fix bug in EtherLabSDODownload function block
Laurent Bessard [Fri, 09 Nov 2012 11:25:44 +0100] rev 2090
Fix bug in EtherLabSDODownload function block

Wed, 31 Oct 2012 12:06:04 +0100Fix bug when Drag'n Dropping located variables on Windows
Laurent Bessard [Wed, 31 Oct 2012 12:06:04 +0100] rev 2089
Fix bug when Drag'n Dropping located variables on Windows

Wed, 31 Oct 2012 11:54:26 +0100Adding support for using Etherlab SDO function blocks in MCL
Laurent Bessard [Wed, 31 Oct 2012 11:54:26 +0100] rev 2088
Adding support for using Etherlab SDO function blocks in MCL

Tue, 30 Oct 2012 00:22:29 +0100Updating ethercat example for higen drive adding an example of Ethercat SDO upload block usage
Laurent Bessard [Tue, 30 Oct 2012 00:22:29 +0100] rev 2087
Updating ethercat example for higen drive adding an example of Ethercat SDO upload block usage

Thu, 25 Oct 2012 19:55:02 +0200Adding block library for SDO download and SDO upload
Laurent Bessard [Thu, 25 Oct 2012 19:55:02 +0200] rev 2086
Adding block library for SDO download and SDO upload

Fri, 19 Oct 2012 16:37:54 +0200Fix bug in CIA402 slave digital inputs
Laurent Bessard [Fri, 19 Oct 2012 16:37:54 +0200] rev 2085
Fix bug in CIA402 slave digital inputs

Fri, 19 Oct 2012 12:43:42 +0200Adding support to enable CIA402 slave digital inputs
Laurent Bessard [Fri, 19 Oct 2012 12:43:42 +0200] rev 2084
Adding support to enable CIA402 slave digital inputs

Thu, 18 Oct 2012 01:23:35 +0200Fix Axis_Ref type defined in VariableLocationTree
Laurent Bessard [Thu, 18 Oct 2012 01:23:35 +0200] rev 2083
Fix Axis_Ref type defined in VariableLocationTree

Wed, 17 Oct 2012 19:12:08 +0200Adding support for selecting a PDO in a list of mutually exclusive configured PDOs in Ethercat Network Configurator
Laurent Bessard [Wed, 17 Oct 2012 19:12:08 +0200] rev 2082
Adding support for selecting a PDO in a list of mutually exclusive configured PDOs in Ethercat Network Configurator

Sat, 13 Oct 2012 22:48:05 +0200Fix bug in endianization in value transmit and received by SDO
Laurent Bessard [Sat, 13 Oct 2012 22:48:05 +0200] rev 2081
Fix bug in endianization in value transmit and received by SDO

Sun, 23 Sep 2012 23:52:47 +0200Fix bug when modifying slave position
Laurent Bessard [Sun, 23 Sep 2012 23:52:47 +0200] rev 2080
Fix bug when modifying slave position

Sun, 23 Sep 2012 23:25:57 +0200Fix C code Generator to use CoE section contained in the slave ESI file for defining Ethercat network configuration
Laurent Bessard [Sun, 23 Sep 2012 23:25:57 +0200] rev 2079
Fix C code Generator to use CoE section contained in the slave ESI file for defining Ethercat network configuration

Sat, 22 Sep 2012 12:07:06 +0200Merged
Laurent Bessard [Sat, 22 Sep 2012 12:07:06 +0200] rev 2078
Merged

Wed, 19 Sep 2012 11:03:25 +0200Fix bug when modifying slave position
Laurent Bessard [Wed, 19 Sep 2012 11:03:25 +0200] rev 2077
Fix bug when modifying slave position

Fri, 21 Sep 2012 16:02:33 +0200Better jitter compensation before sending Ethercat frame. Jitter can be compensed in both directions, within some limits
Edouard Tisserant [Fri, 21 Sep 2012 16:02:33 +0200] rev 2076
Better jitter compensation before sending Ethercat frame. Jitter can be compensed in both directions, within some limits

Wed, 19 Sep 2012 03:30:58 +0200Different etherlab sequencing within retrieve and publish. Now, timer is polled after PLC exec until frame have to be sent. This slightly reduce jitter, compared to previous sequencing
Edouard Tisserant [Wed, 19 Sep 2012 03:30:58 +0200] rev 2075
Different etherlab sequencing within retrieve and publish. Now, timer is polled after PLC exec until frame have to be sent. This slightly reduce jitter, compared to previous sequencing

Thu, 13 Sep 2012 11:07:51 +0200Adding support for loading Profile dictionaries only if needed
Laurent Bessard [Thu, 13 Sep 2012 11:07:51 +0200] rev 2074
Adding support for loading Profile dictionaries only if needed

Wed, 12 Sep 2012 18:13:28 +0200Fix bug modules present in all groups with the same name even if they are defined by different vendors
Laurent Bessard [Wed, 12 Sep 2012 18:13:28 +0200] rev 2073
Fix bug modules present in all groups with the same name even if they are defined by different vendors

Sun, 09 Sep 2012 22:59:07 +0200Fix bug variable entries table column headers not translated
Laurent Bessard [Sun, 09 Sep 2012 22:59:07 +0200] rev 2072
Fix bug variable entries table column headers not translated

Fri, 07 Sep 2012 18:30:35 +0200Fix import after integration of plcopeneditor into Beremiz
Laurent Bessard [Fri, 07 Sep 2012 18:30:35 +0200] rev 2071
Fix import after integration of plcopeneditor into Beremiz

Tue, 04 Sep 2012 15:00:35 +0200Removing call to UpdateAxis and ComputeAxis in CIA DS402 node generated retrieve and publish functions. These calls have been transfered to MCL library retrieve and publish functions.
Laurent Bessard [Tue, 04 Sep 2012 15:00:35 +0200] rev 2070
Removing call to UpdateAxis and ComputeAxis in CIA DS402 node generated retrieve and publish functions. These calls have been transfered to MCL library retrieve and publish functions.

Fri, 20 Jul 2012 02:13:07 +0200Fix bug with AXIS_REF allocation
Laurent Bessard [Fri, 20 Jul 2012 02:13:07 +0200] rev 2069
Fix bug with AXIS_REF allocation

Mon, 25 Jun 2012 20:06:17 +0200Adding support using plcopeneditor bitmap library for icon request
Laurent Bessard [Mon, 25 Jun 2012 20:06:17 +0200] rev 2068
Adding support using plcopeneditor bitmap library for icon request

Mon, 25 Jun 2012 12:12:51 +0200Fix bug slave information panel not refreshed when slave type changed
Laurent Bessard [Mon, 25 Jun 2012 12:12:51 +0200] rev 2067
Fix bug slave information panel not refreshed when slave type changed

Tue, 19 Jun 2012 20:28:05 +0200Fix bug when modifying node parameters
Laurent Bessard [Tue, 19 Jun 2012 20:28:05 +0200] rev 2066
Fix bug when modifying node parameters

Mon, 11 Jun 2012 02:37:23 +0200Merged
laurent [Mon, 11 Jun 2012 02:37:23 +0200] rev 2065
Merged

Mon, 11 Jun 2012 02:25:57 +0200Fix disable dynamic PDOs support
Laurent Bessard [Mon, 11 Jun 2012 02:25:57 +0200] rev 2064
Fix disable dynamic PDOs support

Mon, 11 Jun 2012 01:21:26 +0200Fix bug with AXIS_REF located variable drag'n drop and disable dynamic PDOs support
Laurent Bessard [Mon, 11 Jun 2012 01:21:26 +0200] rev 2063
Fix bug with AXIS_REF located variable drag'n drop and disable dynamic PDOs support

Sun, 10 Jun 2012 20:16:17 +0200Adding support for getting CIA402 slave AXIS_REF located variables and disabling dynamic PDO mapping algorithm for drives than doesn't support this functionality
Laurent Bessard [Sun, 10 Jun 2012 20:16:17 +0200] rev 2062
Adding support for getting CIA402 slave AXIS_REF located variables and disabling dynamic PDO mapping algorithm for drives than doesn't support this functionality

Mon, 04 Jun 2012 19:00:58 +0200Changed AXIS_REF registration call name
Edouard Tisserant [Mon, 04 Jun 2012 19:00:58 +0200] rev 2061
Changed AXIS_REF registration call name

Wed, 23 May 2012 16:30:41 +0200Fixing bug on ConfNodeEditors refresh
Laurent Bessard [Wed, 23 May 2012 16:30:41 +0200] rev 2060
Fixing bug on ConfNodeEditors refresh

Wed, 23 May 2012 16:13:49 +0200fixed multiple cia402 instance symbol collision
Edouard Tisserant [Wed, 23 May 2012 16:13:49 +0200] rev 2059
fixed multiple cia402 instance symbol collision

Wed, 23 May 2012 10:39:14 +0200Replacing Panel by ScrolledWindow for displaying node information for more clarity when window is small
Laurent Bessard [Wed, 23 May 2012 10:39:14 +0200] rev 2058
Replacing Panel by ScrolledWindow for displaying node information for more clarity when window is small

Tue, 22 May 2012 22:28:05 +0200Removing ModesOfOperation parameter until handled by MCL
Laurent Bessard [Tue, 22 May 2012 22:28:05 +0200] rev 2057
Removing ModesOfOperation parameter until handled by MCL

Mon, 21 May 2012 18:47:56 +0200Fix bug with VariablesList on Windows
laurent [Mon, 21 May 2012 18:47:56 +0200] rev 2056
Fix bug with VariablesList on Windows

Mon, 21 May 2012 10:21:41 +0200refactoring
laurent [Mon, 21 May 2012 10:21:41 +0200] rev 2055
refactoring

Mon, 21 May 2012 10:07:35 +0200Merged
laurent [Mon, 21 May 2012 10:07:35 +0200] rev 2054
Merged

Mon, 21 May 2012 10:07:11 +0200refactoring
laurent [Mon, 21 May 2012 10:07:11 +0200] rev 2053
refactoring

Mon, 21 May 2012 09:31:15 +0200Merged
laurent [Mon, 21 May 2012 09:31:15 +0200] rev 2052
Merged

Fri, 18 May 2012 18:51:07 +0200refactoring
laurent [Fri, 18 May 2012 18:51:07 +0200] rev 2051
refactoring

Mon, 21 May 2012 04:34:10 +0200Fixed example build with installer 1.1
Edouard Tisserant [Mon, 21 May 2012 04:34:10 +0200] rev 2050
Fixed example build with installer 1.1

Sun, 20 May 2012 23:05:36 +0200updated examples also
Edouard Tisserant [Sun, 20 May 2012 23:05:36 +0200] rev 2049
updated examples also

Sun, 20 May 2012 22:42:37 +0200reflected changes in beremiz extension mechanism
Edouard Tisserant [Sun, 20 May 2012 22:42:37 +0200] rev 2048
reflected changes in beremiz extension mechanism

Mon, 14 May 2012 07:43:40 +0900Fixed wrong PDO in unused sync managers\nFix higen drive ethercat example
edouard_and_laurent [Mon, 14 May 2012 07:43:40 +0900] rev 2047
Fixed wrong PDO in unused sync managers\nFix higen drive ethercat example

Mon, 30 Apr 2012 16:21:30 +0200Fix Ethercat xsd files
laurent [Mon, 30 Apr 2012 16:21:30 +0200] rev 2046
Fix Ethercat xsd files

Sun, 01 Apr 2012 16:36:41 +0200Adding test project using higen drive
laurent [Sun, 01 Apr 2012 16:36:41 +0200] rev 2045
Adding test project using higen drive

Sat, 31 Mar 2012 15:13:14 +0200Adding forgotten icons
laurent [Sat, 31 Mar 2012 15:13:14 +0200] rev 2044
Adding forgotten icons

Wed, 21 Mar 2012 11:15:47 +0100Adding plugin icons and replacing reference to DS402 by CIA402
laurent [Wed, 21 Mar 2012 11:15:47 +0100] rev 2043
Adding plugin icons and replacing reference to DS402 by CIA402

Mon, 19 Mar 2012 00:45:19 +0100Adding support for remotely scanning Etherlab network and automatically configure it
laurent [Mon, 19 Mar 2012 00:45:19 +0100] rev 2042
Adding support for remotely scanning Etherlab network and automatically configure it

Sun, 18 Mar 2012 23:57:32 +0100Defining all slaves as Etherlab master subplugin instead of editing them in an editor with vertical notebook
laurent [Sun, 18 Mar 2012 23:57:32 +0100] rev 2041
Defining all slaves as Etherlab master subplugin instead of editing them in an editor with vertical notebook

Sun, 11 Mar 2012 21:57:00 +0100Adding Ethercat network scan command for testing (print result, network configuration not modified)
laurent [Sun, 11 Mar 2012 21:57:00 +0100] rev 2040
Adding Ethercat network scan command for testing (print result, network configuration not modified)

Sun, 11 Mar 2012 21:53:35 +0100Adding support for uploading default value for unused entries in output pdos from slaves before starting master
laurent [Sun, 11 Mar 2012 21:53:35 +0100] rev 2039
Adding support for uploading default value for unused entries in output pdos from slaves before starting master

Sun, 11 Mar 2012 19:32:44 +0100Replacing wx.Grid control by a wx.TreeListCtrl for displaying slaves entries
laurent [Sun, 11 Mar 2012 19:32:44 +0100] rev 2038
Replacing wx.Grid control by a wx.TreeListCtrl for displaying slaves entries

Wed, 29 Feb 2012 12:00:20 +0100Fix bug when trying to drag'n drop variable from slave variables grid
laurent [Wed, 29 Feb 2012 12:00:20 +0100] rev 2037
Fix bug when trying to drag'n drop variable from slave variables grid

Thu, 23 Feb 2012 23:34:40 +0100Adding support for setting TargetPosition only if PositionSetPoint value from MCL is valid
laurent [Thu, 23 Feb 2012 23:34:40 +0100] rev 2036
Adding support for setting TargetPosition only if PositionSetPoint value from MCL is valid

Thu, 23 Feb 2012 15:48:19 +0100Fix bug with PowerFeedback value
laurent [Thu, 23 Feb 2012 15:48:19 +0100] rev 2035
Fix bug with PowerFeedback value

Wed, 22 Feb 2012 01:39:22 +0100Adding support for MCL
laurent [Wed, 22 Feb 2012 01:39:22 +0100] rev 2034
Adding support for MCL

Thu, 16 Feb 2012 18:40:13 +0100Added test directory
Edouard Tisserant [Thu, 16 Feb 2012 18:40:13 +0100] rev 2033
Added test directory

Wed, 15 Feb 2012 00:38:26 +0100Adding support for DS402 node subplugin (only simple state transition implemented)
laurent [Wed, 15 Feb 2012 00:38:26 +0100] rev 2032
Adding support for DS402 node subplugin (only simple state transition implemented)

Tue, 07 Feb 2012 19:45:45 +0100Fix some issues regarding arbitrary variable mapping
laurent [Tue, 07 Feb 2012 19:45:45 +0100] rev 2031
Fix some issues regarding arbitrary variable mapping

Wed, 01 Feb 2012 00:04:58 +0100Moving Add and Remove button to Plugin menu items
laurent [Wed, 01 Feb 2012 00:04:58 +0100] rev 2030
Moving Add and Remove button to Plugin menu items

Tue, 17 Jan 2012 17:24:53 +0100Adding support for displaying slave sync managers and profile object dictionary and for arbitrarily mapping variable through variable location
laurent [Tue, 17 Jan 2012 17:24:53 +0100] rev 2029
Adding support for displaying slave sync managers and profile object dictionary and for arbitrarily mapping variable through variable location

Tue, 10 Jan 2012 15:11:22 +0100Merge with Donggu modifications
laurent [Tue, 10 Jan 2012 15:11:22 +0100] rev 2028
Merge with Donggu modifications

Tue, 10 Jan 2012 15:10:08 +0100Merge with Donggu modifications
laurent [Tue, 10 Jan 2012 15:10:08 +0100] rev 2027
Merge with Donggu modifications

Sun, 08 Jan 2012 19:05:05 +0100Adding support for drag'n dropping located variables from topology panel to configurations and resources variable panel for declaring global located variables
laurent [Sun, 08 Jan 2012 19:05:05 +0100] rev 2026
Adding support for drag'n dropping located variables from topology panel to configurations and resources variable panel for declaring global located variables

Thu, 22 Dec 2011 14:52:18 +0900Master relase code added
Donggu Kang <dgkang@higenmotor.com> [Thu, 22 Dec 2011 14:52:18 +0900] rev 2025
Master relase code added

Thu, 22 Dec 2011 14:44:58 +0900Master release code added
Donggu Kang <dgkang@higenmotor.com> [Thu, 22 Dec 2011 14:44:58 +0900] rev 2024
Master release code added

Tue, 20 Dec 2011 23:43:27 +0100Adding support for not configuring pdos when not mandatory and not needed by locations defined in PLC program. Adding support for displaying locations tree in Topology panel and BrowseLocationsDialog. Merging pdos grid and variables grid into one single grid in slave infos panel.
laurent [Tue, 20 Dec 2011 23:43:27 +0100] rev 2023
Adding support for not configuring pdos when not mandatory and not needed by locations defined in PLC program. Adding support for displaying locations tree in Topology panel and BrowseLocationsDialog. Merging pdos grid and variables grid into one single grid in slave infos panel.

Sun, 18 Dec 2011 19:42:13 +0100First working implementation of Beremiz plugin for etherlab
laurent [Sun, 18 Dec 2011 19:42:13 +0100] rev 2022
First working implementation of Beremiz plugin for etherlab

Mon, 11 Jun 2018 08:34:15 +0200merge
Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 11 Jun 2018 08:34:15 +0200] rev 2021
merge

Fri, 08 Jun 2018 13:28:00 +0200Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant [Fri, 08 Jun 2018 13:28:00 +0200] rev 2020
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>

Fri, 08 Jun 2018 09:43:48 +0200Make Modbus extension license compatible with the rest of Beremiz IDE python code : GPLv2.
Edouard Tisserant [Fri, 08 Jun 2018 09:43:48 +0200] rev 2019
Make Modbus extension license compatible with the rest of Beremiz IDE python code : GPLv2.

Mon, 04 Jun 2018 11:22:08 +0200Commented out safety check to prevent deadlock in wxEvaluator, since wx Mainloop is not anymore in main thread. That safety check actually leads to having wx code running outside of MainLoop
Edouard Tisserant [Mon, 04 Jun 2018 11:22:08 +0200] rev 2018
Commented out safety check to prevent deadlock in wxEvaluator, since wx Mainloop is not anymore in main thread. That safety check actually leads to having wx code running outside of MainLoop

Wed, 23 May 2018 20:22:45 +0200Merge
Edouard Tisserant <edouard.tisserant@gmail.com> [Wed, 23 May 2018 20:22:45 +0200] rev 2017
Merge

Wed, 23 May 2018 12:13:48 +0300Print version information about software used for tests
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 23 May 2018 12:13:48 +0300] rev 2016
Print version information about software used for tests

Wed, 23 May 2018 11:48:34 +0300Fix codestyle
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 23 May 2018 11:48:34 +0300] rev 2015
Fix codestyle

Wed, 23 May 2018 11:47:56 +0300Fix typos introduced by 9fa2f8e "Fixed random segfault happening when loading new PLC in runtime, when using Xenonai."
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 23 May 2018 11:47:56 +0300] rev 2014
Fix typos introduced by 9fa2f8e "Fixed random segfault happening when loading new PLC in runtime, when using Xenonai."

Tue, 22 May 2018 17:28:18 +0300merged changes in README.md
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 22 May 2018 17:28:18 +0300] rev 2013
merged changes in README.md

Mon, 12 Mar 2018 14:10:19 +0000add python-cycler dependence in readme
Sergey Surkov <surkovsv93@gmail.com> [Mon, 12 Mar 2018 14:10:19 +0000] rev 2012
add python-cycler dependence in readme

Wed, 23 May 2018 10:53:57 +0200Make Modbus mutexes non blocking for PLC. If data related to some modbus request is alredy locked when PLC wants to access it, then data isn't copied to/from PLC
Edouard Tisserant [Wed, 23 May 2018 10:53:57 +0200] rev 2011
Make Modbus mutexes non blocking for PLC. If data related to some modbus request is alredy locked when PLC wants to access it, then data isn't copied to/from PLC

Thu, 17 May 2018 09:33:58 +0200Merged #2476, URI dialog fixes
Edouard Tisserant [Thu, 17 May 2018 09:33:58 +0200] rev 2010
Merged #2476, URI dialog fixes

Thu, 17 May 2018 09:33:14 +0200close branch #2476 - URI dialog fixed #2476
Edouard Tisserant [Thu, 17 May 2018 09:33:14 +0200] rev 2009
close branch #2476 - URI dialog fixed

Mon, 14 May 2018 13:26:35 +0200#2476 Changes to the comment. #2476
dporopat <denis.poropat@smarteh.si> [Mon, 14 May 2018 13:26:35 +0200] rev 2008
#2476 Changes to the comment.

Thu, 10 May 2018 13:11:11 +0200#2476 Connectors dialog module added. #2476
dporopat <denis.poropat@smarteh.si> [Thu, 10 May 2018 13:11:11 +0200] rev 2007
#2476 Connectors dialog module added.

Wed, 09 May 2018 15:09:54 +0200#2476 Separate connectors dialogs from connectors module. #2476
dporopat <denis.poropat@smarteh.si> [Wed, 09 May 2018 15:09:54 +0200] rev 2006
#2476 Separate connectors dialogs from connectors module.

Wed, 09 May 2018 11:16:27 +0200#2476 Additional check added if we can import wx. #2476
dporopat <denis.poropat@smarteh.si> [Wed, 09 May 2018 11:16:27 +0200] rev 2005
#2476 Additional check added if we can import wx.

Thu, 10 May 2018 08:33:50 +0200Allow deleting configuration tree node with no corresponding directory in project tree
Edouard Tisserant [Thu, 10 May 2018 08:33:50 +0200] rev 2004
Allow deleting configuration tree node with no corresponding directory in project tree

Mon, 07 May 2018 15:10:39 +0200Support unicode in LDFLAGS returned by extensions
Edouard Tisserant [Mon, 07 May 2018 15:10:39 +0200] rev 2003
Support unicode in LDFLAGS returned by extensions

Mon, 07 May 2018 14:19:08 +0200Fixed typos
Edouard Tisserant [Mon, 07 May 2018 14:19:08 +0200] rev 2002
Fixed typos

Fri, 20 Apr 2018 11:21:20 +0200#2476 Added uri location editor, getting connectors from list in Beremiz. #2476
dporopat <denis.poropat@smarteh.si> [Fri, 20 Apr 2018 11:21:20 +0200] rev 2001
#2476 Added uri location editor, getting connectors from list in Beremiz.

Fri, 27 Apr 2018 16:32:53 +0200Fixed random segfault happening when loading new PLC in runtime, when using Xenonai.
Edouard Tisserant [Fri, 27 Apr 2018 16:32:53 +0200] rev 2000
Fixed random segfault happening when loading new PLC in runtime, when using Xenonai.

Thu, 19 Apr 2018 15:17:05 +0200PEP-8 and PyLint
Edouard Tisserant [Thu, 19 Apr 2018 15:17:05 +0200] rev 1999
PEP-8 and PyLint

Thu, 19 Apr 2018 15:03:23 +0200merged Denis change to apply input as we type in CTN configuration forms text fieds
Edouard Tisserant [Thu, 19 Apr 2018 15:03:23 +0200] rev 1998
merged Denis change to apply input as we type in CTN configuration forms text fieds

Thu, 19 Apr 2018 14:53:42 +0200PEP-8 and PyLint
Edouard Tisserant [Thu, 19 Apr 2018 14:53:42 +0200] rev 1997
PEP-8 and PyLint

Thu, 19 Apr 2018 13:09:41 +0200Add safety check to prevent exception when disconnecting while debugging
Edouard Tisserant [Thu, 19 Apr 2018 13:09:41 +0200] rev 1996
Add safety check to prevent exception when disconnecting while debugging

Thu, 19 Apr 2018 13:02:13 +0200Removed DebugThread. Take advantage of the fact that buffering is done in runtime. No need to poll for traces more than ten per second, then use simple wxTimer for that. Also removed Debug Lock since now everything happens in wx' mainloop.
Edouard Tisserant [Thu, 19 Apr 2018 13:02:13 +0200] rev 1995
Removed DebugThread. Take advantage of the fact that buffering is done in runtime. No need to poll for traces more than ten per second, then use simple wxTimer for that. Also removed Debug Lock since now everything happens in wx' mainloop.

Thu, 19 Apr 2018 12:22:40 +0200Rework of runtime non-real-time threading, and shared object dynamic loading :
Edouard Tisserant [Thu, 19 Apr 2018 12:22:40 +0200] rev 1994
Rework of runtime non-real-time threading, and shared object dynamic loading :
- All exposed operations on PLCObject are now serialized through main thread
(@RunInMain). Only one exception : python trace thread calling _GetDebugData
- Re-loading of same shared object is prevented. dlclose/delte/rewrite/dlopen
don't happen in that case. This is a workaround for some xenomai copperplate
bug triggering segfault, inbetween delete and rewrite.
- Trace thread now waits for data, dies if no data, and dies instead of
suspending as before when no data consumed after 3 seconds.
- Disabled threading in Pyro client
- Enforced auxiliary threads starting sequence : Pyro -> [UI] ->
PLCWorker.RunLoop

Tue, 17 Apr 2018 11:19:18 +0200Stripped forgotten debug code
Edouard Tisserant [Tue, 17 Apr 2018 11:19:18 +0200] rev 1993
Stripped forgotten debug code

Thu, 19 Apr 2018 15:06:10 +0200close branch #2476
Edouard Tisserant <edouard.tisserant@gmail.com> [Thu, 19 Apr 2018 15:06:10 +0200] rev 1992
close branch

Thu, 19 Apr 2018 09:50:00 +0200#2476 Fix for saving text in URI edit text box. No need to click out of URI edit text box to save edited text. #2476
dporopat <denis.poropat@smarteh.si> [Thu, 19 Apr 2018 09:50:00 +0200] rev 1991
#2476 Fix for saving text in URI edit text box. No need to click out of URI edit text box to save edited text.

Mon, 16 Apr 2018 16:11:18 +0200Fixed Xenomai 3 PLC stop freeze. Now use explicit finish command with pipes. Closing both ends of pipes doesn't abort blocking read anymore.
Edouard Tisserant [Mon, 16 Apr 2018 16:11:18 +0200] rev 1990
Fixed Xenomai 3 PLC stop freeze. Now use explicit finish command with pipes. Closing both ends of pipes doesn't abort blocking read anymore.

Mon, 16 Apr 2018 11:00:04 +0200More canonical test.
Edouard Tisserant [Mon, 16 Apr 2018 11:00:04 +0200] rev 1989
More canonical test.
There is an exception happening around here in some cases when connection is dropped while waiting for answer. Not sure that this fixes it but this is anyhow better.

Sat, 14 Apr 2018 10:09:33 +0200PLCObject got more methods serialized through worker : Start, Stop, NewPLC.
Edouard Tisserant [Sat, 14 Apr 2018 10:09:33 +0200] rev 1988
PLCObject got more methods serialized through worker : Start, Stop, NewPLC.
This particularly helps with initialization/startup/re-load problems
when targeting Xenomai. It should help in general for runtime robustness,
since those operations aren't meant to be executed concurrently.

Fri, 13 Apr 2018 00:29:52 +0200Fixed implementation of runtime worker that ensure that PLCObject Load and Unload methods always run main thread.
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 13 Apr 2018 00:29:52 +0200] rev 1987
Fixed implementation of runtime worker that ensure that PLCObject Load and Unload methods always run main thread.

Thu, 12 Apr 2018 22:32:43 +0200merged
Edouard Tisserant <edouard.tisserant@gmail.com> [Thu, 12 Apr 2018 22:32:43 +0200] rev 1986
merged

Thu, 12 Apr 2018 22:32:12 +0200merged
Edouard Tisserant <edouard.tisserant@gmail.com> [Thu, 12 Apr 2018 22:32:12 +0200] rev 1985
merged

Thu, 12 Apr 2018 22:20:38 +0200Intermediate state while implementing runtime worker to ensure that PLCObject Load and Unload methods always run main thread.
Edouard Tisserant [Thu, 12 Apr 2018 22:20:38 +0200] rev 1984
Intermediate state while implementing runtime worker to ensure that PLCObject Load and Unload methods always run main thread.

Thu, 12 Apr 2018 16:38:09 +0200Stripped more dead code.
Edouard Tisserant [Thu, 12 Apr 2018 16:38:09 +0200] rev 1983
Stripped more dead code.

Thu, 12 Apr 2018 16:33:44 +0200Cleanup of some dead code in PYRO connector.
Edouard Tisserant [Thu, 12 Apr 2018 16:33:44 +0200] rev 1982
Cleanup of some dead code in PYRO connector.

Thu, 12 Apr 2018 16:31:30 +0200Added logging in Xenomai init phase.
Edouard Tisserant [Thu, 12 Apr 2018 16:31:30 +0200] rev 1981
Added logging in Xenomai init phase.

Thu, 12 Apr 2018 16:29:43 +0200Apply new RT Pipes API from Xenomai 3
Edouard Tisserant [Thu, 12 Apr 2018 16:29:43 +0200] rev 1980
Apply new RT Pipes API from Xenomai 3

Thu, 12 Apr 2018 16:27:22 +0200Removed useless try/except in Canfestival.py
Edouard Tisserant [Thu, 12 Apr 2018 16:27:22 +0200] rev 1979
Removed useless try/except in Canfestival.py

Tue, 10 Apr 2018 13:36:36 +0200#2579 On showing search result, text color of tree item is set to white. We need to change back color to show the result.
dporopat <denis.poropat@smarteh.si> [Tue, 10 Apr 2018 13:36:36 +0200] rev 1978
#2579 On showing search result, text color of tree item is set to white. We need to change back color to show the result.

Thu, 29 Mar 2018 23:33:36 +0200PEP-8...
Edouard Tisserant <edouard.tisserant@gmail.com> [Thu, 29 Mar 2018 23:33:36 +0200] rev 1977
PEP-8...

Thu, 29 Mar 2018 23:25:26 +0200Fixed bug that was creating many frames at starup on Windows
Edouard Tisserant <edouard.tisserant@gmail.com> [Thu, 29 Mar 2018 23:25:26 +0200] rev 1976
Fixed bug that was creating many frames at starup on Windows

Sun, 25 Mar 2018 16:22:36 +0200re-merge
Edouard Tisserant <edouard.tisserant@gmail.com> [Sun, 25 Mar 2018 16:22:36 +0200] rev 1975
re-merge

Mon, 19 Mar 2018 16:18:17 +0100Xenomai 3
Edouard Tisserant [Mon, 19 Mar 2018 16:18:17 +0100] rev 1974
Xenomai 3

Fri, 02 Mar 2018 17:01:25 +0100merged Sergeys changes
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 02 Mar 2018 17:01:25 +0100] rev 1973
merged Sergeys changes

Mon, 19 Feb 2018 19:36:43 +0300fix bug with indelible values in some 'optional' fields in project properties panel
Surkov Sergey <surkovsv93@gmail.com> [Mon, 19 Feb 2018 19:36:43 +0300] rev 1972
fix bug with indelible values in some 'optional' fields in project properties panel

only 'required' fields should be indelible

Mon, 19 Feb 2018 19:10:07 +0300make the URI model compatible with https
Surkov Sergey <surkovsv93@gmail.com> [Mon, 19 Feb 2018 19:10:07 +0300] rev 1971
make the URI model compatible with https

Mon, 19 Feb 2018 19:02:25 +0300add address validation in Company URL field
Surkov Sergey <surkovsv93@gmail.com> [Mon, 19 Feb 2018 19:02:25 +0300] rev 1970
add address validation in Company URL field

Fri, 02 Feb 2018 17:16:04 +0300remove duplicating code for variables name generate
Surkov Sergey <surkovsv93@gmail.com> [Fri, 02 Feb 2018 17:16:04 +0300] rev 1969
remove duplicating code for variables name generate

Wed, 31 Jan 2018 16:31:01 +0300add fields autocomplete when adding task or instance in resources
Surkov Sergey <surkovsv93@gmail.com> [Wed, 31 Jan 2018 16:31:01 +0300] rev 1968
add fields autocomplete when adding task or instance in resources

values will be copied from previous row, first row fills with the default values

Thu, 18 Jan 2018 14:24:44 +0300fix search in TextViewer objects, search returns only first entry
Surkov Sergey <surkovsv93@gmail.com> [Thu, 18 Jan 2018 14:24:44 +0300] rev 1967
fix search in TextViewer objects, search returns only first entry

side effect of a63bb40

Thu, 18 Jan 2018 14:03:29 +0300fix import order according to PEP8
Surkov Sergey <surkovsv93@gmail.com> [Thu, 18 Jan 2018 14:03:29 +0300] rev 1966
fix import order according to PEP8

Mon, 15 Jan 2018 12:06:24 +0300fix default time range choice for debug variable panel
Surkov Sergey <surkovsv93@gmail.com> [Mon, 15 Jan 2018 12:06:24 +0300] rev 1965
fix default time range choice for debug variable panel

only localized versions were affected

Fri, 12 Jan 2018 18:36:02 +0300enlarge canvas border for debug variable graphic viewer
Surkov Sergey <surkovsv93@gmail.com> [Fri, 12 Jan 2018 18:36:02 +0300] rev 1964
enlarge canvas border for debug variable graphic viewer

Fri, 12 Jan 2018 18:33:54 +0300fix rounding milliseconds from nanoseconds
Surkov Sergey <surkovsv93@gmail.com> [Fri, 12 Jan 2018 18:33:54 +0300] rev 1963
fix rounding milliseconds from nanoseconds

example:rounding 299999 ns to 300ms, if division result is an
integer, remainder will be lost, and result will be 299.

Fri, 12 Jan 2018 17:56:48 +0300fix display TIME type variables in debug variable panel
Surkov Sergey <surkovsv93@gmail.com> [Fri, 12 Jan 2018 17:56:48 +0300] rev 1962
fix display TIME type variables in debug variable panel

Thu, 01 Mar 2018 14:28:55 +0100fix for test app from skv. thanks
Edouard Tisserant <edouard.tisserant@gmail.com> [Thu, 01 Mar 2018 14:28:55 +0100] rev 1961
fix for test app from skv. thanks

Thu, 01 Mar 2018 10:28:17 +0100Prevent catching exception if exception handling was not enabled (or disabled by test test app).
Edouard Tisserant <edouard.tisserant@gmail.com> [Thu, 01 Mar 2018 10:28:17 +0100] rev 1960
Prevent catching exception if exception handling was not enabled (or disabled by test test app).

Thu, 01 Mar 2018 09:41:12 +0100pep8 and pylint hate me
Edouard Tisserant <edouard.tisserant@gmail.com> [Thu, 01 Mar 2018 09:41:12 +0100] rev 1959
pep8 and pylint hate me

Wed, 28 Feb 2018 16:10:05 +0100Fixed typo introduced in 5736d25bb393
Edouard Tisserant [Wed, 28 Feb 2018 16:10:05 +0100] rev 1958
Fixed typo introduced in 5736d25bb393

Fri, 23 Feb 2018 11:16:25 +0100GetEditedElementInstancesInfos now optimized as well. Forgotten because not using [R.I.P]LibraryResolver, but still XSLT compiling was hapenning on each call.
Edouard Tisserant [Fri, 23 Feb 2018 11:16:25 +0100] rev 1957
GetEditedElementInstancesInfos now optimized as well. Forgotten because not using [R.I.P]LibraryResolver, but still XSLT compiling was hapenning on each call.

Tue, 20 Feb 2018 15:09:01 +0100Another attempt to make BitBuket's version of pylint happy.
Edouard Tisserant [Tue, 20 Feb 2018 15:09:01 +0100] rev 1956
Another attempt to make BitBuket's version of pylint happy.

Tue, 20 Feb 2018 14:46:12 +0100Attempt to make BitBuket's version of pep8 and pylint happy.
Edouard Tisserant [Tue, 20 Feb 2018 14:46:12 +0100] rev 1955
Attempt to make BitBuket's version of pep8 and pylint happy.

Tue, 20 Feb 2018 14:24:30 +0100Removed dead slow code
Edouard Tisserant [Tue, 20 Feb 2018 14:24:30 +0100] rev 1954
Removed dead slow code

Tue, 20 Feb 2018 14:16:51 +0100PEP8 and PyLint conformance: whitespaces and stuff
Edouard Tisserant [Tue, 20 Feb 2018 14:16:51 +0100] rev 1953
PEP8 and PyLint conformance: whitespaces and stuff

Tue, 20 Feb 2018 11:24:40 +0100Copy pasted, no time wasted !
Edouard Tisserant [Tue, 20 Feb 2018 11:24:40 +0100] rev 1952
Copy pasted, no time wasted !

Tue, 20 Feb 2018 11:24:10 +0100GetVariableDictionary and GetPouInterfaceReturnType optimized with new VariableInfoCollector based on XSLTModelQuery. Moved corresponding definitions out of PLCControler.py.
Edouard Tisserant [Tue, 20 Feb 2018 11:24:10 +0100] rev 1951
GetVariableDictionary and GetPouInterfaceReturnType optimized with new VariableInfoCollector based on XSLTModelQuery. Moved corresponding definitions out of PLCControler.py.

Mon, 19 Feb 2018 15:46:50 +0100GetPouInstanceTagName optimized with XSLTModelQuery.
Edouard Tisserant [Mon, 19 Feb 2018 15:46:50 +0100] rev 1950
GetPouInstanceTagName optimized with XSLTModelQuery.

Mon, 19 Feb 2018 15:15:36 +0100Better writing of some xpath added in previous commits about XSLT optimization.
Edouard Tisserant [Mon, 19 Feb 2018 15:15:36 +0100] rev 1949
Better writing of some xpath added in previous commits about XSLT optimization.

Mon, 19 Feb 2018 15:14:30 +0100Moved some definitions away from controller class, and adaped references them through all code.
Edouard Tisserant [Mon, 19 Feb 2018 15:14:30 +0100] rev 1948
Moved some definitions away from controller class, and adaped references them through all code.

Mon, 19 Feb 2018 13:24:57 +0100Hook Beremiz Launcher AppStart to AdvancedSplash OnPaint event in order to ensure image is beeing displayed before loading.
Edouard Tisserant [Mon, 19 Feb 2018 13:24:57 +0100] rev 1947
Hook Beremiz Launcher AppStart to AdvancedSplash OnPaint event in order to ensure image is beeing displayed before loading.

Sun, 18 Feb 2018 22:29:35 +0100Avoid endline escaping in multiline xpath epressions in xslt. '&#10;' Is apparently ignored but never know...
Edouard Tisserant <edouard.tisserant@gmail.com> [Sun, 18 Feb 2018 22:29:35 +0100] rev 1946
Avoid endline escaping in multiline xpath epressions in xslt. '&#10;' Is apparently ignored but never know...

Sun, 18 Feb 2018 21:51:33 +0100Fixed earlier XSLT optimizations. Some/most results were missing.
Edouard Tisserant <edouard.tisserant@gmail.com> [Sun, 18 Feb 2018 21:51:33 +0100] rev 1945
Fixed earlier XSLT optimizations. Some/most results were missing.

Sun, 18 Feb 2018 21:30:48 +0100Moved some code from PLCController.py to other modules. Added necessary imports.
Edouard Tisserant <edouard.tisserant@gmail.com> [Sun, 18 Feb 2018 21:30:48 +0100] rev 1944
Moved some code from PLCController.py to other modules. Added necessary imports.

Sat, 17 Feb 2018 23:58:47 +0100GetPouVariables optimized with XSLTModelQuery
Edouard Tisserant <edouard.tisserant@gmail.com> [Sat, 17 Feb 2018 23:58:47 +0100] rev 1943
GetPouVariables optimized with XSLTModelQuery

Sat, 17 Feb 2018 16:42:56 +0100Added /plcopen/InstancesPathCollector.py, to move more model xslt querying code away from PLCController.py.
Edouard Tisserant <edouard.tisserant@gmail.com> [Sat, 17 Feb 2018 16:42:56 +0100] rev 1942
Added /plcopen/InstancesPathCollector.py, to move more model xslt querying code away from PLCController.py.

Fri, 16 Feb 2018 18:38:30 +0100Fixed Exception dialog disapearing after a view second when exception occurs during app startup.
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 16 Feb 2018 18:38:30 +0100] rev 1941
Fixed Exception dialog disapearing after a view second when exception occurs during app startup.
Problem was caused by splashscreen timeout, wx closing averything else if there is no more main frame.
Changes:
- no more timeout for splashscreen
- use wx.App OnInit method to give first operation to mainloop, object are then now created in mainloop
- main loop is then created _before_ showing splash screen
- no more wxyield or wx processevent tricks needed to display splash screen
- exception handler not blocking anymore on dialog (callafter)
- because of mainloop being there before everything, exit must be called explicitely if exception caught during startup -> exit parameter in handle_exception + try/except around startup calls

UNTESTED ON WINDOWS

Fri, 16 Feb 2018 18:24:55 +0100Moved XSLTModelQuery class to own module in plcopen package.
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 16 Feb 2018 18:24:55 +0100] rev 1940
Moved XSLTModelQuery class to own module in plcopen package.

Fri, 16 Feb 2018 13:00:06 +0100Added a class to speedup all XSLT queries. WIP, now only for instances_path.xslt / GetInstanceList()
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 16 Feb 2018 13:00:06 +0100] rev 1939
Added a class to speedup all XSLT queries. WIP, now only for instances_path.xslt / GetInstanceList()

Fri, 16 Feb 2018 03:24:11 +0100Stripped useless node creation in instances_path stylesheet.
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 16 Feb 2018 03:24:11 +0100] rev 1938
Stripped useless node creation in instances_path stylesheet.

Fri, 16 Feb 2018 02:29:10 +0100This should really help GetInstanceList to perform better: resolver removed, no more deepcopy, no more useless xml serialization, no more node-set() calls.
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 16 Feb 2018 02:29:10 +0100] rev 1937
This should really help GetInstanceList to perform better: resolver removed, no more deepcopy, no more useless xml serialization, no more node-set() calls.

Fri, 16 Feb 2018 01:48:48 +0100YSLT auto indent trick is useless here, added yslt_noindent.yml2, regenerated XSLT files
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 16 Feb 2018 01:48:48 +0100] rev 1936
YSLT auto indent trick is useless here, added yslt_noindent.yml2, regenerated XSLT files

Fri, 16 Feb 2018 01:38:34 +0100Prevent compiling XSLT on each call of GetInstanceList. To be continued. More optimization needed here. 100x would be fine...
Edouard Tisserant [Fri, 16 Feb 2018 01:38:34 +0100] rev 1935
Prevent compiling XSLT on each call of GetInstanceList. To be continued. More optimization needed here. 100x would be fine...

Wed, 14 Feb 2018 15:39:27 +0100Changed meaning of -c commandline argument for Beremiz service : only gives DEFAULT wamp config.
Edouard Tisserant [Wed, 14 Feb 2018 15:39:27 +0100] rev 1934
Changed meaning of -c commandline argument for Beremiz service : only gives DEFAULT wamp config.
If existing project already has a wamp config, it is taken instead.

Wed, 14 Feb 2018 14:50:10 +0100Factorized duplicated code
Edouard Tisserant [Wed, 14 Feb 2018 14:50:10 +0100] rev 1933
Factorized duplicated code

Wed, 14 Feb 2018 14:48:40 +0100Better variable naming, and small optimization.
Edouard Tisserant [Wed, 14 Feb 2018 14:48:40 +0100] rev 1932
Better variable naming, and small optimization.

Tue, 13 Feb 2018 14:01:20 +0100Unclutter graphics package scope.
Edouard Tisserant [Tue, 13 Feb 2018 14:01:20 +0100] rev 1931
Unclutter graphics package scope.
Moved some import statements from "graphics" package to "viewer" module.
It also avoid systematic import of everything in graphics when we only need one submodule.

Tue, 13 Feb 2018 13:57:53 +0100Removed dead code
Edouard Tisserant [Tue, 13 Feb 2018 13:57:53 +0100] rev 1930
Removed dead code

Mon, 12 Feb 2018 13:18:53 +0100Fixed pyro timeout for runtime, was set too short and runtime was disconnecting when building PLC
Edouard Tisserant [Mon, 12 Feb 2018 13:18:53 +0100] rev 1929
Fixed pyro timeout for runtime, was set too short and runtime was disconnecting when building PLC

Mon, 12 Feb 2018 11:34:07 +0100Ask to stop PLC before transfer if it is running
Edouard Tisserant [Mon, 12 Feb 2018 11:34:07 +0100] rev 1928
Ask to stop PLC before transfer if it is running

Mon, 12 Feb 2018 11:32:48 +0100Factorized some repeated refresh code into a method, to allow customisation.
Edouard Tisserant [Mon, 12 Feb 2018 11:32:48 +0100] rev 1927
Factorized some repeated refresh code into a method, to allow customisation.

Mon, 05 Feb 2018 16:23:51 +0100Launcher : add a debug attribute, instead of BMZ_DBG, so that customization can use it.
Edouard Tisserant [Mon, 05 Feb 2018 16:23:51 +0100] rev 1926
Launcher : add a debug attribute, instead of BMZ_DBG, so that customization can use it.

Fri, 02 Feb 2018 16:25:32 +0100Stripped old dead code.
Edouard Tisserant [Fri, 02 Feb 2018 16:25:32 +0100] rev 1925
Stripped old dead code.

Fri, 02 Feb 2018 16:24:56 +0100More changes in Launcher. Modules to be loaded in the background are given in a list, and assigned as object attributes. Also splitted CreateUI into CloseSplashScreen and CreatueUI.
Edouard Tisserant [Fri, 02 Feb 2018 16:24:56 +0100] rev 1924
More changes in Launcher. Modules to be loaded in the background are given in a list, and assigned as object attributes. Also splitted CreateUI into CloseSplashScreen and CreatueUI.

Fri, 02 Feb 2018 16:22:25 +0100ClassImporter now accepts string, callable or class, for compatibility with some old extensions.
Edouard Tisserant [Fri, 02 Feb 2018 16:22:25 +0100] rev 1923
ClassImporter now accepts string, callable or class, for compatibility with some old extensions.

Fri, 02 Feb 2018 11:12:03 +0100Launcher: ShowUI call moves from preStart to start. ShowUI() split into CreateUI() and ShowUI(). Start()'s arguments are passed to CreateUI()
Edouard Tisserant [Fri, 02 Feb 2018 11:12:03 +0100] rev 1922
Launcher: ShowUI call moves from preStart to start. ShowUI() split into CreateUI() and ShowUI(). Start()'s arguments are passed to CreateUI()
This is meant to allow customizations to pass own pre-instanciated controller to UI at startup.

Fri, 02 Feb 2018 11:07:39 +0100Launcher: allows customizations to specify what globals passed to extensions
Edouard Tisserant [Fri, 02 Feb 2018 11:07:39 +0100] rev 1921
Launcher: allows customizations to specify what globals passed to extensions

Fri, 02 Feb 2018 11:06:41 +0100Documentation
Edouard Tisserant [Fri, 02 Feb 2018 11:06:41 +0100] rev 1920
Documentation

Thu, 01 Feb 2018 14:51:18 +0100Another set of meaningless changes to satisfy PEP8 and PyLint.
Edouard Tisserant [Thu, 01 Feb 2018 14:51:18 +0100] rev 1919
Another set of meaningless changes to satisfy PEP8 and PyLint.

Wed, 31 Jan 2018 15:25:30 +0100PEP8 conformity for modbus. Most of it done by autopep8, plus some easy refactoring.
Edouard Tisserant [Wed, 31 Jan 2018 15:25:30 +0100] rev 1918
PEP8 conformity for modbus. Most of it done by autopep8, plus some easy refactoring.

Wed, 31 Jan 2018 15:22:43 +0100Add some class factory function to ease declaration of simple POU libraries in customizations (i.e. TC6 XML file only, no special C code generation)
Edouard Tisserant [Wed, 31 Jan 2018 15:22:43 +0100] rev 1917
Add some class factory function to ease declaration of simple POU libraries in customizations (i.e. TC6 XML file only, no special C code generation)

Wed, 31 Jan 2018 15:20:42 +0100Small pep8 conformity enforcement.
Edouard Tisserant [Wed, 31 Jan 2018 15:20:42 +0100] rev 1916
Small pep8 conformity enforcement.

Wed, 31 Jan 2018 11:29:17 +0100Better have globals passed to python extensions (-e) than locals.
Edouard Tisserant [Wed, 31 Jan 2018 11:29:17 +0100] rev 1915
Better have globals passed to python extensions (-e) than locals.

Wed, 31 Jan 2018 11:21:08 +0100launcher : move call to ShowSplashScreen and BackgroundInitialization to PreStart()
Edouard Tisserant [Wed, 31 Jan 2018 11:21:08 +0100] rev 1914
launcher : move call to ShowSplashScreen and BackgroundInitialization to PreStart()
It doesn't change behaviour of launcher in beremiz, but may have some impact on some customizations.
Some customizations need to squeeze some bitmap folder init in between app creation and ShowSplashScreen

Tue, 30 Jan 2018 16:23:50 +0100modbus extension code cleanup, from smarteh's patch
Edouard Tisserant [Tue, 30 Jan 2018 16:23:50 +0100] rev 1913
modbus extension code cleanup, from smarteh's patch

Tue, 30 Jan 2018 16:06:58 +0100Merged Mario's modbus branch. Fixed line endings.
Edouard Tisserant [Tue, 30 Jan 2018 16:06:58 +0100] rev 1912
Merged Mario's modbus branch. Fixed line endings.

Fri, 24 Mar 2017 12:07:47 +0000merge
Mario de Sousa <msousa@fe.up.pt> [Fri, 24 Mar 2017 12:07:47 +0000] rev 1911
merge

Sun, 05 Mar 2017 00:38:25 +0000Ignore bug report files.
Mario de Sousa <msousa@fe.up.pt> [Sun, 05 Mar 2017 00:38:25 +0000] rev 1910
Ignore bug report files.

Sun, 05 Mar 2017 00:37:54 +0000Add support for Modbus (TCP and RTU) working as master & slave
Mario de Sousa <msousa@fe.up.pt> [Sun, 05 Mar 2017 00:37:54 +0000] rev 1909
Add support for Modbus (TCP and RTU) working as master & slave

Mon, 29 Jan 2018 13:31:14 +0100merge
Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 29 Jan 2018 13:31:14 +0100] rev 1908
merge

Wed, 24 Jan 2018 16:12:49 +0100fixed erro introduced 2 commits ago (-e) : tuples have no reverse() method
Edouard Tisserant [Wed, 24 Jan 2018 16:12:49 +0100] rev 1907
fixed erro introduced 2 commits ago (-e) : tuples have no reverse() method

Wed, 24 Jan 2018 15:44:36 +0100Trying to get better logging/display of exceptions at runtime's startup
Edouard Tisserant [Wed, 24 Jan 2018 15:44:36 +0100] rev 1906
Trying to get better logging/display of exceptions at runtime's startup

Wed, 24 Jan 2018 14:48:49 +0100Changed way to deal with extensions arguments (-e) so that path and filename are stored independently and accessible for extensions themselves.
Edouard Tisserant [Wed, 24 Jan 2018 14:48:49 +0100] rev 1905
Changed way to deal with extensions arguments (-e) so that path and filename are stored independently and accessible for extensions themselves.

Mon, 29 Jan 2018 12:56:49 +0100Textviewer : moved call to Colourise in a better place, so that ST highlighting gets also updated when typing in some case, not only IL
Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 29 Jan 2018 12:56:49 +0100] rev 1904
Textviewer : moved call to Colourise in a better place, so that ST highlighting gets also updated when typing in some case, not only IL

Fri, 19 Jan 2018 15:12:23 +0100Main runtime template C code : Added HAVE_RETAIN preprocessor definition for customized build to signal it provides IEC-61131 Retain memory handling function. Removed targets/Xenomai/plc_Xenomai_noretain.c, now useless.
Edouard Tisserant [Fri, 19 Jan 2018 15:12:23 +0100] rev 1903
Main runtime template C code : Added HAVE_RETAIN preprocessor definition for customized build to signal it provides IEC-61131 Retain memory handling function. Removed targets/Xenomai/plc_Xenomai_noretain.c, now useless.

Mon, 15 Jan 2018 14:43:53 +0100Clarify licensing, and packaging of runtime only files :
Edouard Tisserant [Mon, 15 Jan 2018 14:43:53 +0100] rev 1902
Clarify licensing, and packaging of runtime only files :
- moved and split targets/typemapping.py into runtime/typemapping.py and runtime/loglevels.py
- added runtime_files.list pointing to files necessary for runtime, and referring to runtime license

Thu, 11 Jan 2018 15:41:20 +0100Enforced check_source.sh pep8 and pylint rules.
Edouard Tisserant [Thu, 11 Jan 2018 15:41:20 +0100] rev 1901
Enforced check_source.sh pep8 and pylint rules.

Thu, 11 Jan 2018 15:39:58 +0100runtime/WAMP: Fixed secret loading into configuration. Fixed secret commandline switch handling.
Edouard Tisserant [Thu, 11 Jan 2018 15:39:58 +0100] rev 1900
runtime/WAMP: Fixed secret loading into configuration. Fixed secret commandline switch handling.

Thu, 11 Jan 2018 13:02:09 +0100runtime/WAMP : was 'Added time print on session left.' from dporopat. Purpose is to log (dis/re)connection, to help debugging connection problem
Edouard Tisserant [Thu, 11 Jan 2018 13:02:09 +0100] rev 1899
runtime/WAMP : was 'Added time print on session left.' from dporopat. Purpose is to log (dis/re)connection, to help debugging connection problem

Thu, 11 Jan 2018 12:48:49 +0100runtime/Wamp : adapt to unicode being enforced in latest crossbar API. Updated some documentation, to explain why there is unused definitions like SubscribedEvents or DoOnJoin.
Edouard Tisserant [Thu, 11 Jan 2018 12:48:49 +0100] rev 1898
runtime/Wamp : adapt to unicode being enforced in latest crossbar API. Updated some documentation, to explain why there is unused definitions like SubscribedEvents or DoOnJoin.

Wed, 10 Jan 2018 15:36:03 +0100Extend python<->PLC global variable description "GlobalDesc" to support Initial value setting.
Edouard Tisserant [Wed, 10 Jan 2018 15:36:03 +0100] rev 1897
Extend python<->PLC global variable description "GlobalDesc" to support Initial value setting.

Rebased from dporopat change "add initial value to runtime.py file", which means :
- GlobalDesc is used by some customized beremiz python runtime
- Those runtimes need to know what is initial value of these special variables

Wed, 10 Jan 2018 14:35:04 +0100update tests/wamp README file, based on changes from dporopat.
Edouard Tisserant [Wed, 10 Jan 2018 14:35:04 +0100] rev 1896
update tests/wamp README file, based on changes from dporopat.

Wed, 10 Jan 2018 13:23:40 +0100Fixed WAMP test (crossbar confile upgrade and use same ID on both PLC and IDE side)
Edouard Tisserant [Wed, 10 Jan 2018 13:23:40 +0100] rev 1895
Fixed WAMP test (crossbar confile upgrade and use same ID on both PLC and IDE side)

Wed, 10 Jan 2018 13:21:42 +0100Fixed changes from dporopat and agregorcic about WAMP CRA and config.
Edouard Tisserant [Wed, 10 Jan 2018 13:21:42 +0100] rev 1894
Fixed changes from dporopat and agregorcic about WAMP CRA and config.

Tue, 09 Jan 2018 15:08:08 +0100WAMP runtime : changes from dporopat and agregorcic, adding CRA (-s) and changed way to load WAMP conf (-c)
Edouard Tisserant [Tue, 09 Jan 2018 15:08:08 +0100] rev 1893
WAMP runtime : changes from dporopat and agregorcic, adding CRA (-s) and changed way to load WAMP conf (-c)
- added Challenge Response Authentication,
- use -s commandline switch to give the shared secret.
- WAMP configuration now either given as -c commandline switch
or taken as default wampconf.json in project files.

Tue, 09 Jan 2018 14:52:56 +0100Set WAMP registration option so that reconnecting while earlier session still didn't timeout is possible (in case of connection lost, for example).
Edouard Tisserant [Tue, 09 Jan 2018 14:52:56 +0100] rev 1892
Set WAMP registration option so that reconnecting while earlier session still didn't timeout is possible (in case of connection lost, for example).

Tue, 09 Jan 2018 14:50:41 +0100More canonical overload of ReconnectingClientFactory (according twisted doc)
Edouard Tisserant [Tue, 09 Jan 2018 14:50:41 +0100] rev 1891
More canonical overload of ReconnectingClientFactory (according twisted doc)

Tue, 09 Jan 2018 14:42:23 +0100non significant print syntax change. ready for py3.
Edouard Tisserant [Tue, 09 Jan 2018 14:42:23 +0100] rev 1890
non significant print syntax change. ready for py3.

Tue, 09 Jan 2018 14:38:45 +0100whitespace cosmetic for pep8
Edouard Tisserant [Tue, 09 Jan 2018 14:38:45 +0100] rev 1889
whitespace cosmetic for pep8

Mon, 08 Jan 2018 11:09:02 +0100Added arbitrary timeout on Pyro, to force it to free memory after disconnect.
Edouard Tisserant [Mon, 08 Jan 2018 11:09:02 +0100] rev 1888
Added arbitrary timeout on Pyro, to force it to free memory after disconnect.

Fri, 05 Jan 2018 15:39:02 +0100Moved code from to Beremiz_service.py Server class Start method to Loop method to allow customisation by hot patching. Also renamed Stop method as _stop and use Restart instead of Stop from everywhere else to make it clear that _stop actually does restart...
Edouard Tisserant [Fri, 05 Jan 2018 15:39:02 +0100] rev 1887
Moved code from to Beremiz_service.py Server class Start method to Loop method to allow customisation by hot patching. Also renamed Stop method as _stop and use Restart instead of Stop from everywhere else to make it clear that _stop actually does restart...

Thu, 04 Jan 2018 16:00:35 +0100enforce PEP8 in previous commit
Edouard Tisserant [Thu, 04 Jan 2018 16:00:35 +0100] rev 1886
enforce PEP8 in previous commit

Fri, 20 Jan 2017 13:22:31 +0100replaced normal panel with scrolled panel under project properties
dporopat <denis.poropat@smarteh.si> [Fri, 20 Jan 2017 13:22:31 +0100] rev 1885
replaced normal panel with scrolled panel under project properties

Tue, 05 Dec 2017 12:38:04 +0300fix missing root in empty search results panel
Surkov Sergey <surkovsv93@gmail.com> [Tue, 05 Dec 2017 12:38:04 +0300] rev 1884
fix missing root in empty search results panel

Mon, 04 Dec 2017 19:35:31 +0300add possibility to specify subprocess stdout encoding
Surkov Sergey <surkovsv93@gmail.com> [Mon, 04 Dec 2017 19:35:31 +0300] rev 1883
add possibility to specify subprocess stdout encoding

Mon, 04 Dec 2017 11:20:46 +0300fix deadlock if method kill() is called after process is already finished
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 04 Dec 2017 11:20:46 +0300] rev 1882
fix deadlock if method kill() is called after process is already finished

Wed, 25 Oct 2017 13:50:26 +0300fix pylint py3k conversion warning: "(no-absolute-import) import missing `from __future__ import absolute_import`"
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 25 Oct 2017 13:50:26 +0300] rev 1881
fix pylint py3k conversion warning: "(no-absolute-import) import missing `from __future__ import absolute_import`"

Mon, 23 Oct 2017 18:25:45 +0300make CanFestival to be at the expected place in bitbucket pipelines container
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 23 Oct 2017 18:25:45 +0300] rev 1880
make CanFestival to be at the expected place in bitbucket pipelines container

Thu, 19 Oct 2017 13:33:01 +0300fix pylint error '(unsubscriptable-object) Value 'X' is unsubscriptable'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 19 Oct 2017 13:33:01 +0300] rev 1879
fix pylint error '(unsubscriptable-object) Value 'X' is unsubscriptable'

Thu, 19 Oct 2017 11:03:03 +0300fix pylint warning '(bad-continuation) Wrong hanging indentation before block'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 19 Oct 2017 11:03:03 +0300] rev 1878
fix pylint warning '(bad-continuation) Wrong hanging indentation before block'

Thu, 19 Oct 2017 10:57:35 +0300force all python source code to have LF line ending
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 19 Oct 2017 10:57:35 +0300] rev 1877
force all python source code to have LF line ending

Wed, 18 Oct 2017 12:23:19 +0300fix pylint warning '(expression-not-assigned) Expression "X" is assigned to nothing'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 18 Oct 2017 12:23:19 +0300] rev 1876
fix pylint warning '(expression-not-assigned) Expression "X" is assigned to nothing'

Tue, 17 Oct 2017 11:29:20 +0300fix pylint warning '(redefine-in-handler) Redefining name 'X' from outer scope (line Y) in exception handler'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 17 Oct 2017 11:29:20 +0300] rev 1875
fix pylint warning '(redefine-in-handler) Redefining name 'X' from outer scope (line Y) in exception handler'

Tue, 17 Oct 2017 11:09:01 +0300fix displaying result of update check during Beremiz startup
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 17 Oct 2017 11:09:01 +0300] rev 1874
fix displaying result of update check during Beremiz startup

Tue, 17 Oct 2017 09:51:43 +0300fix pylint warning '(no-init) Class has no __init__ method'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 17 Oct 2017 09:51:43 +0300] rev 1873
fix pylint warning '(no-init) Class has no __init__ method'

Mon, 16 Oct 2017 17:20:31 +0300fix pylint error "(undefined-variable) Undefined variable 'X'"
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 16 Oct 2017 17:20:31 +0300] rev 1872
fix pylint error "(undefined-variable) Undefined variable 'X'"

Fri, 13 Oct 2017 13:17:42 +0300fix problem happend when tests are running under python-coverage
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 13 Oct 2017 13:17:42 +0300] rev 1871
fix problem happend when tests are running under python-coverage

$ python-coverage run ./tests/tools/test_application.py

Exception while connecting LOCAL://!
Traceback (most recent call last):
File "/home/developer/WorkData/PLC/beremiz/beremiz/ProjectController.py", line 1753, in _Connect
self._SetConnector(connectors.ConnectorFactory(uri, self)
File "/home/developer/WorkData/PLC/beremiz/beremiz/ProjectController.py", line 1702, in _SetConnector
if connector is not None:
PyAssertionError: C++ assertion "m_window" failed at ../src/gtk/dcclient.cpp(2043) in DoGetSize(): GetSize() doesn't work without window

Thu, 12 Oct 2017 16:18:05 +0300fix pylint error '(too-many-function-args) Too many positional arguments for function call'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 12 Oct 2017 16:18:05 +0300] rev 1870
fix pylint error '(too-many-function-args) Too many positional arguments for function call'

Wed, 11 Oct 2017 13:55:56 +0300fix pylint error '(import-error) Unable to import X'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 11 Oct 2017 13:55:56 +0300] rev 1869
fix pylint error '(import-error) Unable to import X'

Wed, 11 Oct 2017 13:15:21 +0300fix pylint error '(no-self-argument) Method should have "self" as first argument'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 11 Oct 2017 13:15:21 +0300] rev 1868
fix pylint error '(no-self-argument) Method should have "self" as first argument'

Wed, 11 Oct 2017 11:54:55 +0300fix pylint error "(no-name-in-module) No name 'X' in module 'Y'"
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 11 Oct 2017 11:54:55 +0300] rev 1867
fix pylint error "(no-name-in-module) No name 'X' in module 'Y'"

Wed, 11 Oct 2017 11:41:32 +0300fix pylint error '(bad-except-order) Bad except clauses order (X is an ancestor class of Y)'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 11 Oct 2017 11:41:32 +0300] rev 1866
fix pylint error '(bad-except-order) Bad except clauses order (X is an ancestor class of Y)'

Wed, 11 Oct 2017 11:35:19 +0300fix pylint warning "(no-value-for-parameter) No value for argument 'X' in function call"
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 11 Oct 2017 11:35:19 +0300] rev 1865
fix pylint warning "(no-value-for-parameter) No value for argument 'X' in function call"

Wed, 11 Oct 2017 10:34:45 +0300fix problems with unconnected input of InOut function variables and
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 11 Oct 2017 10:34:45 +0300] rev 1864
fix problems with unconnected input of InOut function variables and
enfoce InOut variables to be connected for functions and function blocks

Tue, 10 Oct 2017 16:38:57 +0300fix error for functions with VAR_IN_OUT
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 10 Oct 2017 16:38:57 +0300] rev 1863
fix error for functions with VAR_IN_OUT

The problem was found by pylint '(used-before-assignment) Using variable "X" before assignment'

Tue, 10 Oct 2017 14:01:46 +0300fix pylint warning '(unidiomatic-typecheck) Using type() instead of isinstance() for a typecheck'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 10 Oct 2017 14:01:46 +0300] rev 1862
fix pylint warning '(unidiomatic-typecheck) Using type() instead of isinstance() for a typecheck'

Tue, 10 Oct 2017 13:49:13 +0300fix pylint warning '(misplaced-bare-raise) The raise statement is not inside an except clause'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 10 Oct 2017 13:49:13 +0300] rev 1861
fix pylint warning '(misplaced-bare-raise) The raise statement is not inside an except clause'

Tue, 10 Oct 2017 13:43:55 +0300fix format string argument error found by pylint '(too-many-format-args) Too many arguments for format string'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 10 Oct 2017 13:43:55 +0300] rev 1860
fix format string argument error found by pylint '(too-many-format-args) Too many arguments for format string'

Tue, 10 Oct 2017 13:33:46 +0300fix pylint warning '(wrong-import-position) Import "import X" should be placed at the top of the module'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 10 Oct 2017 13:33:46 +0300] rev 1859
fix pylint warning '(wrong-import-position) Import "import X" should be placed at the top of the module'

Tue, 10 Oct 2017 13:21:48 +0300fix pylint warning '(import-self) Module import itself'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 10 Oct 2017 13:21:48 +0300] rev 1858
fix pylint warning '(import-self) Module import itself'

Tue, 10 Oct 2017 12:50:10 +0300remove old code useless code found by pylint "(unnecessary-pass) Unnecessary pass statement"
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 10 Oct 2017 12:50:10 +0300] rev 1857
remove old code useless code found by pylint "(unnecessary-pass) Unnecessary pass statement"

Tue, 10 Oct 2017 12:34:50 +0300fix error found by pylint 'W0104(pointless-statement) Statement seems to have no effect'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 10 Oct 2017 12:34:50 +0300] rev 1856
fix error found by pylint 'W0104(pointless-statement) Statement seems to have no effect'

Tue, 10 Oct 2017 12:21:46 +0300fix pylint warning "(undefined-loop-variable) Using possibly undefined loop variable 'X'"
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 10 Oct 2017 12:21:46 +0300] rev 1855
fix pylint warning "(undefined-loop-variable) Using possibly undefined loop variable 'X'"

Tue, 10 Oct 2017 11:58:30 +0300fix pylint warning 'C0112(empty-docstring) Empty function docstring'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 10 Oct 2017 11:58:30 +0300] rev 1854
fix pylint warning 'C0112(empty-docstring) Empty function docstring'

Mon, 09 Oct 2017 18:13:26 +0300fix pylint warning "(relative-import) Relative import 'Y', should be 'X.Y'"
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 09 Oct 2017 18:13:26 +0300] rev 1853
fix pylint warning "(relative-import) Relative import 'Y', should be 'X.Y'"

Mon, 09 Oct 2017 16:04:39 +0300fix pylint warning '(dangerous-default-value) Dangerous default value {} as argument'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 09 Oct 2017 16:04:39 +0300] rev 1852
fix pylint warning '(dangerous-default-value) Dangerous default value {} as argument'

Mon, 09 Oct 2017 12:30:14 +0300fix pylint warning '(old-style-class) Old-style class defined.'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 09 Oct 2017 12:30:14 +0300] rev 1851
fix pylint warning '(old-style-class) Old-style class defined.'

This warning is ignored for classes from PyJSLib, because library
overrides base object class.

Fri, 06 Oct 2017 17:52:34 +0300fix pylint warning '(unused-import), Unused import connectors'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 06 Oct 2017 17:52:34 +0300] rev 1850
fix pylint warning '(unused-import), Unused import connectors'

Thu, 05 Oct 2017 16:46:29 +0300fix typos
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 05 Oct 2017 16:46:29 +0300] rev 1849
fix typos

Thu, 05 Oct 2017 16:41:31 +0300comment out unused code SFC_Step.RefreshBoundingBox()
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 05 Oct 2017 16:41:31 +0300] rev 1848
comment out unused code SFC_Step.RefreshBoundingBox()

Thu, 05 Oct 2017 16:38:49 +0300explicitly mark unused variables found by pylint with _ or dummy
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 05 Oct 2017 16:38:49 +0300] rev 1847
explicitly mark unused variables found by pylint with _ or dummy

pylint don't ignores unused variables with '_' in the name, even when
they are started with '_'. This bug is already fixed upstream, to fix
this in all versions of pylint custom dummy-variables-rgx is used
'_+$|(_[a-zA-Z0-9_]*[a-zA-Z0-9]+?$)|dummy'

Tue, 03 Oct 2017 16:31:31 +0300remove unused variables found by pylint
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 03 Oct 2017 16:31:31 +0300] rev 1846
remove unused variables found by pylint

Tue, 03 Oct 2017 16:12:55 +0300update .PHONE target in Makefile for mki18n.py
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 03 Oct 2017 16:12:55 +0300] rev 1845
update .PHONE target in Makefile for mki18n.py

Tue, 03 Oct 2017 16:08:40 +0300make mki18n return 0 on success
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 03 Oct 2017 16:08:40 +0300] rev 1844
make mki18n return 0 on success

Tue, 03 Oct 2017 16:08:00 +0300update list with files for internatialization, app.fil
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 03 Oct 2017 16:08:00 +0300] rev 1843
update list with files for internatialization, app.fil

Tue, 03 Oct 2017 16:07:02 +0300move README content to Makefile
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 03 Oct 2017 16:07:02 +0300] rev 1842
move README content to Makefile

It's not necessary to copy commands from README anymore. Just use
'make source_list', 'make template' or 'make locales'.

Mon, 02 Oct 2017 13:19:06 +0300fix pylint warning '(global-variable-not-assigned) Using global for 'X' but no assignment is done'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 02 Oct 2017 13:19:06 +0300] rev 1841
fix pylint warning '(global-variable-not-assigned) Using global for 'X' but no assignment is done'

Mon, 02 Oct 2017 12:43:01 +0300fix pylint error '(function-redefined) method already defined'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 02 Oct 2017 12:43:01 +0300] rev 1840
fix pylint error '(function-redefined) method already defined'

Fri, 29 Sep 2017 16:48:42 +0300fix pylint warning '(unreachable) Unreachable code'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 29 Sep 2017 16:48:42 +0300] rev 1839
fix pylint warning '(unreachable) Unreachable code'

Fri, 29 Sep 2017 16:39:52 +0300fix pylint warning (bad-indentation) Bad indentation. Found X spaces, expected Y
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 29 Sep 2017 16:39:52 +0300] rev 1838
fix pylint warning (bad-indentation) Bad indentation. Found X spaces, expected Y

Fri, 29 Sep 2017 16:26:15 +0300fix pylint warning '(pointless-string-statement) String statement has no effect'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 29 Sep 2017 16:26:15 +0300] rev 1837
fix pylint warning '(pointless-string-statement) String statement has no effect'

Python doesn't support docstring for variables directly. Where
appropriate Sphinx style for docstrings for variables is used
'#: some-docstring'

Fri, 29 Sep 2017 15:36:33 +0300fix error __init__ method from base class is not called
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 29 Sep 2017 15:36:33 +0300] rev 1836
fix error __init__ method from base class is not called

Thu, 28 Sep 2017 17:24:33 +0300fix more than one statement on a single line
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 28 Sep 2017 17:24:33 +0300] rev 1835
fix more than one statement on a single line

Thu, 28 Sep 2017 17:20:31 +0300fix ungrouped imports from package X
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 28 Sep 2017 17:20:31 +0300] rev 1834
fix ungrouped imports from package X

Thu, 28 Sep 2017 16:25:05 +0300fix unnecessary lambda and enable corresponding pylint check
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 28 Sep 2017 16:25:05 +0300] rev 1833
fix unnecessary lambda and enable corresponding pylint check

Thu, 28 Sep 2017 15:17:57 +0300fix wrong-import-order. first standard modules are imported, then others
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 28 Sep 2017 15:17:57 +0300] rev 1832
fix wrong-import-order. first standard modules are imported, then others

Thu, 28 Sep 2017 12:20:40 +0300fix (old-style-class) Old-style class defined error for most parts of
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 28 Sep 2017 12:20:40 +0300] rev 1831
fix (old-style-class) Old-style class defined error for most parts of
the code

only PyJS code is left, because it does some fancy tricks and can't be
easily fixed. So far PyJS doesn't support Python3 anyway.

Fri, 22 Sep 2017 20:12:22 +0300remove in-tree version of Zeroconf and use upstream from
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 22 Sep 2017 20:12:22 +0300] rev 1830
remove in-tree version of Zeroconf and use upstream from
python-zeroconf package

Fri, 22 Sep 2017 18:06:15 +0300remove reimported modules
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 22 Sep 2017 18:06:15 +0300] rev 1829
remove reimported modules

Fri, 22 Sep 2017 16:37:38 +0300fix unnecessary parens after keyword
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 22 Sep 2017 16:37:38 +0300] rev 1828
fix unnecessary parens after keyword

Fri, 22 Sep 2017 10:57:57 +0300enable pylint checker
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 22 Sep 2017 10:57:57 +0300] rev 1827
enable pylint checker

so far only print statement is checked

Fri, 22 Sep 2017 10:54:42 +0300fix usage of python2-only print statement
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 22 Sep 2017 10:54:42 +0300] rev 1826
fix usage of python2-only print statement

Fri, 22 Sep 2017 10:52:44 +0300run python tests with non-english locale to catch bugs related to localization
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 22 Sep 2017 10:52:44 +0300] rev 1825
run python tests with non-english locale to catch bugs related to localization

Thu, 21 Sep 2017 17:19:18 +0300make it possible to update XSD schema in project controller after new
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 21 Sep 2017 17:19:18 +0300] rev 1824
make it possible to update XSD schema in project controller after new
target PLC is added or removed.

For example:


...
import targets
targets.targets["PLC"] = {"xsd": os.path.join(self.customBeremizPath, "PLCtarget", xsd),
"class": lambda: PLC_target,
"code": {"plc_PLC_main.c": os.path.join(self.customBeremizPath, "PLCtarget", "plc_PLC_main.c")}
}

from ProjectController import ProjectController, GetProjectControllerXSD
ProjectController.XSD = GetProjectControllerXSD()

Thu, 21 Sep 2017 16:06:51 +0300fix commit "lazy initialization of highlight pens and brushes
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 21 Sep 2017 16:06:51 +0300] rev 1823
fix commit "lazy initialization of highlight pens and brushes
for DebugVariableViewer" (5562f34f)

Thu, 21 Sep 2017 15:04:15 +0300clean build example project after running test
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 21 Sep 2017 15:04:15 +0300] rev 1822
clean build example project after running test

Thu, 21 Sep 2017 15:02:36 +0300fix problem if DataTypeEditor was imported before localization is
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 21 Sep 2017 15:02:36 +0300] rev 1821
fix problem if DataTypeEditor was imported before localization is
loaded

That doesn't affect systems with english locales.

Sat, 16 Sep 2017 21:26:17 +0300add shell script to run all python tests and automatically handle Xvfb
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 16 Sep 2017 21:26:17 +0300] rev 1820
add shell script to run all python tests and automatically handle Xvfb

Sat, 16 Sep 2017 21:24:22 +0300add PLCOpenEditor tests
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 16 Sep 2017 21:24:22 +0300] rev 1819
add PLCOpenEditor tests

Sat, 16 Sep 2017 21:22:53 +0300run application tests in full screen mode
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 16 Sep 2017 21:22:53 +0300] rev 1818
run application tests in full screen mode

Sat, 16 Sep 2017 21:22:06 +0300clean sys.argv, because if test is running from pytest
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 16 Sep 2017 21:22:06 +0300] rev 1817
clean sys.argv, because if test is running from pytest
sys.argv contains string "pytest --timeout 0 ./tests/tools"
Beremiz application parses it and throws exception.

Sat, 16 Sep 2017 21:19:19 +0300rework Beremiz application "testCheckProject" test to allow easier reuse later
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 16 Sep 2017 21:19:19 +0300] rev 1816
rework Beremiz application "testCheckProject" test to allow easier reuse later

Sat, 16 Sep 2017 21:04:34 +0300add application name for PLCOpenEditor
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 16 Sep 2017 21:04:34 +0300] rev 1815
add application name for PLCOpenEditor

This is needed to work user configuration load/store, if PLCOpenEditor
is launched from test environment.

Fri, 15 Sep 2017 20:30:24 +0300rewrite PLCOpenEditor. Add PLCOpenEditorApp class for easier customizations.
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 15 Sep 2017 20:30:24 +0300] rev 1814
rewrite PLCOpenEditor. Add PLCOpenEditorApp class for easier customizations.

Fri, 15 Sep 2017 20:28:54 +0300lazy locale initialization
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 15 Sep 2017 20:28:54 +0300] rev 1813
lazy locale initialization

wx.Locale() can't be called without wx.App. So don't call it at
import. It makes PLCOpenEditor simpler.

Fri, 15 Sep 2017 20:05:41 +0300use CustomIntCtrl instead of wx.SpinCtrl because it doesn't support
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 15 Sep 2017 20:05:41 +0300] rev 1812
use CustomIntCtrl instead of wx.SpinCtrl because it doesn't support
long integer needed for UDINT, (U)LINT types.

This commit complements commit 74a3f4d "fix LINT and ULINT ranges".

Fri, 15 Sep 2017 20:01:21 +0300add custom TextCtrl allowed to enter long integer with bounds checking
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 15 Sep 2017 20:01:21 +0300] rev 1811
add custom TextCtrl allowed to enter long integer with bounds checking

It's needed because wx.SpinCtrl supports only 'int' type. For UDINT
and (U)LINT long type is necessary.

Fri, 15 Sep 2017 19:53:49 +0300use pytest for testing
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 15 Sep 2017 19:53:49 +0300] rev 1810
use pytest for testing

Fri, 15 Sep 2017 19:51:31 +0300run separate test on every project instead of one big long test all projects
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 15 Sep 2017 19:51:31 +0300] rev 1809
run separate test on every project instead of one big long test all projects

Fri, 15 Sep 2017 19:45:41 +0300move configuration for test environment into separate file conftest.py
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 15 Sep 2017 19:45:41 +0300] rev 1808
move configuration for test environment into separate file conftest.py

Fri, 15 Sep 2017 19:01:31 +0300lazy initialization of highlight pens and brushes for DebugVariableViewer
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 15 Sep 2017 19:01:31 +0300] rev 1807
lazy initialization of highlight pens and brushes for DebugVariableViewer

Constructors wx.Pen() and wx.Brush() require wx.App to exist already.
That causes crash during import of the control,
because import is done before calling main application code.

Fri, 15 Sep 2017 18:57:20 +0300add '_' function to builtin dictionary at import time
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 15 Sep 2017 18:57:20 +0300] rev 1806
add '_' function to builtin dictionary at import time

This allows to import many Beremiz python modules before calling
util.misc.InstallLocalRessources().

Fri, 15 Sep 2017 18:51:42 +0300remove builtin BMZ_DBG. It's not used.
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 15 Sep 2017 18:51:42 +0300] rev 1805
remove builtin BMZ_DBG. It's not used.

Wed, 13 Sep 2017 15:39:48 +0300update translation strings
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 13 Sep 2017 15:39:48 +0300] rev 1804
update translation strings

Wed, 13 Sep 2017 15:35:43 +0300updated all existing translations
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 13 Sep 2017 15:35:43 +0300] rev 1803
updated all existing translations
added new languages: Portuguese (Portugal), Italian, Hungarian,
Spanish and Bengali. See version.py for information about translators.

Wed, 13 Sep 2017 10:18:04 +0300fix LINT and ULINT ranges
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 13 Sep 2017 10:18:04 +0300] rev 1802
fix LINT and ULINT ranges

Tue, 12 Sep 2017 18:32:13 +0300found installed Inkscape on Windows
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 12 Sep 2017 18:32:13 +0300] rev 1801
found installed Inkscape on Windows

tested with Inkscape version 0.9 on Windows 7.

Tue, 12 Sep 2017 16:49:35 +0300make possible to turn off at compile time online debugging, logging
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 12 Sep 2017 16:49:35 +0300] rev 1800
make possible to turn off at compile time online debugging, logging
and external sync functionality

Defines TARGET_DEBUG_DISABLE, TARGET_LOGGING_DISABLE, TARGET_EXT_SYNC_DISABLE
allow to use generated PLC code in low-cost microcontrollers,
integrate into external programs and so on.

main.c:
extern void __run(void);
int main(void)
{
for(;;) {
__run();
// sleep common_ticktime__ ns
// add common_ticktime__ ns to __CURRENT_TIME
}
return 0;
}

Compile for example for arm bare-metal:
../build$ arm-none-eabi-gcc \
-DTARGET_DEBUG_DISABLE -DTARGET_LOGGER_DISABLE
-DTARGET_EXT_SYNC_DISABLE \
-flto -ffunction-sections -fdata-sections -I../../../../matiec/lib/C \
*.c \
-nodefaultlibs --specs=nano.specs -Wl,--static -Wl,--gc-section -Wl,--start-group -lc -lm -lnosys -lgcc -Wl,--end-group

Tue, 12 Sep 2017 14:22:17 +0300make default caption for PouNameDialog translatable
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 12 Sep 2017 14:22:17 +0300] rev 1799
make default caption for PouNameDialog translatable

Tue, 12 Sep 2017 14:18:50 +0300fix max value for UDINT and ULINT types
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 12 Sep 2017 14:18:50 +0300] rev 1798
fix max value for UDINT and ULINT types

Tue, 12 Sep 2017 14:13:39 +0300update Build icon
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 12 Sep 2017 14:13:39 +0300] rev 1797
update Build icon

Tue, 12 Sep 2017 10:21:51 +0300add couple Beremiz application tests
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 12 Sep 2017 10:21:51 +0300] rev 1796
add couple Beremiz application tests

These tests trigger around 45% of python code.
Used in tests docker files are avaiable here:
https://bitbucket.org/skvorl/beremiz-dockerfiles

Fri, 08 Sep 2017 11:53:48 +0300fix problem if _should_write is called by expired timer after
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 08 Sep 2017 11:53:48 +0300] rev 1795
fix problem if _should_write is called by expired timer after
termination of wx application.

Mon, 28 Aug 2017 10:49:53 +0000Initial Bitbucket Pipelines configuration
Sergey Surkov <surkovsv93@gmail.com> [Mon, 28 Aug 2017 10:49:53 +0000] rev 1794
Initial Bitbucket Pipelines configuration

Mon, 28 Aug 2017 13:43:46 +0300fix bug with unfinished debug thread
Surkov Sergey <surkovsv93@gmail.com> [Mon, 28 Aug 2017 13:43:46 +0300] rev 1793
fix bug with unfinished debug thread
this bug occurs when user doesn't stop debugging process in current project, and opens another project

Fri, 25 Aug 2017 14:01:44 +0300unify exception handling of Beremiz and PLCOpenEditor
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 25 Aug 2017 14:01:44 +0300] rev 1792
unify exception handling of Beremiz and PLCOpenEditor

Fri, 25 Aug 2017 12:23:45 +0300fix problem running PLCOpenEditor
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 25 Aug 2017 12:23:45 +0300] rev 1791
fix problem running PLCOpenEditor

$ ./PLCOpenEditor.py
../src/common/stdpbase.cpp(62): assert "traits" failed in Get(): create wxApp before calling this

Regression was introduced by '3311eea' (clean-up: fix PEP8 E402 module level import not at top of file)

Fri, 25 Aug 2017 12:01:23 +0300don't check any particular wx version
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 25 Aug 2017 12:01:23 +0300] rev 1790
don't check any particular wx version

Beremiz works with any version of wx.

Fri, 25 Aug 2017 11:22:08 +0300fix problem when Beremiz is running without matiec installed
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 25 Aug 2017 11:22:08 +0300] rev 1789
fix problem when Beremiz is running without matiec installed

set matiec settings only once on first use of ProjectController class and give
user-friendly message on compilation about missing matiec
installation.


Traceback (most recent call last):
File "Beremiz.py", line 197, in <module>
beremiz.Start()
File "Beremiz.py", line 192, in Start
self.CreateApplication()
File "Beremiz.py", line 130, in CreateApplication
self.BackgroundInitialization()
File "Beremiz.py", line 137, in BackgroundInitialization
self.ImportModules()
File "Beremiz.py", line 176, in ImportModules
import BeremizIDE
File
"BeremizIDE.py", line 76, in <module>
from ProjectController import ProjectController, GetAddMenuItems,
MATIEC_ERROR_MODEL, ITEM_CONFNODE
File
"ProjectController.py", line 177, in <module>
iec2c_cfg = Iec2CSettings()
File
"ProjectController.py", line 101, in __init__
self.ieclib_c_path = self.findLibCPath()
File
"ProjectController.py", line 135, in findLibCPath
os.path.join(self.ieclib_path, "C"),
File "/usr/lib/python2.7/posixpath.py", line 70, in join
elif path == '' or path.endswith('/'):
AttributeError: 'NoneType' object has no attribute 'endswith'

Tue, 22 Aug 2017 14:15:49 +0000Initial Bitbucket Pipelines configuration
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 22 Aug 2017 14:15:49 +0000] rev 1788
Initial Bitbucket Pipelines configuration

Tue, 22 Aug 2017 17:14:40 +0300add configuration for Bitbucket pipelines
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 22 Aug 2017 17:14:40 +0300] rev 1787
add configuration for Bitbucket pipelines

Tue, 22 Aug 2017 17:14:08 +0300add shell script to test Beremiz python code
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 22 Aug 2017 17:14:08 +0300] rev 1786
add shell script to test Beremiz python code

currently only codestyle checking is done using pycodestyle (ex-pep8).
Later checks by flake8 and pylint maybe enabled.

Tue, 22 Aug 2017 12:45:06 +0300clean-up: fix PEP8 W503 line break before binary operator
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 22 Aug 2017 12:45:06 +0300] rev 1785
clean-up: fix PEP8 W503 line break before binary operator

Mon, 21 Aug 2017 23:22:58 +0300fix codestyle issues according to PEP8
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 21 Aug 2017 23:22:58 +0300] rev 1784
fix codestyle issues according to PEP8

Mon, 21 Aug 2017 22:41:37 +0300clean-up: fix PEP8 E402 module level import not at top of file
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 21 Aug 2017 22:41:37 +0300] rev 1783
clean-up: fix PEP8 E402 module level import not at top of file

Mon, 21 Aug 2017 21:55:18 +0300clean-up: fix PEP8 E265 block comment should start with '# '
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 21 Aug 2017 21:55:18 +0300] rev 1782
clean-up: fix PEP8 E265 block comment should start with '# '

Sat, 19 Aug 2017 21:06:54 +0300clean-up: fix PEP8 E266 too many leading '#' for block comment
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 19 Aug 2017 21:06:54 +0300] rev 1781
clean-up: fix PEP8 E266 too many leading '#' for block comment

Sat, 19 Aug 2017 18:12:20 +0300clean-up: fix PEP8 E722 do not use bare except'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 19 Aug 2017 18:12:20 +0300] rev 1780
clean-up: fix PEP8 E722 do not use bare except'

better it'd be to use particular exception instead of 'except Exception'.

Sat, 19 Aug 2017 17:17:54 +0300clean-up: fix PEP8 E115 expected an indented block (comment)
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 19 Aug 2017 17:17:54 +0300] rev 1779
clean-up: fix PEP8 E115 expected an indented block (comment)

Sat, 19 Aug 2017 17:12:12 +0300clean-up: fix PEP8 E721 do not compare types, use 'isinstance()'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 19 Aug 2017 17:12:12 +0300] rev 1778
clean-up: fix PEP8 E721 do not compare types, use 'isinstance()'

Sat, 19 Aug 2017 17:04:31 +0300clean-up: fix PEP8 E131 continuation line unaligned for hanging indent
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 19 Aug 2017 17:04:31 +0300] rev 1777
clean-up: fix PEP8 E131 continuation line unaligned for hanging indent

Sat, 19 Aug 2017 16:45:37 +0300clean-up: fix PEP8 E122 continuation line missing indentation or outdented
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 19 Aug 2017 16:45:37 +0300] rev 1776
clean-up: fix PEP8 E122 continuation line missing indentation or outdented

Sat, 19 Aug 2017 16:30:15 +0300clean-up: fix PEP8 E713 test for membership should be 'not in'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 19 Aug 2017 16:30:15 +0300] rev 1775
clean-up: fix PEP8 E713 test for membership should be 'not in'

Sat, 19 Aug 2017 01:11:27 +0300clean-up: fix PEP8 E272 multiple spaces before keyword
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 19 Aug 2017 01:11:27 +0300] rev 1774
clean-up: fix PEP8 E272 multiple spaces before keyword

Sat, 19 Aug 2017 00:58:44 +0300clean-up: fix PEP8 E124 closing bracket does not match visual indentation
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 19 Aug 2017 00:58:44 +0300] rev 1773
clean-up: fix PEP8 E124 closing bracket does not match visual indentation

Sat, 19 Aug 2017 00:30:22 +0300clean-up: fix PEP8 W191 indentation contains tabs
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 19 Aug 2017 00:30:22 +0300] rev 1772
clean-up: fix PEP8 W191 indentation contains tabs

Sat, 19 Aug 2017 00:11:12 +0300clean-up: fix PEP8 E211 whitespace before '[' or '('
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 19 Aug 2017 00:11:12 +0300] rev 1771
clean-up: fix PEP8 E211 whitespace before '[' or '('

Sat, 19 Aug 2017 00:04:33 +0300clean-up: fix PEP8 E114 indentation is not a multiple of four (comment)
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 19 Aug 2017 00:04:33 +0300] rev 1770
clean-up: fix PEP8 E114 indentation is not a multiple of four (comment)

Fri, 18 Aug 2017 23:39:15 +0300clean-up: fix PEP8 E125 continuation line with same indent as next logical line
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 18 Aug 2017 23:39:15 +0300] rev 1769
clean-up: fix PEP8 E125 continuation line with same indent as next logical line

Fri, 18 Aug 2017 20:14:38 +0300clean-up: fix PEP8 E128 continuation line under-indented for visual indent
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 18 Aug 2017 20:14:38 +0300] rev 1768
clean-up: fix PEP8 E128 continuation line under-indented for visual indent

Fri, 18 Aug 2017 12:36:31 +0300clean-up: fix PEP8 E127 continuation line over-indented for visual indent
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 18 Aug 2017 12:36:31 +0300] rev 1767
clean-up: fix PEP8 E127 continuation line over-indented for visual indent

Thu, 17 Aug 2017 17:25:17 +0300clean-up: fix PEP8 E129 visually indented line with same indent as next logical line
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 17 Aug 2017 17:25:17 +0300] rev 1766
clean-up: fix PEP8 E129 visually indented line with same indent as next logical line

Thu, 17 Aug 2017 16:26:32 +0300clean-up: fix PEP8 W602 deprecated form of raising exception
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 17 Aug 2017 16:26:32 +0300] rev 1765
clean-up: fix PEP8 W602 deprecated form of raising exception

Thu, 17 Aug 2017 15:43:25 +0300clean-up: fix PEP8 E502 the backslash is redundant between brackets
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 17 Aug 2017 15:43:25 +0300] rev 1764
clean-up: fix PEP8 E502 the backslash is redundant between brackets

Thu, 17 Aug 2017 14:27:06 +0300clean-up: fix PEP8 W601 .has_key() is deprecated, use 'in'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 17 Aug 2017 14:27:06 +0300] rev 1763
clean-up: fix PEP8 W601 .has_key() is deprecated, use 'in'

Thu, 17 Aug 2017 11:39:10 +0300clean-up: fix PEP8 E731 do not assign a lambda expression, use a def
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 17 Aug 2017 11:39:10 +0300] rev 1762
clean-up: fix PEP8 E731 do not assign a lambda expression, use a def

Thu, 17 Aug 2017 10:12:04 +0300clean-up: fix PEP8 E203 whitespace before ','
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 17 Aug 2017 10:12:04 +0300] rev 1761
clean-up: fix PEP8 E203 whitespace before ','

Thu, 17 Aug 2017 10:08:23 +0300clean-up: fix PEP8 E262 inline comment should start with '# '
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 17 Aug 2017 10:08:23 +0300] rev 1760
clean-up: fix PEP8 E262 inline comment should start with '# '

Thu, 17 Aug 2017 10:04:24 +0300clean-up: fix PEP8 E712 comparison to True should be 'if cond is True:' or 'if cond:'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 17 Aug 2017 10:04:24 +0300] rev 1759
clean-up: fix PEP8 E712 comparison to True should be 'if cond is True:' or 'if cond:'

Thu, 17 Aug 2017 09:55:39 +0300clean-up: fix PEP8 E222 multiple spaces after operator
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 17 Aug 2017 09:55:39 +0300] rev 1758
clean-up: fix PEP8 E222 multiple spaces after operator

Wed, 16 Aug 2017 17:27:58 +0300clean-up: fix PEP8 E111 indentation is not a multiple of four
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 16 Aug 2017 17:27:58 +0300] rev 1757
clean-up: fix PEP8 E111 indentation is not a multiple of four

Wed, 16 Aug 2017 16:37:45 +0300clean-up: fix PEP8 E701 multiple statements on one line (colon)
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 16 Aug 2017 16:37:45 +0300] rev 1756
clean-up: fix PEP8 E701 multiple statements on one line (colon)

Wed, 16 Aug 2017 15:18:57 +0300clean-up: fix PEP8 E741 ambiguous variable name
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 16 Aug 2017 15:18:57 +0300] rev 1755
clean-up: fix PEP8 E741 ambiguous variable name

Wed, 16 Aug 2017 13:56:36 +0300clean-up: fix most PEP8 E221 multiple spaces before operator
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 16 Aug 2017 13:56:36 +0300] rev 1754
clean-up: fix most PEP8 E221 multiple spaces before operator

Wed, 16 Aug 2017 13:49:02 +0300clean-up: fix most PEP8 E266 too many leading '#' for block comment
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 16 Aug 2017 13:49:02 +0300] rev 1753
clean-up: fix most PEP8 E266 too many leading '#' for block comment

Wed, 16 Aug 2017 13:01:13 +0300clean-up: fix PEP8 E703 statement ends with a semicolon
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 16 Aug 2017 13:01:13 +0300] rev 1752
clean-up: fix PEP8 E703 statement ends with a semicolon

Wed, 16 Aug 2017 12:57:52 +0300clean-up: fix PEP8 E301 expected 1 blank line, found 0
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 16 Aug 2017 12:57:52 +0300] rev 1751
clean-up: fix PEP8 E301 expected 1 blank line, found 0

Wed, 16 Aug 2017 12:53:23 +0300clean-up: fix PEP8 E306 expected 1 blank line before a nested definition, found X
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 16 Aug 2017 12:53:23 +0300] rev 1750
clean-up: fix PEP8 E306 expected 1 blank line before a nested definition, found X

Wed, 16 Aug 2017 12:48:08 +0300clean-up: fix PEP8 E305 expected 2 blank lines after class or function definition
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 16 Aug 2017 12:48:08 +0300] rev 1749
clean-up: fix PEP8 E305 expected 2 blank lines after class or function definition

Wed, 16 Aug 2017 12:30:31 +0300clean-up: fix PEP8 W391 blank line at end of file
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 16 Aug 2017 12:30:31 +0300] rev 1748
clean-up: fix PEP8 W391 blank line at end of file

Wed, 16 Aug 2017 12:21:05 +0300clean-up: fix PEP8 E201 whitespace after '{'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 16 Aug 2017 12:21:05 +0300] rev 1747
clean-up: fix PEP8 E201 whitespace after '{'

Wed, 16 Aug 2017 12:03:46 +0300clean-up: fix PEP8 E202 whitespace before ')'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 16 Aug 2017 12:03:46 +0300] rev 1746
clean-up: fix PEP8 E202 whitespace before ')'

Wed, 16 Aug 2017 11:47:27 +0300clean-up: fix PEP8 E227 missing whitespace around bitwise or shift operator
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 16 Aug 2017 11:47:27 +0300] rev 1745
clean-up: fix PEP8 E227 missing whitespace around bitwise or shift operator

Tue, 15 Aug 2017 22:38:43 +0300clean-up: fix PEP8 E251 unexpected spaces around keyword / parameter equals
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 15 Aug 2017 22:38:43 +0300] rev 1744
clean-up: fix PEP8 E251 unexpected spaces around keyword / parameter equals

Tue, 15 Aug 2017 17:01:51 +0300clean-up: fix PEP8 E711 comparison to None should be 'if cond is not None:'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 15 Aug 2017 17:01:51 +0300] rev 1743
clean-up: fix PEP8 E711 comparison to None should be 'if cond is not None:'

Tue, 15 Aug 2017 16:48:49 +0300clean-up: fix PEP8 E225 missing whitespace around operator
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 15 Aug 2017 16:48:49 +0300] rev 1742
clean-up: fix PEP8 E225 missing whitespace around operator

Tue, 15 Aug 2017 16:01:18 +0300clean-up: fix PEP8 E303 too many blank lines
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 15 Aug 2017 16:01:18 +0300] rev 1741
clean-up: fix PEP8 E303 too many blank lines

Tue, 15 Aug 2017 15:50:30 +0300clean-up: fix PEP8 E231 missing whitespace after ':' or ','
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 15 Aug 2017 15:50:30 +0300] rev 1740
clean-up: fix PEP8 E231 missing whitespace after ':' or ','

Tue, 15 Aug 2017 12:17:51 +0300clean-up: fix PEP8 E203 whitespace before ':' and whitespace before ','
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 15 Aug 2017 12:17:51 +0300] rev 1739
clean-up: fix PEP8 E203 whitespace before ':' and whitespace before ','

Mon, 14 Aug 2017 23:38:28 +0300clean-up: fix PEP8 E271 multiple spaces after keyword
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 14 Aug 2017 23:38:28 +0300] rev 1738
clean-up: fix PEP8 E271 multiple spaces after keyword

Mon, 14 Aug 2017 23:34:22 +0300clean-up: fix PEP8 E261 at least two spaces before inline comment
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 14 Aug 2017 23:34:22 +0300] rev 1737
clean-up: fix PEP8 E261 at least two spaces before inline comment

Mon, 14 Aug 2017 23:27:15 +0300clean-up: fix PEP8 E302 expected 2 blank lines, found 1
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 14 Aug 2017 23:27:15 +0300] rev 1736
clean-up: fix PEP8 E302 expected 2 blank lines, found 1

Mon, 14 Aug 2017 22:30:41 +0300clean-up: fix PEP8 W293 blank line contains whitespace
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 14 Aug 2017 22:30:41 +0300] rev 1735
clean-up: fix PEP8 W293 blank line contains whitespace

Mon, 14 Aug 2017 22:23:17 +0300clean-up: fix some PEP8 E228 missing whitespace around modulo operator
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 14 Aug 2017 22:23:17 +0300] rev 1734
clean-up: fix some PEP8 E228 missing whitespace around modulo operator

Mon, 14 Aug 2017 21:31:01 +0300clean-up: fix some PEP8 E265 block comment should start with '# '
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 14 Aug 2017 21:31:01 +0300] rev 1733
clean-up: fix some PEP8 E265 block comment should start with '# '

Mon, 14 Aug 2017 21:20:32 +0300clean-up: fix PEP8 E401 multiple imports on one line
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 14 Aug 2017 21:20:32 +0300] rev 1732
clean-up: fix PEP8 E401 multiple imports on one line

Mon, 14 Aug 2017 21:09:48 +0300convert some files from CRLF to LF
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 14 Aug 2017 21:09:48 +0300] rev 1731
convert some files from CRLF to LF

It'll break for these files hg blame/annotate. Fortunately not many
files are affected.

Mon, 14 Aug 2017 19:13:01 +0300clean-up for PEP8: fix W291 trailing whitespace
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 14 Aug 2017 19:13:01 +0300] rev 1730
clean-up for PEP8: fix W291 trailing whitespace

Mon, 21 Aug 2017 20:17:19 +0000README.md edited online with Bitbucket
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 21 Aug 2017 20:17:19 +0000] rev 1729
README.md edited online with Bitbucket

Mon, 21 Aug 2017 20:16:00 +0000fix link to documentation in README.md
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 21 Aug 2017 20:16:00 +0000] rev 1728
fix link to documentation in README.md

Mon, 21 Aug 2017 20:14:34 +0000Add information about built official documentation to README.md
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 21 Aug 2017 20:14:34 +0000] rev 1727
Add information about built official documentation to README.md

Fri, 11 Aug 2017 15:18:19 +0300don't allow empty dimension for ARRAY types
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 11 Aug 2017 15:18:19 +0300] rev 1726
don't allow empty dimension for ARRAY types

Wed, 09 Aug 2017 14:34:28 +0300ignore built documentation
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 09 Aug 2017 14:34:28 +0300] rev 1725
ignore built documentation

Wed, 09 Aug 2017 14:13:17 +0300manual: add untranslated po files for French and Korean
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 09 Aug 2017 14:13:17 +0300] rev 1724
manual: add untranslated po files for French and Korean

Wed, 09 Aug 2017 14:11:20 +0300build missing pot files, when building HTML documentation
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 09 Aug 2017 14:11:20 +0300] rev 1723
build missing pot files, when building HTML documentation

Mon, 07 Aug 2017 14:28:29 +0300fix some typos
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 07 Aug 2017 14:28:29 +0300] rev 1722
fix some typos

Sun, 30 Jul 2017 13:54:51 -0700Changed title of new project dialog from:
janbarslo [Sun, 30 Jul 2017 13:54:51 -0700] rev 1721
Changed title of new project dialog from:
Choose a project
to
Choose an empty directory for new project

Sun, 30 Jul 2017 13:51:43 -0700Changed title of New Project dialog
janbarslo [Sun, 30 Jul 2017 13:51:43 -0700] rev 1720
Changed title of New Project dialog
from
Chose a project
to
Choose an empty directory for new project

Fri, 28 Jul 2017 15:34:11 +0300skip hidden files and directories on permission check
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 28 Jul 2017 15:34:11 +0300] rev 1719
skip hidden files and directories on permission check

To fix problems with git, because .git subdirectory contains
read-only repository objects.

Fri, 14 Jul 2017 18:26:20 +0300change structure of filename for bug reports in Beremiz and
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 14 Jul 2017 18:26:20 +0300] rev 1718
change structure of filename for bug reports in Beremiz and
PLCOpenEditor so bug reports could be easily sorted by name

Wed, 05 Jul 2017 13:11:45 +0300fix target Xenomai missing functions
wuyangtang <wuyangtang@live.com> [Wed, 05 Jul 2017 13:11:45 +0300] rev 1717
fix target Xenomai missing functions

Wed, 05 Jul 2017 13:03:58 +0300update messages.pot and messages.po
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 05 Jul 2017 13:03:58 +0300] rev 1716
update messages.pot and messages.po

Wed, 05 Jul 2017 13:02:30 +0300mki18n.py: generate messages.po (contains English strings in msgstr)
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 05 Jul 2017 13:02:30 +0300] rev 1715
mki18n.py: generate messages.po (contains English strings in msgstr)

This po file is necessary because Transifex translation platform
automatically can only import PO files. Usually messages.pot is
enough.

Wed, 05 Jul 2017 12:59:43 +0300add to i18n/README forgotten commands to add some XML schemes as source
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 05 Jul 2017 12:59:43 +0300] rev 1714
add to i18n/README forgotten commands to add some XML schemes as source
for strings and update app.fil

Tue, 04 Jul 2017 14:00:42 +0300Backout commit 92537ed because of writing localized string in node *.xml file
Surkov Sergey <surkovsv93@gmail.com> [Tue, 04 Jul 2017 14:00:42 +0300] rev 1713
Backout commit 92537ed because of writing localized string in node *.xml file

Tue, 04 Jul 2017 13:46:48 +0300Backout changeset 92537edeb2052d53ba5cad8b6da8463dbc660bb1
Surkov Sergey <surkovsv93@gmail.com> [Tue, 04 Jul 2017 13:46:48 +0300] rev 1712
Backout changeset 92537edeb2052d53ba5cad8b6da8463dbc660bb1

Wed, 28 Jun 2017 18:38:52 +0300fixes double mouse capturing after forcing variable in debug mode
Surkov Sergey <surkovsv93@gmail.com> [Wed, 28 Jun 2017 18:38:52 +0300] rev 1711
fixes double mouse capturing after forcing variable in debug mode
this problem appears on Linux

Tue, 27 Jun 2017 19:21:09 +0300fix bug with TextViewer instance in debug mode, appears after transferring new program on PLC
Surkov Sergey <surkovsv93@gmail.com> [Tue, 27 Jun 2017 19:21:09 +0300] rev 1710
fix bug with TextViewer instance in debug mode, appears after transferring new program on PLC
TextViewer isn't able to display debug values, so calling for this class SubscribeAllDataConsumers method causes error

Tue, 27 Jun 2017 13:30:48 +0300fix build problem when make command have trailing whitespace(s)
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 27 Jun 2017 13:30:48 +0300] rev 1709
fix build problem when make command have trailing whitespace(s)

whitespaces at the end are replaced with "", that causes make problem

Mon, 26 Jun 2017 19:42:42 +0300add dialog "add program", that appears after creating new project
Surkov Sergey <surkovsv93@gmail.com> [Mon, 26 Jun 2017 19:42:42 +0300] rev 1708
add dialog "add program", that appears after creating new project
also, sets one task and one instance of created program in main project resource

Mon, 26 Jun 2017 19:38:51 +0300fix i18n string selection for combobox generated from XSD
Surkov Sergey <surkovsv93@gmail.com> [Mon, 26 Jun 2017 19:38:51 +0300] rev 1707
fix i18n string selection for combobox generated from XSD

Thu, 22 Jun 2017 16:43:38 +0300update Russian and French (Fabien M) translations
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 22 Jun 2017 16:43:38 +0300] rev 1706
update Russian and French (Fabien M) translations
added Slovenian (Janez Pregelj) and Portuguese (Thiago Alves) translations

Thu, 22 Jun 2017 16:08:50 +0300l18n: update messages.pot and app.fil
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 22 Jun 2017 16:08:50 +0300] rev 1705
l18n: update messages.pot and app.fil

Thu, 22 Jun 2017 16:07:56 +0300add l18n support to variable table in CodeFileEditor (python/C extension)
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 22 Jun 2017 16:07:56 +0300] rev 1704
add l18n support to variable table in CodeFileEditor (python/C extension)

Thu, 22 Jun 2017 16:06:34 +0300set project name and character set in generated messages.pot
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 22 Jun 2017 16:06:34 +0300] rev 1703
set project name and character set in generated messages.pot

Thu, 22 Jun 2017 15:55:26 +0300close DurationEditorDialog on ENTER key
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 22 Jun 2017 15:55:26 +0300] rev 1702
close DurationEditorDialog on ENTER key

Wed, 21 Jun 2017 17:08:52 +0300add button to ForceVariableDialog to toggle forced boolean value
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 21 Jun 2017 17:08:52 +0300] rev 1701
add button to ForceVariableDialog to toggle forced boolean value

Button is added only for boolean variables.

Tue, 20 Jun 2017 18:57:29 +0300fix problem with hidden FindInPou dialog with wxPython 3.0 on Windows
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 20 Jun 2017 18:57:29 +0300] rev 1700
fix problem with hidden FindInPou dialog with wxPython 3.0 on Windows

FindInPou.IsShown() returned True, but dialog was hidden.
At same time On GNU/Linux with wxPython 3.0 there wasn't such problem.
So it's Windows specific.

Tue, 20 Jun 2017 17:01:19 +0300enable non-latin variable descriptions in CodeFileEditor
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 20 Jun 2017 17:01:19 +0300] rev 1699
enable non-latin variable descriptions in CodeFileEditor

fix following backtrace:

UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-7: ordinal not in range(128)
Traceback (most recent call last):
File "beremiz/editors/CodeFileEditor.py", line 610, in GetValue
return str(self.data[row].get(self.GetColLabelValue(col, False), ""))
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-7: ordinal not in range(128)

Tue, 20 Jun 2017 16:36:17 +0300disable empty coils and contacts in LD/SFC editors
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 20 Jun 2017 16:36:17 +0300] rev 1698
disable empty coils and contacts in LD/SFC editors

Closes #30

Mon, 19 Jun 2017 19:23:31 +0300remove debug code
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 19 Jun 2017 19:23:31 +0300] rev 1697
remove debug code

Mon, 19 Jun 2017 18:49:43 +0300make all dialog have non-fixed size
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 19 Jun 2017 18:49:43 +0300] rev 1696
make all dialog have non-fixed size

this fixes the problem, that some controls may be hidden in some cases, because
dialog size is too small. This can happen when system fonts are bigger
than expected, default system them controls are bigger or if localized
strings are bigger than in English.

Fri, 09 Jun 2017 18:12:12 +0300avoid infinite loop in search
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 09 Jun 2017 18:12:12 +0300] rev 1695
avoid infinite loop in search

for example following regexp '()' creates infinite list of result

Thu, 08 Jun 2017 17:30:23 +0300make adjustable size of ArrayTypeDialog
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 08 Jun 2017 17:30:23 +0300] rev 1694
make adjustable size of ArrayTypeDialog

Thu, 08 Jun 2017 17:29:41 +0300fix problem with initial values for array of structures
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 08 Jun 2017 17:29:41 +0300] rev 1693
fix problem with initial values for array of structures

for structures wrong empty repetition attributes were generated

Tue, 06 Jun 2017 14:21:53 +0300add information about community support channel to Beremiz and PLCOpenEditor
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 06 Jun 2017 14:21:53 +0300] rev 1692
add information about community support channel to Beremiz and PLCOpenEditor

Tue, 06 Jun 2017 13:13:57 +0300cleanup wxHMI example
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 06 Jun 2017 13:13:57 +0300] rev 1691
cleanup wxHMI example

Tue, 06 Jun 2017 13:12:10 +0300cleanup wxGlade example
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 06 Jun 2017 13:12:10 +0300] rev 1690
cleanup wxGlade example

Tue, 06 Jun 2017 13:11:18 +0300add comments to wiimote example
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 06 Jun 2017 13:11:18 +0300] rev 1689
add comments to wiimote example

Tue, 06 Jun 2017 13:05:30 +0300fix running wxGlade on current Debian systems
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 06 Jun 2017 13:05:30 +0300] rev 1688
fix running wxGlade on current Debian systems

wxGlade was moved from python import path to /usr/share/wxglade

Fri, 02 Jun 2017 19:58:27 +0300rename text field in SVG graphic to match IEC code in svgui example
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 02 Jun 2017 19:58:27 +0300] rev 1687
rename text field in SVG graphic to match IEC code in svgui example

This caused svgui example to crash.

Thu, 01 Jun 2017 14:37:14 +0300disallow setting IEC location addresses for TIME, DATE, DT and TOD variables
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 01 Jun 2017 14:37:14 +0300] rev 1686
disallow setting IEC location addresses for TIME, DATE, DT and TOD variables

Size of these types is not defined and depends on the implementation
(IEC 61131-3 2.3.1).

Tue, 30 May 2017 17:09:33 +0300if there is no users matiec installation, then use system path to run iec2c
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 30 May 2017 17:09:33 +0300] rev 1685
if there is no users matiec installation, then use system path to run iec2c

search for matiec libraries in system path as well

Closes #29

Tue, 23 May 2017 16:06:29 +0300remove child node from add child node menu, if max count of the same type nodes reached
Surkov Sergey <surkovsv93@gmail.com> [Tue, 23 May 2017 16:06:29 +0300] rev 1684
remove child node from add child node menu, if max count of the same type nodes reached

Thu, 18 May 2017 18:00:56 +0300fix reducing groups with ordered elements
Surkov Sergey <surkovsv93@gmail.com> [Thu, 18 May 2017 18:00:56 +0300] rev 1683
fix reducing groups with ordered elements

Wed, 03 May 2017 11:03:44 +0300fix extra brace
Anton Midyukov [Wed, 03 May 2017 11:03:44 +0300] rev 1682
fix extra brace

Fri, 28 Apr 2017 13:28:22 +0300add getCompiler and getLinker methods, to abstract from XSD.
Paul Beltyukov <beltyukov.p.a@gmail.com> [Fri, 28 Apr 2017 13:28:22 +0300] rev 1681
add getCompiler and getLinker methods, to abstract from XSD.
add calc_source_md5 as it's more convenient especially for embedded
targets to add -DPLC_MD5="something" option at compile time than
to mess with editing binary.
add some more helper methods

Thu, 20 Apr 2017 13:01:45 +0300make run Beremiz and PLCOpen Editor, if full path contain non-lating
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 20 Apr 2017 13:01:45 +0300] rev 1680
make run Beremiz and PLCOpen Editor, if full path contain non-lating
characters

There was a problem in About dialog and in project properites tab and
probably in my other places, when str is automatically converted to
unicode string using ascii.
This patch converts str to unicode using proper encoding at the very beggining.

Wed, 12 Apr 2017 10:20:01 +0000README.md edited online with Bitbucket
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 12 Apr 2017 10:20:01 +0000] rev 1679
README.md edited online with Bitbucket

Tue, 11 Apr 2017 19:09:34 +0300fix clearing project name on opening project properties page.
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 11 Apr 2017 19:09:34 +0300] rev 1678
fix clearing project name on opening project properties page.

The problem exists only on Windows with wxPython-3.0.

This happens because callback for EVT_KILL_FOCUS for a first text
control (project name) is called just after creating page with project
properties. It happens before initializing text controls from PLCController.

Tue, 11 Apr 2017 17:45:49 +0300fix problem with debugging external string variables
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 11 Apr 2017 17:45:49 +0300] rev 1677
fix problem with debugging external string variables

Debug update stopped if external string variable added to debug
variable panel.

Tue, 11 Apr 2017 12:51:35 +0300fix problem with clearing non-empty location field after changing type of config variable
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 11 Apr 2017 12:51:35 +0300] rev 1676
fix problem with clearing non-empty location field after changing type of config variable

introduced by cd9db17 ("clear variable location cell in variable
panel, if variable class or type changed").

Closes #26

Mon, 10 Apr 2017 18:29:12 +0300fix backtrace on opening program/resource on small screens
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 10 Apr 2017 18:29:12 +0300] rev 1675
fix backtrace on opening program/resource on small screens

Fix regression introduced by f4696d8 ("add stretching to columns Name,
Type, Doc in variable panel").
This problem happens only on wxPython-3.0.

Fri, 07 Apr 2017 16:54:31 +0300show whether instance of SFC action is currently active or not in its
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 07 Apr 2017 16:54:31 +0300] rev 1674
show whether instance of SFC action is currently active or not in its
debug instance view

Wed, 05 Apr 2017 14:24:52 +0300clean PLC log only if there is something to clean
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 05 Apr 2017 14:24:52 +0300] rev 1673
clean PLC log only if there is something to clean

Otherwise exception happens in Beremiz service.

Traceback (most recent call last):
File "/home/developer/WorkData/PLC/beremiz/beremiz/connectors/PYRO/_init_.py", line 113, in catcher_func
return func(*args, **kwargs)
File "/home/developer/WorkData/PLC/beremiz/beremiz/connectors/PYRO/_init_.py", line 194, in my_local_func
return RemotePLCObjectProxy._getattr_(attrName)(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/Pyro/core.py", line 381, in _call_
return self._send(self._name, args, kwargs)
File "/usr/lib/python2.7/dist-packages/Pyro/core.py", line 456, in _invokePYRO
return self.adapter.remoteInvocation(name, Pyro.constants.RIF_VarargsAndKeywords, vargs, kargs)
File "/usr/lib/python2.7/dist-packages/Pyro/protocol.py", line 457, in remoteInvocation
return self._remoteInvocation(method, flags, *args)
File "/usr/lib/python2.7/dist-packages/Pyro/protocol.py", line 532, in _remoteInvocation
answer.raiseEx()
File "/usr/lib/python2.7/dist-packages/Pyro/errors.py", line 72, in raiseEx
raise self.excObj
AttributeError: 'PLCObject' object has no attribute '_ResetLogCount'
+--- This exception occured remotely (Pyro) - Remote traceback:
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/Pyro/protocol.py", line 719, in _handleInvocation2
res = obj.Pyro_dyncall(req[1],flags,req[3]) # (method,flags,args)
File "/usr/lib/python2.7/dist-packages/Pyro/core.py", line 108, in Pyro_dyncall
return getattr(self.delegate or self,method) (args,*keywords)
File "/home/developer/WorkData/PLC/beremiz/beremiz/runtime/PLCObject.py", line 101, in ResetLogCount
if self._ResetLogCount is not None:
AttributeError: 'PLCObject' object has no attribute '_ResetLogCount'
+--- End of remote traceback

Wed, 05 Apr 2017 14:17:02 +0300reset loaded messages counts on new PLC program trasnfer
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 05 Apr 2017 14:17:02 +0300] rev 1672
reset loaded messages counts on new PLC program trasnfer

This fixes the problem that first message from newer PLC program maybe
lost, if it's issued before first PLC log fetching.

Closes #23

Tue, 04 Apr 2017 11:34:31 +0300add function block to variable panel if fb is added using toolbar
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 04 Apr 2017 11:34:31 +0300] rev 1671
add function block to variable panel if fb is added using toolbar

Closes #25

Tue, 28 Mar 2017 19:48:51 +0300enable to write SFC transition in IL
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 28 Mar 2017 19:48:51 +0300] rev 1670
enable to write SFC transition in IL

This commit reverts previous commit 3f3d97be9a9f.
Because the fix for the matiec problem is already upstream
(https://bitbucket.org/mjsousa/matiec/commits/ce026aee03e00c0790948a18bd7b35805457da81)