Thu, 10 Dec 2020 14:54:42 +0100 Edouard Tisserant Fixed "Onchange" object added in previous commit svghmi
Thu, 10 Dec 2020 11:37:27 +0100 Edouard Tisserant 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. svghmi
Mon, 07 Dec 2020 09:49:34 +0100 Edouard Tisserant SVGHMI: cosmetic fixes in button widget svghmi
Sat, 05 Dec 2020 16:59:27 +0100 Edouard Tisserant SVGHMI: Rewrote button widget. svghmi
Wed, 02 Dec 2020 14:33:24 +0100 Edouard Tisserant SVGHMI: update generated XSLT svghmi
Wed, 02 Dec 2020 14:32:56 +0100 Edouard Tisserant SVGHMI: stuff test so that it moves all the time, to have better chance to spot memory leaks... svghmi
Wed, 02 Dec 2020 14:31:57 +0100 Edouard Tisserant SVGHMI: prevent unwnted context menu and pinch zoom svghmi
Wed, 02 Dec 2020 14:30:58 +0100 Edouard Tisserant SVGHMI: more attempts to prevent losing memory in JS closure svghmi
Fri, 27 Nov 2020 18:06:34 +0100 Edouard Tisserant SVGHMI: WIP trying to reduce memory usage : use .onclick onstead of SetAttribute, avoid useless closure and object creation when possible, etc. svghmi
Wed, 25 Nov 2020 14:47:47 +0100 Edouard Tisserant SVGHMI: update generated xslt file svghmi
Wed, 25 Nov 2020 14:47:23 +0100 Edouard Tisserant SVGHMI: use const when applicable svghmi
Wed, 25 Nov 2020 14:46:25 +0100 Edouard Tisserant SVGHMI: prevents text and svg elements selection on the whole page when dragging. svghmi
Wed, 25 Nov 2020 14:45:01 +0100 Edouard Tisserant SVGHMI: Update default test to check that Input widget is indeed updated when variable changes. svghmi
Wed, 25 Nov 2020 14:43:03 +0100 Edouard Tisserant SVGHMI: Fix: on screen keyboard wasn't showing up when editing local variables through Input widget. svghmi
Fri, 20 Nov 2020 11:17:40 +0100 Edouard Tisserant Project tree: avoid flickering and glitches in notebook when selecting some still not opened ConfigTreeNode svghmi
Wed, 18 Nov 2020 23:08:17 +0100 Edouard Tisserant merge svghmi
Wed, 18 Nov 2020 10:15:44 +0100 Edouard Tisserant py_ext: better handling of coma separated OnChange attribute for python safe global variables. svghmi
Wed, 18 Nov 2020 23:06:16 +0100 Edouard Tisserant 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. svghmi
Mon, 02 Nov 2020 10:56:09 +0100 Edouard Tisserant Allow customization of generated py_ext OnChange calls, by adding a static method to PythonFileCTNMixin that can the be later hot patched. svghmi
Wed, 28 Oct 2020 18:21:12 +0200 Edouard Tisserant Arbitrary variables added to JsonTable subscription are now passed as 'extra' field in json query. As an example added JsonTable filtering in tests/svghmi svghmi
Thu, 22 Oct 2020 22:44:29 +0200 Edouard Tisserant SVGHMI: Fix HMI_REAL support, and add a HMI_REAL use case in tests/svghmi. svghmi
Tue, 20 Oct 2020 00:24:49 +0200 Edouard Tisserant merge svghmi
Mon, 19 Oct 2020 10:17:18 +0200 Edouard Tisserant SVGHMI: JsonTable now outputs "visible" value as well. svghmi
Mon, 19 Oct 2020 10:15:26 +0200 Edouard Tisserant SVGHMI: non significant cosmetic changes svghmi
Mon, 19 Oct 2020 09:29:11 +0200 usveticic - New widget customHtml which allows to insert block of html code svghmi
Tue, 20 Oct 2020 00:23:52 +0200 Edouard Tisserant PY_EXT: OnChange is now a coma separated list of callables. Updated tests/python accordingly. svghmi
Thu, 01 Oct 2020 14:23:27 +0200 usveticic Button fix if no active or inactive state, svghmi
Wed, 30 Sep 2020 12:31:59 +0200 usveticic Merge two different heads svghmi
Thu, 24 Sep 2020 15:42:40 +0200 Edouard Tisserant SVGHMI: Documentation fix svghmi
Thu, 24 Sep 2020 11:52:40 +0200 usveticic Button and toggle reworked to use animate and dispatch svghmi
Thu, 17 Sep 2020 11:30:22 +0200 Edouard Tisserant Merge + fix side effects of making warning instead of errors in case of missing HMI variable svghmi
Wed, 16 Sep 2020 09:42:26 +0200 usveticic Updated svg and xml for testing program svghmi
Wed, 16 Sep 2020 09:41:52 +0200 usveticic Button, ToggleButton and slider updated. Error to warning when building svghmi
Tue, 15 Sep 2020 13:57:06 +0200 Edouard Tisserant Modbus: fixed typo in ctype typing. svghmi
Fri, 11 Sep 2020 13:46:41 +0200 Edouard Tisserant MODBUS: Fix saving of websettings. svghmi
Thu, 10 Sep 2020 16:08:26 +0200 Edouard Tisserant 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. svghmi
Thu, 03 Sep 2020 11:16:08 +0200 Edouard Tisserant SVGHMI: Better error message when inkscape is not installed. svghmi
Wed, 02 Sep 2020 11:45:41 +0200 Edouard Tisserant SVGHMI: nicer error message svghmi
Tue, 01 Sep 2020 11:15:48 +0200 Edouard Tisserant Merge svghmi
Mon, 31 Aug 2020 13:54:08 +0200 Edouard Tisserant 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. svghmi
Fri, 28 Aug 2020 15:29:35 +0200 Edouard Tisserant SVGHMI: JsonTable can now have clickable elements, that trigger a request with extra argument whose content is taken from Json data. svghmi
Fri, 28 Aug 2020 11:31:18 +0200 Edouard Tisserant Merged svghmi
Fri, 28 Aug 2020 11:27:07 +0200 Edouard Tisserant SVGHMI: cosmetic fix in test svghmi
Tue, 18 Aug 2020 11:42:28 +0200 usveticic All widgets reworked to use widget class and animate function if needed svghmi
Thu, 27 Aug 2020 14:34:48 +0200 Edouard Tisserant SVGHMI: Moved JsonTable/Alarm related test in a separate page. svghmi
Thu, 27 Aug 2020 14:34:00 +0200 Edouard Tisserant SVGHMI: JsonTable now ignores elements and groups starting with # svghmi
Thu, 27 Aug 2020 09:59:35 +0200 Edouard Tisserant SVGHMI: Fix keypad : non-number input was always considered invalid because of missing type checking. svghmi
Wed, 26 Aug 2020 14:27:54 +0200 Edouard Tisserant SVGHMI: JsonTable now updates range and position variables so that slider widget can update. svghmi
Wed, 26 Aug 2020 14:24:43 +0200 Edouard Tisserant SVGHMI: Fix multiple variable support in widget svghmi
Wed, 26 Aug 2020 11:34:06 +0200 Edouard Tisserant SVGHMI: Add TODOs in Button widgets. svghmi
Wed, 26 Aug 2020 11:26:45 +0200 Edouard Tisserant 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. svghmi
Tue, 25 Aug 2020 14:34:49 +0200 Edouard Tisserant SVGHMI: little fix in HMI:Button svghmi
Tue, 25 Aug 2020 14:32:39 +0200 Edouard Tisserant 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. svghmi
Mon, 24 Aug 2020 09:48:35 +0200 Edouard Tisserant SVGHMI: removed debug code forgotten here and there. svghmi
Fri, 21 Aug 2020 14:29:03 +0200 Edouard Tisserant SVGHMI: JsonTable now makes meaningfull JSON request : all arguments and variables are passed in. svghmi
Fri, 21 Aug 2020 13:22:54 +0200 Edouard Tisserant 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. svghmi
Thu, 20 Aug 2020 14:12:49 +0200 Edouard Tisserant SVGHMI: Behave when project path include spaces, and make more understandable error in case of problem extracting geometry with inkscape. svghmi
Thu, 20 Aug 2020 13:56:21 +0200 Edouard Tisserant 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. svghmi
Thu, 20 Aug 2020 13:52:00 +0200 Edouard Tisserant SVGHMI: Fix again clone unlinking, and this time add an "original" attribute to track the id of the original object before unlinking. svghmi
Mon, 17 Aug 2020 10:00:25 +0200 Edouard Tisserant SVGHMI: Fix svg test file while testing latest JsonTableChanges svghmi
Sat, 15 Aug 2020 18:50:25 +0200 Edouard Tisserant SVGHMI: HMI:JsonTable also recognize TextStyleList, but parsing of textContent is still not implemented and style is still not updated. svghmi
Sat, 15 Aug 2020 18:46:35 +0200 Edouard Tisserant SVGHMI: Deeper clone unlinking. Was actually not recursive, and clones in clones where not unlinked. Stack successive ids to avoid collisions. svghmi
Thu, 13 Aug 2020 11:37:39 +0200 Edouard Tisserant SVGHMI: factorize dispatch calling logic. svghmi
Thu, 13 Aug 2020 11:30:18 +0200 Edouard Tisserant 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. svghmi
Wed, 12 Aug 2020 15:24:02 +0200 Edouard Tisserant Merge svghmi
Wed, 12 Aug 2020 13:36:18 +0200 Edouard Tisserant SVGHMI: Add more local HMI variable tests in tests/svghmi. svghmi
Tue, 11 Aug 2020 14:37:33 +0200 Edouard Tisserant SVGHMI: finished initial implementation of PAGE_LOCAL and HMI_LOCAL variables. svghmi
Mon, 10 Aug 2020 15:25:57 +0200 Edouard Tisserant SVGHMI: add a SetPoint to Slider Widget, visible only when operating the slider. svghmi
Mon, 10 Aug 2020 14:00:20 +0200 Edouard Tisserant SVGHMI: Update Slider widget so that it doesn't display future value but actual value only. svghmi
Mon, 10 Aug 2020 13:58:55 +0200 Edouard Tisserant 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. svghmi
Mon, 10 Aug 2020 11:30:06 +0200 Edouard Tisserant Merge svghmi
Sat, 08 Aug 2020 15:53:28 +0200 Edouard Tisserant SVGHMI: Intermediate state while implementing local HMI variables. Now write to cache only (no send), still need to implement dispatch on change. svghmi
Wed, 05 Aug 2020 15:20:10 +0200 usveticic Beremiz test project with newly created widgets. svghmi
Wed, 05 Aug 2020 15:18:00 +0200 usveticic Rebuilded gen_index_html.xslt after all new widgets were commited svghmi
Wed, 05 Aug 2020 15:16:43 +0200 usveticic Create new multistate widget which extand class widget svghmi
Wed, 05 Aug 2020 15:16:03 +0200 usveticic Create new CircularSlider widget which extand class widget svghmi
Wed, 05 Aug 2020 15:15:33 +0200 usveticic Create new slider widget which extand class widget svghmi
Wed, 05 Aug 2020 15:14:39 +0200 usveticic Reworked togglebutton widget to extand class widget svghmi
Wed, 05 Aug 2020 15:13:59 +0200 usveticic Changed keyboard to show on defined position. svghmi
Wed, 05 Aug 2020 15:04:53 +0200 usveticic Reworked button widget so it uses classes. svghmi
Thu, 06 Aug 2020 15:01:01 +0200 Edouard Tisserant 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. svghmi
Thu, 06 Aug 2020 14:59:04 +0200 Edouard Tisserant 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. svghmi
Wed, 05 Aug 2020 18:53:56 +0200 Edouard Tisserant SVGHMI: JS refactoring continued : "dispatch_value_to_widget" becomes widget class member "new_hmi_value" (was also broken by previous relativeness commit) svghmi
Wed, 05 Aug 2020 18:49:29 +0200 Edouard Tisserant SVGHMI: widgets are not anymore binary relative or absolute, but have a "relativeness". svghmi
Tue, 04 Aug 2020 11:53:39 +0200 Edouard Tisserant SVGHMI: More JS code refactoring : change_hmi_value and apply_hmi_value now methods of widget class. svghmi
Mon, 03 Aug 2020 18:25:23 +0200 Edouard Tisserant SVGHMI: Better JS code semantic in ForEach widget class. Update lagging generated xslt. svghmi
Mon, 03 Aug 2020 18:22:19 +0200 Edouard Tisserant SVGHMI: Add ForEach Widget is svghmi test svghmi
Mon, 03 Aug 2020 16:34:44 +0200 Edouard Tisserant SVGHMI: add get_idx(index) to widget objects to factorize a bit code repeated accross widgets. To be continued. svghmi
Mon, 03 Aug 2020 16:32:23 +0200 Edouard Tisserant SVGHMI: prefer apply_hmi_value() to change_hmi_value() when possible svghmi
Mon, 03 Aug 2020 16:30:16 +0200 Edouard Tisserant SVGHMI: Add RelativePages to tests svghmi
Mon, 03 Aug 2020 12:08:25 +0200 Edouard Tisserant SVGHMI: Update Widget Display templates to generate Class based declaration. svghmi
Wed, 22 Jul 2020 13:56:43 +0200 Edouard Tisserant SVGHMI: JsonTable now picks items from HMI:List, and update texts, all according to Json data. Still miss scrolling. svghmi
Fri, 17 Jul 2020 12:21:45 +0200 Edouard Tisserant SVGHMI: JsonTable now generate working data access code for data/* elements. svghmi
Fri, 17 Jul 2020 12:19:53 +0200 Edouard Tisserant 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. svghmi
Tue, 14 Jul 2020 22:05:47 +0200 Edouard Tisserant SVGHMI: minimal JSON Table Widget communication infra + corresponding python code as py_ext code in svghmi test. To be continued. svghmi
Mon, 13 Jul 2020 13:56:42 +0200 Edouard Tisserant Python Runtime: order of execution of extension's init() and cleanup() now reflects order of appearance of extensions in configuration tree. svghmi
Fri, 10 Jul 2020 11:15:41 +0200 Edouard Tisserant Python Runtime : stil untested optimization of Python Safe Globals. svghmi
Fri, 03 Jul 2020 14:02:04 +0200 Edouard Tisserant Prevent global python_poll blocks to be created when accidentally adding content to C-File OnChange column. svghmi
Fri, 03 Jul 2020 10:03:25 +0200 Edouard Tisserant Merge from default svghmi
Mon, 29 Jun 2020 14:38:04 +0200 Edouard Tisserant Modbus: fix strange side effect of re-use of condition variables or mutex with Xenomai : without bzero of the associated types, mutex keeps locked. svghmi
Wed, 24 Jun 2020 14:38:11 +0200 Edouard Tisserant Modbus: fix client timer invalid arguments. svghmi
Tue, 23 Jun 2020 13:50:21 +0200 Edouard Tisserant Modbus add a timer thread, and switch timer to SIGEV_THREAD_ID to follow xenomai posix skin restrictions. svghmi
Fri, 19 Jun 2020 11:07:25 +0200 Edouard Tisserant Runtime: Fix typo in PLCObject leading to exception when reporting failure. svghmi
Thu, 18 Jun 2020 14:18:40 +0200 Edouard Tisserant merged svghmi
Thu, 18 Jun 2020 14:16:19 +0200 Edouard Tisserant SVGHMI: Fix bug introduced when merging default svghmi
Thu, 18 Jun 2020 14:15:43 +0200 Edouard Tisserant SVGHMI: Add use of Python PLC Globals it test svghmi
Thu, 18 Jun 2020 11:00:26 +0200 Edouard Tisserant Merge default changes in SVGHMI svghmi
Thu, 18 Jun 2020 10:42:08 +0200 Edouard Tisserant Merge default changes in SVGHMI svghmi
Thu, 04 Jun 2020 11:14:21 +0200 Edouard Tisserant SVGHMI: add "unsubscribable" property to widgets in order to generalize what already happens for jump buttons. svghmi
Wed, 03 Jun 2020 13:31:55 +0200 Edouard Tisserant merge svghmi
Fri, 29 May 2020 09:46:07 +0200 dgaberscek Merge svghmi
Tue, 26 May 2020 10:59:01 +0200 dgaberscek SVGHMI: Added widget toggleButton. svghmi
Tue, 26 May 2020 10:53:02 +0200 dgaberscek SVGHMI: Changed widget button handler to element attribute. svghmi
Tue, 02 Jun 2020 13:37:34 +0200 Edouard Tisserant Runtime: create .md5 file at the end of all transfered files being written to disk, so that it presence indicates completeness of transfer. svghmi
Tue, 02 Jun 2020 11:34:50 +0200 Edouard Tisserant IDE: Main toolbar : Show repair button also in stop mode. Move repair button after disconnect button. svghmi
Mon, 01 Jun 2020 14:47:31 +0200 Edouard Tisserant Runtime: fsync() files when transfering them, to prebent data loss when poweroff soon after programming. Fixed variable naming as a side effect. svghmi
Thu, 28 May 2020 11:38:09 +0200 Edouard Tisserant PLCObject : reorganize code in StartPLC(), add a PreStartPLC() empty method, to be overloaded by runtime extensions. svghmi
Tue, 26 May 2020 09:58:20 +0200 Edouard Tisserant 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. svghmi
Thu, 21 May 2020 11:29:45 +0200 Edouard Tisserant SVGHMI: stop using eval in change_hmi_value, apparently slowly leaking memory. svghmi
Thu, 14 May 2020 17:49:20 +0200 Edouard Tisserant 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. svghmi
Thu, 14 May 2020 17:48:58 +0200 Edouard Tisserant 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. svghmi
Thu, 14 May 2020 17:48:15 +0200 Edouard Tisserant SVGHMI: Applies clone unlinking to widget themselves, not only to clones inside widgets. svghmi
Thu, 14 May 2020 09:24:09 +0200 Edouard Tisserant merge svghmi
Wed, 13 May 2020 14:48:52 +0200 Edouard Tisserant 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. svghmi
Wed, 13 May 2020 14:47:17 +0200 Edouard Tisserant Added FatalError call to Libraries code gen, so that they can emit messages addressed like config tree nodes do. svghmi
Wed, 13 May 2020 22:25:22 +0200 Edouard Tisserant SVGHMI: more Widget properties declared ES6 style. svghmi
Wed, 13 May 2020 22:22:13 +0200 Edouard Tisserant SVGHMI: Switch widget now use class declaration svghmi
Wed, 13 May 2020 18:50:07 +0200 Edouard Tisserant SVGHMI: Update Button widget to class declaration, and add a button widget in tests/svghmi. svghmi
Wed, 13 May 2020 18:47:09 +0200 Edouard Tisserant SVGHMI: explicit handling of undefined maximum widget update frequency svghmi
Wed, 13 May 2020 18:27:26 +0200 Edouard Tisserant SVGHMI: removed dead code svghmi
Wed, 13 May 2020 18:26:38 +0200 Edouard Tisserant SVGHMI: Back button updated to class style svghmi
Mon, 11 May 2020 11:33:00 +0200 Edouard Tisserant merge svghmi
Mon, 11 May 2020 11:10:38 +0200 Edouard Tisserant DEBUG: (IDE side) fixed wrong implementation of anti-rapid-fire leading to systematic delay in subscribing svghmi
Sun, 10 May 2020 23:40:43 +0200 Edouard Tisserant SVGHMI: Exclude non-widget HMI:* labeled elements from hmi_widget. Namely : HMI:Page HMI:Lang and HMI:List have been excluded. svghmi
Sun, 10 May 2020 17:01:09 +0200 Edouard Tisserant SVGHMI: clean up dead code, update generated xslt. svghmi
Sun, 10 May 2020 16:36:41 +0200 Edouard Tisserant SVGHMI: apply per class overloading of sub/unsub to Jump widget svghmi
Sun, 10 May 2020 16:36:09 +0200 Edouard Tisserant SVGHMI: apply per class overloading of sub/unsub to ForEach widget svghmi
Sun, 10 May 2020 16:34:44 +0200 Edouard Tisserant SVGHMI: Widget's specific sub/unsub traits are now wxpressed in widget's class. svghmi
Sun, 10 May 2020 16:32:19 +0200 Edouard Tisserant SVGHMI: Parameters common to all widget constructors now passed as ordered parameters. svghmi
Fri, 08 May 2020 16:51:43 +0200 Edouard Tisserant 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. svghmi
Fri, 08 May 2020 16:47:52 +0200 Edouard Tisserant SVGHMI: Add an exslt function to collect used widget types, in order to only include necessary JS definitions in furure changes. svghmi
Fri, 08 May 2020 16:44:20 +0200 Edouard Tisserant SVGHMI: Systematically output local name as /* comment */ when emiting content. svghmi
Fri, 24 Apr 2020 10:03:40 +0200 Edouard Tisserant Merge svghmi
Fri, 24 Apr 2020 10:02:13 +0200 Edouard Tisserant SVGHMI: Fix flawed logic to place nodes in the HMI tree, leading to wrecked tree in some cases. svghmi
Wed, 22 Apr 2020 15:33:53 +0200 dgaberscek Added button and circular bar widgets. svghmi
Mon, 20 Apr 2020 16:19:31 +0200 Edouard Tisserant SVGHMI: added more meaningful namespaces to emit javascript code from. svghmi
Sun, 19 Apr 2020 22:44:41 +0200 Edouard Tisserant SVGHMI: moved JS code of foreach and jump widget in corresponding widget_*.ysl2. To be continued. svghmi
Sun, 19 Apr 2020 22:01:12 +0200 Edouard Tisserant SVGHMI: spread JS code from svghmi/scripts.ysl2 in other .ysl2 files, using dedicated preamble and epilogue namespaces svghmi
Sun, 19 Apr 2020 10:48:34 +0200 Edouard Tisserant SVGHMI: Introduced "emit" to simplify producing per-topic code and content from anywhere in code. Applied to debug output, next to JS. svghmi
Sat, 18 Apr 2020 14:06:41 +0200 Edouard Tisserant SVGHMI: Move reflective debug tags from "reflect" to "debug" namespace, preparing for per-purpose namespaces. svghmi
Sat, 18 Apr 2020 13:14:45 +0200 Edouard Tisserant SVGHMI: Added scripts.ysl2 svghmi
Sat, 18 Apr 2020 11:49:02 +0200 Edouard Tisserant SVGHMI: moving code wher it belongs, and reformulate some declarations for better readability. svghmi
Thu, 16 Apr 2020 10:21:25 +0200 Edouard Tisserant SVGHMI: HMI:DropDown: more documentation. svghmi
Wed, 15 Apr 2020 14:29:19 +0200 Edouard Tisserant SVGHMI: Comments in HMI:DropDown source code svghmi
Tue, 14 Apr 2020 23:04:54 +0200 Edouard Tisserant SVGHMI: HMI:DropDown menu aligns to selected when opening svghmi
Tue, 14 Apr 2020 22:08:52 +0200 Edouard Tisserant SVGHMI: When clicking outside of opened HMI:DropDown box, close it. svghmi
Tue, 14 Apr 2020 19:22:18 +0200 Edouard Tisserant SVGHMI: Fix HMI:DropDown flicker on close. svghmi
Tue, 14 Apr 2020 17:31:45 +0200 Edouard Tisserant SVGHMI: HMI:DropDown now temporarily takes content from widget's arguments, until HMI:List is implemented. svghmi
Tue, 14 Apr 2020 17:17:35 +0200 Edouard Tisserant SVGHMI: Connect HMI:DropDown to value in HMI Tree, in svghmi test as well. svghmi
Tue, 14 Apr 2020 17:16:25 +0200 Edouard Tisserant SVGHMI: fix probable problem in HMI:Input, where value could be applied to wrong index if used in relative page. svghmi
Tue, 14 Apr 2020 17:15:02 +0200 Edouard Tisserant SVGHMI: HMI:DropDown element is brought in front when opened, so that it isn't occulted by other widgets at the same level. svghmi
Tue, 14 Apr 2020 17:13:12 +0200 Edouard Tisserant SVGHMI: HMI:DropDown now catches all clicks when open svghmi
Tue, 14 Apr 2020 12:07:08 +0200 Edouard Tisserant SVGHMI: Add button element to HMI:DropDown, also fix problem with computed box margins. svghmi
Tue, 14 Apr 2020 10:56:45 +0200 Edouard Tisserant SVGHMI: HMI:DropDown now scrolls forward and backward svghmi
Mon, 13 Apr 2020 18:28:22 +0200 Edouard Tisserant SVGHMI: progress on HMI:DropDown - now selects some value on click, and close svghmi
Sun, 12 Apr 2020 21:43:42 +0200 Edouard Tisserant SVGHMI: HMI:DropDown work in progress, intermediate commit. Now menu's rectangle grows up to viewport borders. svghmi
Thu, 09 Apr 2020 09:52:34 +0200 Edouard Tisserant SVGHMI: intermediate commit while working on dropdown widget. svghmi
Tue, 07 Apr 2020 10:01:23 +0200 Edouard Tisserant SVGHMI: HMI is not speculating on PLC variable update anymore when sending new variable value. svghmi
Sat, 04 Apr 2020 22:32:54 +0200 Edouard Tisserant SVGHMI: finished shift and capslock support n keypad widget. Added a helper in widgets_common to collect subelements likle active/inactive/disabled... svghmi
Sat, 04 Apr 2020 17:47:16 +0200 Edouard Tisserant SVGHMI: fixed keypad JS regarding shift/capslock and other details svghmi
Sat, 04 Apr 2020 09:41:32 +0200 Edouard Tisserant Fix unmatched "Courier" font for monospace fonts on latest ubuntu 20.04. Selected "FreeMono" instead, present since at least 18.04 svghmi
Fri, 03 Apr 2020 14:37:41 +0200 Edouard Tisserant SVGHMI: Keypad working for HMI_STRING, still Shift/CapsLock not finished. svghmi
Fri, 03 Apr 2020 09:52:57 +0200 Edouard Tisserant SVGHMI: fix keyboard not showing svghmi
Fri, 03 Apr 2020 08:30:00 +0200 Edouard Tisserant SVGHMI: Added keypads to svghmi test's SVG file svghmi
Fri, 03 Apr 2020 08:13:47 +0200 Edouard Tisserant merge svghmi
Thu, 02 Apr 2020 15:18:15 +0200 Edouard Tisserant SVGHMI: Keypad: added code to re-attach keypad when starting edit. svghmi
Thu, 02 Apr 2020 14:04:21 +0200 Edouard Tisserant SVGHMI: removed debug code svghmi
Thu, 02 Apr 2020 14:03:38 +0200 Edouard Tisserant SVGHMI: More infrastructure for editing values with a keypad. svghmi
Thu, 02 Apr 2020 09:38:53 +0200 Edouard Tisserant SVGHMI: Widget input buttons should be clickable through svg:use (onclick attribute instead of addEventListener) svghmi
Wed, 01 Apr 2020 18:10:45 +0200 Edouard Tisserant SVGHMI: moved dead code to where it belongs svghmi
Wed, 01 Apr 2020 14:42:50 +0200 Edouard Tisserant SVGHMI: empty widget_keypad.ysl2, WIP svghmi
Tue, 31 Mar 2020 13:20:15 +0200 Edouard Tisserant SVGHMI: HMI:Switch now accepts boolean values 'true' and 'false' svghmi
Mon, 30 Mar 2020 14:26:42 +0200 Edouard Tisserant 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. svghmi
Mon, 30 Mar 2020 11:06:12 +0200 Edouard Tisserant SVGHMI: prevent man-made memory leak by limiting back button history items count to 42 svghmi
Sun, 29 Mar 2020 16:11:21 +0200 Edouard Tisserant SVGHMI: collect debug data through xslt reflectivity instead of yml2/python trick svghmi
Fri, 27 Mar 2020 14:25:24 +0100 Edouard Tisserant SVGHMI: Jump widget can now display as active or inactive, if corresponfing "active" and "inactive labeled elements are provided. svghmi
Thu, 26 Mar 2020 14:21:52 +0100 Edouard Tisserant SVGHMI: added Back widget. svghmi
Thu, 26 Mar 2020 13:33:20 +0100 Edouard Tisserant SVGHMI: Jump widget now make errors if path given for relative jump doesn't match target page reference path class. svghmi
Thu, 26 Mar 2020 11:17:34 +0100 Edouard Tisserant SVGHMI: Check that explicit relative page jump path is consistant with destination page reference path. svghmi
Wed, 25 Mar 2020 14:09:15 +0100 Edouard Tisserant SVGHMI: ForEach Widget now has a better wrap-around when scrolling : hit the boundary systematically before wrapping svghmi
Wed, 25 Mar 2020 13:56:04 +0100 Edouard Tisserant SVGHMI: Alow relative relative Jump. (i.e, relative jump from a foreach widget) svghmi
Wed, 25 Mar 2020 13:36:04 +0100 Edouard Tisserant SVGHMI: Generalize applying cache to widgets, be it from page or ForEach widgets. Now ForEach widget buttons work as expected. svghmi
Tue, 24 Mar 2020 23:07:54 +0100 Edouard Tisserant SVGHMI: Widget ForEach buttons now call corresponding methods. svghmi
Tue, 24 Mar 2020 14:03:19 +0100 Edouard Tisserant SVGHMI: ForEach now has working (un)subscribe. Fixed PageSwitch that wasn't behaving when jumping to current page with another path. svghmi
Mon, 23 Mar 2020 21:44:28 +0100 Edouard Tisserant 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 svghmi
Mon, 23 Mar 2020 15:13:36 +0100 Edouard Tisserant 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. svghmi
Mon, 23 Mar 2020 10:16:38 +0100 Edouard Tisserant SVGHMI: ForEach knows its own widgets svghmi
Fri, 20 Mar 2020 10:46:15 +0100 Edouard Tisserant SVGHMI: add widget_foreach.ysl2 svghmi
Fri, 20 Mar 2020 10:00:59 +0100 Edouard Tisserant SVGHMI: make root HMI tree node a HMI_NODE, droped HMI_ROOT node type svghmi
Thu, 19 Mar 2020 19:23:56 +0100 Edouard Tisserant SVGHMI: reworked widget (un)subscription now a method of widgect object, allowing special subscription methods svghmi
Thu, 19 Mar 2020 11:32:20 +0100 Edouard Tisserant SVGHMI: Exclude (again) sub-widgets of forEach widget from page-switch managed widget. svghmi
Thu, 19 Mar 2020 09:57:26 +0100 Edouard Tisserant SVGHMI: cosmetic changes svghmi
Thu, 19 Mar 2020 09:31:07 +0100 Edouard Tisserant SVGHMI: Simplification and optimization. func:parselabel becomes a template. svghmi
Wed, 18 Mar 2020 12:06:50 +0100 Edouard Tisserant SVGHMI: intermediate untested state. Excluded ForEach widget from pages handled widgets. svghmi
Wed, 18 Mar 2020 09:37:26 +0100 Edouard Tisserant SVGHMI: update Makefile to pick all changes to any dependency svghmi
Wed, 18 Mar 2020 09:16:14 +0100 Edouard Tisserant SVGHMI: created widget_*.ysl2. Renamed widget_common in widgets_common, so that it doesn't match globing. svghmi
Tue, 17 Mar 2020 14:11:54 +0100 Edouard Tisserant SVGHMI: moving comments svghmi
Tue, 17 Mar 2020 14:01:37 +0100 Edouard Tisserant SVGHMI: added widget_common.ysl2 svghmi
Tue, 17 Mar 2020 13:43:19 +0100 Edouard Tisserant SVGHMI: More readable debug output gen code svghmi
Tue, 17 Mar 2020 13:34:07 +0100 Edouard Tisserant SVGHMI: Cosmetic changes svghmi
Tue, 17 Mar 2020 13:16:01 +0100 Edouard Tisserant SVGHMI: added inline_svg.ysl2 svghmi
Tue, 17 Mar 2020 11:24:07 +0100 Edouard Tisserant SVGHMI: detachable_elements.ysl2 becomes detachable_pages.ysl2, and includes logic to process pages elements. Other minor code moves. svghmi
Tue, 17 Mar 2020 10:34:26 +0100 Edouard Tisserant SVGHMI: moved debug code svghmi
Tue, 17 Mar 2020 09:29:04 +0100 Edouard Tisserant SVGHMI: created detachable_elements.ysl2 svghmi
Tue, 17 Mar 2020 08:00:33 +0100 Edouard Tisserant SVGHMI: more debug code moved to hmi_tree.ysl2 svghmi
Tue, 17 Mar 2020 07:39:50 +0100 Edouard Tisserant SVGHMI : create hmi_tree.ysl2, rename bbox_intersect.ysl2 into geometry.ysl2 and move more code into. Add per included ysl2 file debug output. svghmi
Mon, 16 Mar 2020 18:27:49 +0100 Edouard Tisserant SVGHMI: created bbox_intersect.ysl2 svghmi
Mon, 16 Mar 2020 17:09:23 +0100 Edouard Tisserant 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. svghmi
Fri, 13 Mar 2020 21:42:40 +0100 Edouard Tisserant SVGHMI: relative pages and page jumps svghmi
Fri, 13 Mar 2020 10:36:13 +0100 Edouard Tisserant 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. svghmi
Thu, 12 Mar 2020 13:16:18 +0100 Edouard Tisserant SVGHMI: significant whitespace changes svghmi
Thu, 12 Mar 2020 13:15:54 +0100 Edouard Tisserant SVGHMI: unsignificant changes or changes in generated code svghmi
Thu, 12 Mar 2020 13:14:38 +0100 Edouard Tisserant 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. svghmi
Thu, 12 Mar 2020 09:33:20 +0100 Edouard Tisserant SVGHMI: cosmetic code moving svghmi
Tue, 10 Mar 2020 13:57:29 +0100 Edouard Tisserant 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. svghmi
Mon, 09 Mar 2020 13:43:34 +0100 Edouard Tisserant SVGHMI: fix wrong updates of HMI variables on each change, especially when not subscribed. svghmi
Mon, 09 Mar 2020 13:40:45 +0100 Edouard Tisserant SVGHMI: whitespaces svghmi
Fri, 06 Mar 2020 14:43:03 +0100 Edouard Tisserant SVGHMI: fixed repeated error when Input widget is missing 'value' element svghmi
Fri, 06 Mar 2020 14:42:08 +0100 Edouard Tisserant SVGHMI: more decoupling in between UI related and the rest of JS code, still in the aim of enhancing robustness under heavy load. svghmi
Fri, 06 Mar 2020 09:35:08 +0100 Edouard Tisserant SVGHMI: use requestAnimationFrame to delegate rendering of updates from network. Should help prevent browser collapse leading to watchdog in case of overload. svghmi
Thu, 05 Mar 2020 13:54:29 +0100 Edouard Tisserant SVGHMI: Fix disapearing elements in case of nested detachable elements. svghmi
Thu, 05 Mar 2020 10:23:03 +0100 Edouard Tisserant SVGHMI: Meter widget accepts 2 arguments : min and max, taken in account when min or max text element is missing svghmi
Wed, 04 Mar 2020 20:02:15 +0100 Edouard Tisserant 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. svghmi
Wed, 04 Mar 2020 16:46:35 +0100 Edouard Tisserant SVGHMI: more whitespace fixes svghmi
Wed, 04 Mar 2020 16:46:03 +0100 Edouard Tisserant SVGHMI: unlink clones (i.e. deep copy elements refered by svg:use) inside widget. svghmi
Wed, 04 Mar 2020 09:31:53 +0100 Edouard Tisserant SVGHMI: whitespaces and comments svghmi
Tue, 03 Mar 2020 16:29:22 +0100 Edouard Tisserant SVGHMI: completely fixed indentation of generated widget description. Lets try to keep it as-is until we can use yslt indentation. svghmi
Tue, 03 Mar 2020 10:58:00 +0100 Edouard Tisserant SVGHMI: re-indent generated JS svghmi
Mon, 02 Mar 2020 16:30:29 +0100 Edouard Tisserant SVGHMI: detach/re-attach elements required by pages on page switch svghmi
Mon, 02 Mar 2020 16:25:35 +0100 Edouard Tisserant SVGHMI: re-indenting svghmi
Mon, 02 Mar 2020 14:43:21 +0100 Edouard Tisserant SVGHMI: declares pages detachable requirements as an object, to find more efficiently common requirements svghmi
Mon, 02 Mar 2020 10:29:41 +0100 Edouard Tisserant SVGHMI: fix some JS + add generation of detachable elements, to be continued svghmi
Fri, 28 Feb 2020 22:54:07 +0100 Edouard Tisserant SVGHMI: now compute discardable elements first so that we can do better grouping of required elements when sumarizing. svghmi
Fri, 28 Feb 2020 17:52:35 +0100 Edouard Tisserant SVGHMI : documentation for new geometry intersection computation code + little fixes... svghmi
Fri, 28 Feb 2020 16:09:21 +0100 Edouard Tisserant SVGHMI: detachable and discardable elements sets, Reworked geometric intersection, toward more accurate page content detection. svghmi
Thu, 27 Feb 2020 13:14:24 +0100 Edouard Tisserant 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. svghmi
Fri, 21 Feb 2020 16:22:44 +0100 Edouard Tisserant 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. svghmi
Fri, 21 Feb 2020 16:18:53 +0100 Edouard Tisserant SVGHMI: optimize browser work by hiding (display:none) pages that are not displayed. svghmi
Fri, 21 Feb 2020 16:15:33 +0100 Edouard Tisserant SVGHMI: Better and less verbose SVG namespace handling in XSLT transform svghmi
Mon, 17 Feb 2020 13:57:44 +0100 Edouard Tisserant SVGHMI: Added mostly untested switch widget svghmi
Fri, 14 Feb 2020 21:41:13 +0100 Edouard Tisserant 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. svghmi
Fri, 14 Feb 2020 10:29:10 +0100 Edouard Tisserant SVGHMI: ensure that coordinate in CSV file generated by inkscape are both matching svg default unit and in default reference frame svghmi
Thu, 13 Feb 2020 09:43:35 +0100 Edouard Tisserant SVGHMI : still behave, even if important things are missing in SVG widget definitions (ex: needle missing for Meter widget) svghmi
Thu, 13 Feb 2020 09:41:43 +0100 Edouard Tisserant SVGHMI : fix watchdog exception when timeout null svghmi
Tue, 11 Feb 2020 13:56:48 +0100 Edouard Tisserant SVGHMI: be a bit more tolerant with missing HMI paths or missing elements in widgets : continue build (with warning) and fail silently at runtime. svghmi
Thu, 30 Jan 2020 14:33:06 +0100 Edouard Tisserant SVGHMI : fixed bug happening when some SVG ids are containing dashes svghmi
Thu, 23 Jan 2020 13:46:05 +0100 Edouard Tisserant SVGHMI : wait for initial timeout after watchdog is triggered, since it generaly induces HMI restart svghmi
Thu, 23 Jan 2020 11:22:09 +0100 Edouard Tisserant SVGHMI : watchdog is now taking an initial and interval duration as CTN fields. svghmi
Tue, 21 Jan 2020 13:55:03 +0100 Edouard Tisserant SVGHMI : avoid caching of xhtml file by forcing cache-control header in http response. svghmi
Fri, 17 Jan 2020 16:25:45 +0100 Edouard Tisserant SVGHMI : HMI_STRING now also supported from HMI to PLC svghmi
Wed, 15 Jan 2020 11:13:39 +0100 Edouard Tisserant SVGHMI : cosmetic svghmi
Wed, 15 Jan 2020 09:35:29 +0100 Edouard Tisserant SVGHMI non significant fixes svghmi
Tue, 14 Jan 2020 11:09:26 +0100 Edouard Tisserant SVGHMI : support for HMI_STRING and HMI_BOOL svghmi
Tue, 14 Jan 2020 11:04:18 +0100 Edouard Tisserant plc_debug.c/var_acces.c : whitespace cleanup and other cosmetic changes svghmi
Mon, 13 Jan 2020 15:15:01 +0100 Edouard Tisserant SVGHMI : Added python fomating {port} and {name} to commands so that command can build target URL svghmi
Fri, 10 Jan 2020 17:00:01 +0100 Edouard Tisserant SVGHMI : add on Start, Stop and Watchdog command fields to configuration svghmi
Fri, 10 Jan 2020 13:15:07 +0100 Edouard Tisserant 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 svghmi
Wed, 18 Dec 2019 13:31:22 +0100 Edouard Tisserant 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. svghmi
Mon, 09 Dec 2019 14:53:42 +0100 Edouard Tisserant SVGHMI : had to move the problem of wkaing up python thread from plc thread to platform specific code. svghmi
Mon, 09 Dec 2019 10:43:54 +0100 Edouard Tisserant SVGHMI: change collect/send thread looping condition to fix infinite loop in some cases svghmi
Tue, 03 Dec 2019 09:46:12 +0100 Edouard Tisserant SVGHMI: re-implemented tree view with classic wxTreeCtl svghmi
Tue, 03 Dec 2019 09:44:48 +0100 Edouard Tisserant Non significant changes, whitespaces, etc. svghmi
Fri, 15 Nov 2019 10:34:14 +0100 Edouard Tisserant SVGHMI: Added simple HMI Tree View. svghmi
Thu, 14 Nov 2019 08:46:32 +0100 Edouard Tisserant SVGHMI: add a class attribute to HMI Tree nodes, set when using HMI_NODE svghmi
Wed, 13 Nov 2019 11:22:53 +0100 Edouard Tisserant SVGHMI: HMI_LABEL and HMI_CLASS become HMI_NODE. svghmi
Wed, 13 Nov 2019 11:21:04 +0100 Edouard Tisserant Add FatalError() method to ConfigTreeNode. svghmi
Thu, 07 Nov 2019 16:40:48 +0100 Edouard Tisserant SVGHMI: various fixes to make SVGHMI behave on more versions of twisted and GCC. svghmi
Wed, 30 Oct 2019 15:17:05 +0100 Edouard Tisserant 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. svghmi
Tue, 29 Oct 2019 11:18:58 +0100 Edouard Tisserant SVGHMI: various insignificant code moves, commenting and typos fixes. svghmi
Tue, 29 Oct 2019 09:10:10 +0100 Edouard Tisserant SVGHMI : fancier second page in tests/svghmi svghmi
Mon, 28 Oct 2019 19:52:43 +0100 Edouard Tisserant 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. svghmi
Mon, 28 Oct 2019 10:30:20 +0100 Edouard Tisserant SVGHMI - added simple Meter widget. svghmi
Sun, 27 Oct 2019 22:28:51 +0100 Edouard Tisserant 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 svghmi
Sun, 27 Oct 2019 21:38:10 +0100 Edouard Tisserant SVGHMI: fixed HMI->PLC dataflow : not updates as expected, and not initialized properly after subscribe. svghmi
Thu, 24 Oct 2019 11:20:04 +0200 Edouard Tisserant Fixed one more sequel of 5f79b194fa63 'SVGHMI: filter out temporary variables created while generating ST code out of FBD.' svghmi
Thu, 24 Oct 2019 10:02:07 +0200 Edouard Tisserant SVGHMI: Added relative changes of HMI value from widgets. svghmi
Tue, 22 Oct 2019 22:58:55 +0200 Edouard Tisserant SVGHMI - Fixed svghmi.{c,js} about HMI -> PLC data unpack. svghmi
Tue, 22 Oct 2019 17:06:31 +0200 Edouard Tisserant 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. svghmi
Sat, 19 Oct 2019 01:23:30 +0200 Edouard Tisserant SVGHMI: dispatching data to minimalist "Display" text widget. svghmi
Thu, 17 Oct 2019 15:48:09 +0200 Edouard Tisserant 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. svghmi
Tue, 15 Oct 2019 17:14:48 +0200 Edouard Tisserant SVGHMI : many details about communication implemented in JS, with side effects. svghmi
Fri, 11 Oct 2019 12:03:14 +0200 Edouard Tisserant 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. svghmi
Thu, 10 Oct 2019 10:03:47 +0200 Edouard Tisserant SVGHMI fix logic for page membership detection svghmi
Thu, 10 Oct 2019 09:54:44 +0200 Edouard Tisserant SVGHMI compute default page svghmi
Wed, 09 Oct 2019 11:15:14 +0200 Edouard Tisserant SVGHMI: deduce pages content out of geometry (elements contained in page bounding box are in) svghmi
Wed, 09 Oct 2019 09:04:35 +0200 Edouard Tisserant SVGHMI: use func:function for parsing labels so that it can be used in predicates svghmi
Tue, 08 Oct 2019 13:27:00 +0200 Edouard Tisserant SVGHMI: moved/fixed some templates, avoided namespace problems, added parsing of HMI:* inkscape labels svghmi
Mon, 07 Oct 2019 12:02:45 +0200 Edouard Tisserant SVGHMI: now generating JS object describing widgets and pointing to SVG elements svghmi
Sat, 05 Oct 2019 09:45:58 +0200 Edouard Tisserant SVGHI: compute hmitree variables ordered index in xslt svghmi
Wed, 02 Oct 2019 11:31:02 +0200 Edouard Tisserant SVGHMI: now built. svghmi
Mon, 30 Sep 2019 13:26:11 +0200 Edouard Tisserant SVGHMI: Work in progress. C side mostly implemented, neither built nor tested. svghmi
Fri, 27 Sep 2019 06:54:35 +0200 Edouard Tisserant SVGHMI: More strict formating of active HMI labels : @ separator only used for paths svghmi
Thu, 26 Sep 2019 09:33:49 +0200 Edouard Tisserant SVGHMI: new test svg to drive next implementation svghmi
Wed, 25 Sep 2019 08:53:27 +0200 Edouard Tisserant Non significant changes in generated xslt, side effect of changes in yslt_noindent.yml2 svghmi
Tue, 24 Sep 2019 11:58:31 +0200 Edouard Tisserant Merge default in SVGHMI branch svghmi
Fri, 20 Sep 2019 13:38:58 +0200 Edouard Tisserant SVGHMI: Starting to define JS side more in details. svghmi
Thu, 19 Sep 2019 15:32:36 +0200 Edouard Tisserant SVGHMI: added transformation of code given in inkscape's description fields into javascript functions svghmi
Thu, 19 Sep 2019 10:41:39 +0200 Edouard Tisserant SVGHMI: gui.svg -> svghmi.svg svghmi
Thu, 19 Sep 2019 09:01:49 +0200 Edouard Tisserant SVGHMI: moved static JS code to a separate file included at xhtml generation time svghmi
Wed, 18 Sep 2019 11:09:35 +0200 Edouard Tisserant 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. svghmi
Wed, 18 Sep 2019 11:03:56 +0200 Edouard Tisserant PLCobject: Call "stop" and "cleanup" methods from python runtime files in reverse order compared to "init" and "start". svghmi
Mon, 16 Sep 2019 13:45:04 +0200 Edouard Tisserant SVGHMI: WIP for python<->C data exchange : message from browser hit the C side. svghmi
Mon, 16 Sep 2019 11:44:20 +0200 Edouard Tisserant SVGHMI: WIP for python<->C data exchange svghmi
Mon, 16 Sep 2019 10:54:15 +0200 Edouard Tisserant SVGHMI: WIP for python<->C data exchange svghmi
Thu, 12 Sep 2019 12:56:47 +0200 Edouard Tisserant SVGHMI: WIP for python<->C data exchange svghmi
Thu, 12 Sep 2019 12:55:32 +0200 Edouard Tisserant SVGHMI: single session for now svghmi
Thu, 12 Sep 2019 12:54:36 +0200 Edouard Tisserant SVGHMI: few fixes on serving svghmi
Wed, 11 Sep 2019 12:24:30 +0200 Edouard Tisserant WIP on svghmi, now builds and runs. HTTP serving + WS transport ready, missing actual data to transmit and thread to collect it. svghmi
Wed, 11 Sep 2019 11:20:11 +0200 Edouard Tisserant Non significant changes to mute GCC warnings about unused variables. svghmi
Thu, 05 Sep 2019 08:35:33 +0200 Edouard Tisserant 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... svghmi
Tue, 03 Sep 2019 12:17:33 +0200 Edouard Tisserant SVGHMI: Intermediate state while working on svghmi.c svghmi
Mon, 26 Aug 2019 08:54:02 +0200 Edouard Tisserant svghmi.c : deduplicated variable access code borrowed from plc_debug.c. Added targets/var_access.c. svghmi
Fri, 23 Aug 2019 14:01:31 +0200 Edouard Tisserant SVGHMI: Added iterators in svghmi.c copy-pasted form plc_debug.c svghmi
Fri, 23 Aug 2019 13:01:37 +0200 Edouard Tisserant SVGHMI: svghmi.c now has mutex, iterator, and read/write buffer. svghmi
Thu, 22 Aug 2019 14:58:53 +0200 Edouard Tisserant SVGHMI: draft for svghmi.c. It has all PLC variables pointed in HMI tree in an array. svghmi
Tue, 20 Aug 2019 10:32:34 +0200 Edouard Tisserant Pass HMITree to SVG transform. It seems it could really help to reduce JS tree binding logic in the end. svghmi
Tue, 20 Aug 2019 10:30:59 +0200 Edouard Tisserant Add special nodes at HMI Tree root, fix code to handle special node (no path). svghmi
Tue, 20 Aug 2019 10:08:11 +0200 Edouard Tisserant Swap CTN code gen and Libraries code gen, because SVGHMI use both, and need the library part to produce hmitree before CTN part. svghmi
Tue, 20 Aug 2019 10:01:18 +0200 Edouard Tisserant yslt_noindent : Avoid YSLT's indent logic to interfere when using linequote. svghmi
Wed, 14 Aug 2019 13:06:03 +0200 Edouard Tisserant SVGHMI: make a reasonably basic test svghmi
Wed, 14 Aug 2019 11:05:17 +0200 Edouard Tisserant SVGHMI: filter out temporary variables created while generating ST code out of FBD. svghmi
Tue, 13 Aug 2019 14:04:13 +0200 Edouard Tisserant SVGHMI: added deduction of HMI tree from list of HMI_* instances. svghmi
Mon, 12 Aug 2019 13:09:55 +0200 Edouard Tisserant SVGHMI: added extraction of SVG bounding boxes, obtained from "inkscape -S", and passed to XSLT transform as variable. svghmi
Mon, 12 Aug 2019 13:06:11 +0200 Edouard Tisserant Allow using docutil.get_inkscape_path() on Linux also. svghmi
Fri, 09 Aug 2019 12:12:24 +0200 Edouard Tisserant SVGHMI: little fixes to make the build go through svghmi
Fri, 09 Aug 2019 12:11:31 +0200 Edouard Tisserant SVGHMI: Added XSLT transformation, Makefile to get XSLT from ysl2 (copy of plcopen/Makefile) and a minimal stylesheet to start with. svghmi
Fri, 09 Aug 2019 12:07:33 +0200 Edouard Tisserant Moved XSLT model query python code so that XSLT part can be reused for other transformations (i.e. in SVGHMI) svghmi
Thu, 08 Aug 2019 15:56:17 +0200 Edouard Tisserant Complete SVGUI test minimal skeleton so that it builds. svghmi
Wed, 07 Aug 2019 14:18:22 +0200 Edouard Tisserant intermediate commit, work in progress svghmi
Thu, 18 Jul 2019 14:09:33 +0200 Edouard Tisserant Use a POU Library's Generate_C to collect all variables in SVGHMI. svghmi
Wed, 17 Jul 2019 09:44:44 +0200 Edouard Tisserant merged svghmi
Wed, 17 Jul 2019 09:44:11 +0200 Edouard Tisserant Enable svghmi plugin in features, and small fixes to skeleton. svghmi
Mon, 15 Jul 2019 09:05:00 +0200 Edouard Tisserant Merged default in svghmi svghmi
Fri, 12 Jul 2019 11:58:22 +0200 Edouard Tisserant Skeleton for svghmi extension svghmi
Wed, 30 Jun 2021 15:44:32 +0200 Edouard Tisserant IDE: Allow POU Libraries to inject PLC Configurations globals during build.
Wed, 30 Jun 2021 16:46:14 +0300 Ivan Tyagov WIP: initial setup.
Wed, 16 Jun 2021 12:15:02 +0200 Edouard Tisserant 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 +0200 Edouard Tisserant 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 +0200 Edouard Tisserant IDE: Log: Prevent crash when display progress on empty log.
Thu, 10 Jun 2021 09:40:05 +0200 Edouard Tisserant Copy description when DnD variables from CodeFile CTN to POUs
Tue, 25 May 2021 15:05:38 +0200 Edouard Tisserant Runtime: Fix exception "Worker is disabled" when connecting while PLC runtime is starting.
Mon, 24 May 2021 14:33:54 +0200 Edouard Tisserant 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 +0200 Edouard Tisserant 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 +0200 Edouard Tisserant IDE: Add a shortcut to project "Clean" action : F9
Mon, 29 Mar 2021 15:46:02 +0200 Edouard Tisserant Fixed misuse of GridCellEditor in DurationCellEditor, potentially leading to crash on windows.
Tue, 23 Mar 2021 05:08:51 +0100 Edouard Tisserant Allow using spin() from ProcessLogger even with no logger given.
Wed, 10 Mar 2021 09:59:18 +0100 Edouard Tisserant 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.
Tue, 02 Mar 2021 10:11:45 +0100 Edouard Tisserant IDE: Fix logging of external process execution time so that it is visible on windows as well.
Tue, 02 Mar 2021 09:42:50 +0100 Edouard Tisserant 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 +0100 Edouard Tisserant IDE: Iec2CSettings: Log wasn't available in case of exception when launching iec2c.
Tue, 02 Mar 2021 09:25:55 +0100 Edouard Tisserant IDE: Log: Cosmetic changes, refactoring
Mon, 01 Mar 2021 15:45:13 +0100 Edouard Tisserant 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 +0100 Edouard Tisserant IDE: Fixed log console that was not updating line by line smoothly when building.
Fri, 09 Apr 2021 09:45:28 +0200 Edouard Tisserant merge
Tue, 02 Feb 2021 13:47:48 +0100 Tomaz Orac Merge
Thu, 28 Jan 2021 14:51:16 +0000 Mario de Sousa merge
Thu, 28 Jan 2021 14:50:26 +0000 Mario de Sousa 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 +0000 Mario de Sousa modbus plugin: add (user accessible) transaction counters for servers/slaves
Tue, 23 Feb 2021 16:16:12 +0100 Edouard Tisserant 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 +0100 Edouard Tisserant Merge
Fri, 25 Dec 2020 17:12:02 +0000 Mario de Sousa merge
Fri, 25 Dec 2020 17:11:38 +0000 Mario de Sousa modbus plugin: add/fix comments
Mon, 21 Dec 2020 22:35:07 +0000 Mario de Sousa merge
Mon, 21 Dec 2020 22:32:03 +0000 Mario de Sousa Modbus plugin: fix bug - map BOOL flag onto C u8 (was incorrectly mapped onto u16)
Mon, 21 Dec 2020 22:26:36 +0000 Mario de Sousa 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 +0000 Mario de Sousa Modbus plugin: provide user programs feedback on current connection status mapped onto a WORD located variable
Wed, 13 Jan 2021 10:28:09 +0100 Edouard Tisserant Removed harmful assert in ProcessLogger.
Tue, 22 Dec 2020 18:05:05 +0100 Edouard Tisserant Fix missing import, consequence of bad resolution of conflicting hg graft of f0a822ef9fa0 into d15a997859b1
Tue, 14 Jan 2020 11:04:18 +0100 Edouard Tisserant plc_debug.c/var_acces.c : whitespace cleanup and other cosmetic changes
Fri, 03 Jul 2020 14:02:04 +0200 Edouard Tisserant Prevent global python_poll blocks to be created when accidentally adding content to C-File OnChange column.
Mon, 11 May 2020 11:10:38 +0200 Edouard Tisserant DEBUG: (IDE side) fixed wrong implementation of anti-rapid-fire leading to systematic delay in subscribing
Tue, 11 Feb 2020 13:56:48 +0100 Edouard Tisserant XSLTransform.py: added get_error_log()
Mon, 31 Aug 2020 13:54:08 +0200 Edouard Tisserant 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 +0200 Edouard Tisserant docsvg.py : Better error message when inkscape is not installed.
Sat, 04 Apr 2020 09:41:32 +0200 Edouard Tisserant 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 +0200 Edouard Tisserant 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 +0100 Edouard Tisserant Runtime: change PLCObject 'BlobAsFile' method to allow customization by overriding
Mon, 21 Dec 2020 11:10:27 +0100 Edouard Tisserant WebInterface: better wording for wiping PLC content: "Repair"
Fri, 18 Dec 2020 11:50:28 +0100 Edouard Tisserant runtime: added restart/reset button in web settings. Accidentaly fixed web settings logging feature.
Thu, 10 Dec 2020 15:48:15 +0100 Edouard Tisserant Add a little test to see OnChange's .count .first .last in action
Thu, 10 Dec 2020 14:54:42 +0100 Edouard Tisserant Fixed "Onchange" object added in previous commit
Thu, 10 Dec 2020 11:37:27 +0100 Edouard Tisserant 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 +0100 Edouard Tisserant Project tree: avoid flickering and glitches in notebook when selecting some still not opened ConfigTreeNode
Wed, 18 Nov 2020 23:06:16 +0100 Edouard Tisserant 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 +0100 Edouard Tisserant py_ext: better handling of coma separated OnChange attribute for python safe global variables.
Mon, 02 Nov 2020 10:56:09 +0100 Edouard Tisserant 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 +0200 Edouard Tisserant PY_EXT: OnChange is now a coma separated list of callables. Updated tests/python accordingly.
Tue, 15 Sep 2020 13:57:06 +0200 Edouard Tisserant Modbus: fixed typo in ctype typing.
Fri, 11 Sep 2020 13:46:41 +0200 Edouard Tisserant MODBUS: Fix saving of websettings.
Thu, 10 Sep 2020 16:08:26 +0200 Edouard Tisserant 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 +0100 Mario de Sousa Modbus plugin: reformat code, and add comment.
Thu, 13 Aug 2020 18:42:02 +0100 Mario de Sousa Modbus plugin: fix runtime periodic timer (don't use POSIX timer)
Wed, 01 Jul 2020 10:36:20 +0200 Edouard Tisserant Modbus and Bacnet websettings : Rename variables and functions to avoid name collisions.
Mon, 29 Jun 2020 14:38:04 +0200 Edouard Tisserant 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 +0200 Edouard Tisserant Modbus: fix client timer invalid arguments.
Tue, 23 Jun 2020 13:50:21 +0200 Edouard Tisserant 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 +0200 Edouard Tisserant Runtime: Fix typo in PLCObject leading to exception when reporting failure.
Thu, 18 Jun 2020 14:18:16 +0200 Edouard Tisserant Py_ext: use non-derived type when generating C code for handling Python PLC globals.
Wed, 17 Jun 2020 14:32:55 +0200 Edouard Tisserant tests/python : add some STRING PLC Python globals with OnChange.
Wed, 17 Jun 2020 14:30:55 +0200 Edouard Tisserant 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 +0200 Tomaz Orac Merge
Tue, 16 Jun 2020 11:12:36 +0200 Edouard Tisserant Modbus: more comments to remember some necessary changes.
Tue, 16 Jun 2020 10:16:25 +0200 Edouard Tisserant Modbus/BACnet : add some comments so that we don't forget some pending optimization.
Tue, 16 Jun 2020 10:12:21 +0200 Edouard Tisserant Modbus: Delete stored configuration when identical to default configuration.
Mon, 15 Jun 2020 14:34:00 +0200 Edouard Tisserant BACnet: prevent saving configuration that is same as default, delete it if so.
Mon, 15 Jun 2020 14:29:41 +0200 Edouard Tisserant BACnet and Modbus : fix configuration storage directory
Mon, 15 Jun 2020 14:27:58 +0200 Edouard Tisserant 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 +0200 Edouard Tisserant Debug : when BEREMIZ_DEBUG file exist, display all commands issued in console.
Fri, 12 Jun 2020 14:39:32 +0200 Edouard Tisserant 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 +0200 Edouard Tisserant BACnet and Modbus: Remove additional loading and unloading, use the one already in place for extensions.
Sun, 07 Jun 2020 23:47:32 +0100 Mario de Sousa merge
Sun, 07 Jun 2020 23:46:16 +0100 Mario de Sousa Bacnet plugin web configuration: strip leading and trailing spaces for net. interface and port numb.
Sun, 07 Jun 2020 23:38:20 +0100 Mario de Sousa Modbus plugin, web interface: strip leading and trailing spaces from string parameters
Sun, 07 Jun 2020 22:32:24 +0100 Mario de Sousa Modbus plugin web interface: show the keyword "#ANY#" on TCP servers
Sun, 07 Jun 2020 19:33:32 +0100 Mario de Sousa Modbus plugin: fix bug: was checking user configuration against wrong limits
Sun, 07 Jun 2020 18:34:32 +0100 Mario de Sousa 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 +0100 Mario de Sousa Modbus plugin: check for duplicate "Configuration_Name"
Sat, 06 Jun 2020 08:51:32 +0100 Mario de Sousa add comment
Sat, 06 Jun 2020 08:50:36 +0100 Mario de Sousa add comment
Sat, 06 Jun 2020 08:43:41 +0100 Mario de Sousa merge
Sat, 06 Jun 2020 07:34:02 +0100 Mario de Sousa Modbus plugin web configuration: fix comments, and delete un-used code
Sat, 06 Jun 2020 07:24:42 +0100 Mario de Sousa Modbus plugin web configuration: use drop down choices for baud, parity and stop bits.
Fri, 05 Jun 2020 18:02:12 +0100 Mario de Sousa Modbus plugin web configuration: save node type and addr type to persistant storage
Mon, 01 Jun 2020 14:11:22 +0100 Mario de Sousa Add web extension: configure Modbus Server plugin parameters
Mon, 01 Jun 2020 08:54:26 +0100 Mario de Sousa Add web extension: configure Modbus plugin parameters (currently only supports Modbus clients)
Tue, 02 Jun 2020 13:37:34 +0200 Edouard Tisserant 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 +0200 Edouard Tisserant IDE: Main toolbar : Show repair button also in stop mode. Move repair button after disconnect button.
Mon, 01 Jun 2020 14:47:31 +0200 Edouard Tisserant 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 +0100 Mario de Sousa merge
Thu, 28 May 2020 11:15:22 +0100 Mario de Sousa BACnet plugin: Add web interface for online parameter configuration
Thu, 28 May 2020 11:01:42 +0100 Mario de Sousa modbus_plugin: generate nicer error message, instead of a traceback
Thu, 28 May 2020 10:54:48 +0100 Mario de Sousa Modbus plugin: Add "exec. req. flag" and "write on change" features
Thu, 28 May 2020 11:38:09 +0200 Edouard Tisserant PLCObject : reorganize code in StartPLC(), add a PreStartPLC() empty method, to be overloaded by runtime extensions.
Tue, 26 May 2020 09:58:20 +0200 Edouard Tisserant 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 +0100 Edouard Tisserant 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 +0100 Edouard Tisserant Etherlab : Merged 2014-2018 changes from jblee and others
Mon, 25 Nov 2019 08:26:55 +0100 Edouard Tisserant Close branch ethercat_from_kosmos ethercat_from_kosmos
Wed, 20 Nov 2019 16:57:15 +0100 Edouard Tisserant EtherCat master plugin : commit changes recovered from KOSMOS 2018 installer, unkown author(s). ethercat_from_kosmos
Wed, 13 Nov 2019 11:21:04 +0100 Edouard Tisserant Add FatalError() method to ConfigTreeNode.
Thu, 24 Oct 2019 11:20:04 +0200 Edouard Tisserant Fixed one more sequel of marking temporary variables created while generating ST code out of FBD
Wed, 09 Oct 2019 09:04:35 +0200 Edouard Tisserant Changed yslt_noindent.yml2 again
Wed, 25 Sep 2019 08:53:27 +0200 Edouard Tisserant Non significant changes in generated xslt, side effect of changes in yslt_noindent.yml2
Thu, 19 Sep 2019 15:32:36 +0200 Edouard Tisserant More customizations to yslt
Wed, 18 Sep 2019 11:03:56 +0200 Edouard Tisserant 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 +0200 Edouard Tisserant Non significant changes to mute GCC warnings about unused variables.
Thu, 05 Sep 2019 08:35:33 +0200 Edouard Tisserant 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 +0200 Edouard Tisserant 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 +0200 Edouard Tisserant 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 +0200 Edouard Tisserant yslt_noindent : Avoid YSLT's indent logic to interfere when using linequote.
Wed, 14 Aug 2019 11:05:17 +0200 Edouard Tisserant 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 +0200 Edouard Tisserant Allow using docutil.get_inkscape_path() on Linux also.
Fri, 09 Aug 2019 12:07:33 +0200 Edouard Tisserant Moved XSLT model query python code so that XSLT part can be reused for other transformations
Tue, 24 Sep 2019 11:55:59 +0200 Edouard Tisserant Fixed unitialized parameter in instances_path stylesheet, leading to
Sun, 14 Jul 2019 08:43:12 +0200 Edouard Tisserant Fixed code quality according to pep8 and pylint.
Sat, 13 Jul 2019 10:57:25 +0200 Edouard Tisserant 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 +0200 Edouard Tisserant PurgeBlobs was faulty, but it was never having anything to purge. Fixed.
Fri, 12 Jul 2019 11:51:47 +0200 Edouard Tisserant Fixed repetitive freezing of IDE when connection drops.
Wed, 10 Jul 2019 11:21:13 +0200 Edouard Tisserant Better error handling when blob transfer fail
Wed, 10 Jul 2019 10:43:14 +0200 Edouard Tisserant Removed dead code.
Tue, 09 Jul 2019 09:49:30 +0200 Edouard Tisserant Now expects 1 more columns in VARIABLE.CSV file generated by MatIEC. Pair with MatIEC commit 9cb7c8bf7dbc :
Tue, 18 Jun 2019 14:09:23 +0200 Edouard Tisserant 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 +0200 Edouard Tisserant Removed debug code and closed branch fix_fb_resize_wire_bug
Tue, 18 Jun 2019 13:58:45 +0200 Edouard Tisserant GraphicCommons.py : Wire.SetPoints() move filtering before computation of Start and End points to avoid setting them with arbitrary directions. fix_fb_resize_wire_bug
Tue, 18 Jun 2019 09:38:20 +0200 Edouard Tisserant GraphicCommons.py : rewrote Wire.Setpoints. fix_fb_resize_wire_bug
Thu, 13 Jun 2019 15:49:48 +0200 Edouard Tisserant '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 +0200 Edouard Tisserant Fix PLCObject's purge failing silently with extra_files.
Thu, 30 May 2019 11:53:13 +0200 Edouard Tisserant 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 +0200 Edouard Tisserant Fixed typo leading to some exception in some rare corner cases in worker.py
Tue, 23 Apr 2019 11:01:35 +0200 Edouard Tisserant Added missing 'path' field to WAMP addresses in URI editor.
Tue, 23 Apr 2019 11:00:37 +0200 Edouard Tisserant Fixed exception when using URI editor for PYRO addresses
Fri, 19 Apr 2019 13:11:42 +0200 Edouard Tisserant 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 +0200 Edouard Tisserant Add Repair() to WAMP interface
Thu, 18 Apr 2019 14:42:23 +0200 Edouard Tisserant Merged fix_PLC_runtime_shutdown
Thu, 18 Apr 2019 14:41:21 +0200 Edouard Tisserant Close fix_PLC_runtime_shutdown fix_PLC_runtime_shutdown
Thu, 18 Apr 2019 14:35:42 +0200 Edouard Tisserant Runtime worker : unblock the last waiting job and prevent any new job to wait when Main Worker is being shut down. fix_PLC_runtime_shutdown
Thu, 18 Apr 2019 14:34:22 +0200 Edouard Tisserant Add some "pipe to self" trick in Pyro server to accelerate runtime shutdown instead of waiting for arbitrary pyro timeout. fix_PLC_runtime_shutdown
Thu, 18 Apr 2019 14:32:43 +0200 Edouard Tisserant 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. fix_PLC_runtime_shutdown
Thu, 18 Apr 2019 14:29:55 +0200 Edouard Tisserant Enure that all threads are joined before trying to exit fix_PLC_runtime_shutdown
Wed, 17 Apr 2019 14:18:22 +0200 Edouard Tisserant Named runtime's threads to ease debugging
Wed, 17 Apr 2019 14:15:39 +0200 Edouard Tisserant Added Repair() png icon
Tue, 16 Apr 2019 14:45:41 +0200 Edouard Tisserant pep8 again...
Tue, 16 Apr 2019 13:32:32 +0200 Edouard Tisserant PEP8 fix : ./connectors/PYRO/PSK_Adapter.py:49:1: E302 expected 2 blank lines, found 1
Tue, 16 Apr 2019 11:26:52 +0200 Edouard Tisserant Added RepairPLC() to PLCObject. For now just calling PurgePLC and quit PLC runtime.
Tue, 16 Apr 2019 11:26:34 +0200 Edouard Tisserant 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 +0200 Edouard Tisserant 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 +0200 Edouard Tisserant 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 +0200 Edouard Tisserant force redraw only through EVT_PAINT event and use wxPaintDC, as described in wx documentation
Thu, 11 Apr 2019 11:26:47 +0200 Edouard Tisserant 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 +0200 Edouard Tisserant merged
Wed, 10 Apr 2019 14:11:52 +0200 Edouard Tisserant Nicer name than 'var_name' for variable auto-renaming in Modbus
Wed, 10 Apr 2019 21:36:12 +0200 Edouard Tisserant Allow starting IDE without sslpsk module installed. Fail when connecting to PYROS if sslpsk unavailable.
Tue, 09 Apr 2019 14:08:44 +0200 Edouard Tisserant 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 +0200 Edouard Tisserant pep8 white spaces
Tue, 09 Apr 2019 13:13:27 +0200 Edouard Tisserant Now default_evaluator is provided by runtime package
Tue, 09 Apr 2019 13:08:03 +0200 Edouard Tisserant merge
Tue, 09 Apr 2019 13:05:35 +0200 Edouard Tisserant 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 +0200 Edouard Tisserant 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 +0200 Edouard Tisserant Fixed Wamp assertion because of unexpected type
Thu, 28 Mar 2019 13:09:11 +0100 Edouard Tisserant Enhanced statistics display code, used it and saw no more noticable leak while editing. Closing branch. wx.NewID_abuse_fix
Sun, 07 Apr 2019 21:08:07 +0200 Edouard Tisserant Conform to pep8 and pylint :
Sun, 07 Apr 2019 16:23:49 +0200 Edouard Tisserant Merged
Wed, 03 Apr 2019 06:31:34 +0000 Andrey Skvortsov Fix typo in README.md
Thu, 04 Apr 2019 14:00:17 +0200 Edouard Tisserant merged rename_on_location_change branch
Thu, 04 Apr 2019 13:59:22 +0200 Edouard Tisserant Rename checkbox and immediately apply. rename_on_location_change
Wed, 03 Apr 2019 13:20:28 +0200 Edouard Tisserant LocationCellEditor use better source for variable name replacement, and validate variable name before applying it or complains otherwise. rename_on_location_change
Tue, 02 Apr 2019 09:46:58 +0200 Edouard Tisserant LocationCellEditor now systematically change variable name according to name given by CTN, calls VariablePanel' OnVariableNameChange to update POU accordingly. rename_on_location_change
Thu, 28 Mar 2019 14:06:53 +0100 Edouard Tisserant Fix problem introduced in 9c5f835b031e : Exception in LDPowerRailDialog.py because of change in OnPaint/RefreshView/DrawPreview.
Thu, 28 Mar 2019 13:39:58 +0100 Edouard Tisserant Fixed RecentProjectMenu in BeremizIDE.py broken by untested changes in wx.NewID_abuse_fix.
Thu, 28 Mar 2019 13:10:26 +0100 Edouard Tisserant Merged wx.NewID_abuse_fix branch
Thu, 28 Mar 2019 13:08:20 +0100 Edouard Tisserant More wx.NewID abuse removal. This time BeremizIDE.py was cleaned. wx.NewID_abuse_fix
Thu, 28 Mar 2019 09:19:30 +0100 Edouard Tisserant Merged more of wx.NewID_abuse_fix branch
Wed, 27 Mar 2019 14:10:39 +0100 Edouard Tisserant More wx.NewID abuse removal. All Viewer.py got cured. wx.NewID_abuse_fix
Wed, 27 Mar 2019 13:08:51 +0100 Edouard Tisserant More wx.NewID abuse removal. This one was apparently silently unbinding toolbar butons when running out of mew wx IDs. wx.NewID_abuse_fix
Tue, 26 Mar 2019 13:54:36 +0100 Edouard Tisserant Dyslectic typos
Mon, 07 Jan 2019 20:32:40 +0000 Andrey Skvortsov Close branch py3-fix. py3-fix
Thu, 27 Jul 2017 20:34:38 +0000 Andrey Skvortsov Close branch 1.1 Korean release. 1.1 Korean release
Mon, 18 Mar 2019 09:12:44 +0000 Andrey Skvortsov Close branch generate-button. generate-button
Mon, 07 Jan 2019 23:55:05 +0300 Andrey Skvortsov close #2486 head #2486
Mon, 07 Jan 2019 20:33:11 +0000 Andrey Skvortsov Close branch nevow_service_rework. nevow_service_rework
Mon, 07 Jan 2019 20:32:32 +0000 Andrey Skvortsov Close branch wx3-fix. wx3-fix
Tue, 26 Mar 2019 11:08:32 +0100 Edouard Tisserant 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 +0100 Edouard Tisserant Continued wx.NewID abuse removal in Viewer.py : Added AppendItem to use instead of AppendMenu, made examples with AddBlockPinMenuItems and AddAlignmentMenuItems wx.NewID_abuse_fix
Tue, 26 Mar 2019 09:43:51 +0100 Edouard Tisserant Continued 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
Tue, 26 Mar 2019 09:41:09 +0100 Edouard Tisserant Start fixing wx.NewId abuse in viewer.py. This shows how to avoid using AppendMenu() function, definitely useless. wx.NewID_abuse_fix
Mon, 25 Mar 2019 14:59:54 +0100 Edouard Tisserant VariablePanel's menu do not waste Wx IDs anymore (directly binds wx objects rather than crating new ID wit wx.NewId) wx.NewID_abuse_fix
Tue, 26 Mar 2019 09:48:45 +0100 Edouard Tisserant Instrument IDE code to find code abusing wx.NewId. wx.NewID_abuse_fix
Fri, 22 Mar 2019 14:00:35 +0100 Edouard Tisserant 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 +0100 Edouard Tisserant Make spaghetti-code-quality great again.
Fri, 22 Mar 2019 13:26:31 +0100 Edouard Tisserant Merged
Mon, 18 Mar 2019 12:20:46 +0300 Andrey Skvortsov Add Docker files to build containers to run automated tests
Mon, 18 Mar 2019 12:10:36 +0300 Andrey Skvortsov merge
Mon, 18 Mar 2019 12:09:41 +0300 Andrey Skvortsov check_source.sh: fix sed error: -e expression #1, char 25: Invalid range end
Mon, 18 Mar 2019 12:07:49 +0300 Andrey Skvortsov Fix pylint warning [C0325(superfluous-parens), ] Unnecessary parens after u'if' keyword
Wed, 13 Mar 2019 15:58:34 +0300 Andrey Skvortsov Update Beremiz dependencies because of added PYROS:// support
Wed, 13 Mar 2019 15:54:17 +0300 Andrey Skvortsov Fix header and convert comments to docstrings in PSK_Adapter
Wed, 13 Mar 2019 15:43:45 +0300 Andrey Skvortsov Fix Pyro work with SSL wrapper (sslpsk)
Wed, 13 Mar 2019 14:27:24 +0300 Andrey Skvortsov Fix crash in runtime if PSK secret is missing
Wed, 13 Mar 2019 14:14:31 +0300 Andrey Skvortsov Update build instruction for BACNet in README
Wed, 13 Mar 2019 14:11:13 +0300 Andrey Skvortsov Replace md5 module with hashlib
Wed, 13 Mar 2019 11:51:40 +0300 Andrey Skvortsov Remove execute attributes from runtime/PLCObject.py
Wed, 13 Mar 2019 11:49:46 +0300 Andrey Skvortsov Fix typo
Wed, 13 Mar 2019 11:47:03 +0300 Andrey Skvortsov Fix various pylint and pep8 errors
Wed, 13 Mar 2019 10:19:30 +0300 Andrey Skvortsov Fix invalid python3 syntax
Wed, 13 Mar 2019 10:02:11 +0300 Andrey Skvortsov Exclude pyjslib.py from python3 syntax correction check
Wed, 13 Mar 2019 09:56:37 +0300 Andrey Skvortsov revert occasionally committed changed first_steps project.
Mon, 18 Mar 2019 07:13:04 +0000 Andrey Skvortsov Merged in masterschlumpf/beremiz/generate-button (pull request #38)
Fri, 15 Mar 2019 18:27:43 +0100 Schlumpf Create a "Generate Program As..." menu to make the "Generate Program" toolbutton even more useful. generate-button
Fri, 15 Mar 2019 17:34:24 +0100 Schlumpf Add "Generate Program" to toolbar in PLCOpenEditor standalone mode. generate-button
Fri, 22 Mar 2019 11:10:37 +0100 Edouard Tisserant Merged search in CTN branch
Fri, 22 Mar 2019 11:09:41 +0100 Edouard Tisserant Finished adding search in python and C files. Stripped debug code and useless comments. Close branch search_in_CTN
Fri, 22 Mar 2019 10:57:04 +0100 Edouard Tisserant WIP adding searching capabilities in python files. was done : search_in_CTN
Thu, 21 Mar 2019 14:00:26 +0100 Edouard Tisserant WIP adding searching capabilities in python files. was done : search_in_CTN
Thu, 21 Mar 2019 13:10:49 +0100 Edouard Tisserant WIP adding searching capabilities in python files. was done : search_in_CTN
Thu, 21 Mar 2019 13:04:26 +0100 Edouard Tisserant WIP adding searching capabilities in python files. was done : search_in_CTN
Wed, 20 Mar 2019 11:34:41 +0100 Edouard Tisserant WIP adding searching capabilities in python files. was done : search_in_CTN
Fri, 15 Mar 2019 14:11:49 +0100 Edouard Tisserant WIP adding searching capabilities in python files: search_in_CTN
Mon, 11 Mar 2019 17:20:15 +0100 Edouard Tisserant Fixed more pylint reports :
Mon, 11 Mar 2019 13:51:07 +0100 Edouard Tisserant Long due merge
Tue, 05 Mar 2019 11:43:20 +0300 Andrey Skvortsov Fix backtrace on printing localized (non-ascii) error message in PLCGenerator.
Tue, 05 Mar 2019 11:19:36 +0300 Andrey Skvortsov Fix crash if LD input contact isn't connected
Fri, 01 Mar 2019 16:55:16 +0300 Andrey Skvortsov Fix section styling in code editor (python and c extensions) if non-latin symbols are used in the code
Thu, 21 Feb 2019 11:39:50 +0300 Andrey Skvortsov update localization template
Thu, 21 Feb 2019 11:27:16 +0300 Andrey Skvortsov merge
Thu, 21 Feb 2019 11:25:58 +0300 Andrey Skvortsov updated list of translators
Thu, 21 Feb 2019 11:25:03 +0300 Andrey Skvortsov update translations from https://www.transifex.com/beremiz/beremiz-ide
Thu, 21 Feb 2019 10:58:37 +0300 Andrey Skvortsov Add SpinButtons for integer and floating point variables in ForceVariableDialog
Thu, 21 Feb 2019 10:17:38 +0300 Andrey Skvortsov Fix non-marking as manually forced floating point variable if the value isn't integer
Thu, 14 Feb 2019 10:27:24 +0300 Andrey Skvortsov Don't close ForceVariableDialog if user entered wrong new value
Thu, 14 Feb 2019 10:19:30 +0300 Andrey Skvortsov Additional fix for rewrite ForceVariableDialog commit (9076249f)
Thu, 14 Feb 2019 10:02:58 +0300 Andrey Skvortsov Fix redraw problems in preview frames and debug panel
Thu, 14 Feb 2019 09:44:19 +0300 Andrey Skvortsov Rewrite ForceVariableDialog. It's not based on wx.TextEntryDialog
Wed, 13 Feb 2019 13:35:48 +0000 Mario de Sousa merge updates to modbus/mb_runtime.c
Mon, 14 Jan 2019 12:30:32 +0300 Andrey Skvortsov fix 'SaveAs' in case of overwriting existing project
Mon, 14 Jan 2019 12:17:48 +0300 Andrey Skvortsov fix 'SaveAs' to non-empty directory and directory without write permissions
Sat, 12 Jan 2019 15:02:17 +0300 Andrey Skvortsov fix problems with recursive beremiz.h inclusion
Sat, 12 Jan 2019 13:57:16 +0300 Andrey Skvortsov remove LogMessage prototype from plc_main_head.c
Mon, 07 Jan 2019 23:28:28 +0300 Andrey Skvortsov merge
Sun, 06 Jan 2019 03:11:39 +0300 Andrey Skvortsov Make online debug optional
Sun, 06 Jan 2019 02:00:07 +0300 Andrey Skvortsov Disable Python extension in First steps example
Sun, 06 Jan 2019 01:22:46 +0300 Andrey Skvortsov use pregenerated CRC32 lookup tables for retain on Win32 and GNU/Linux
Mon, 07 Jan 2019 20:24:49 +0000 Andrey Skvortsov Merged in masterschlumpf/beremiz/wx3-fix (pull request #37)
Mon, 07 Jan 2019 18:32:03 +0100 Schlumpf Fix an exception on wx-3.0-gtk3 in PLCOpenEditor when generating ST files. wx3-fix
Mon, 24 Dec 2018 16:44:06 +0300 Dmitriy Kuzmin Fix typos in function names
Mon, 24 Dec 2018 16:22:28 +0300 Andrey Skvortsov update links to matiec and beremiz repos in README
Mon, 24 Dec 2018 16:20:20 +0300 Andrey Skvortsov fix zoom-in/zoom-out using mouse wheel
Mon, 11 Mar 2019 09:18:58 +0100 Edouard Tisserant better pylint complain workaround
Mon, 11 Mar 2019 01:03:32 +0100 Edouard Tisserant check_sources.sh makes me become even less productive
Thu, 07 Mar 2019 21:57:18 +0100 Edouard Tisserant Added stub axis_s type in EtherLAB CiA402 support code, until Motion Contol Library comes back
Tue, 19 Feb 2019 11:27:29 +0100 Edouard Tisserant 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 +0100 Edouard Tisserant 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 +0100 Edouard Tisserant Fix startup of wxGlade base HMI. Wx calls were issued from non-wx thread (main).
Wed, 13 Feb 2019 09:41:35 +0100 Edouard Tisserant Reworked chunk based transfer to support duplicated files (i.e. files with same content, but different names)
Fri, 01 Feb 2019 14:14:13 +0100 Edouard Tisserant Fixed deadlock in runtime's Worker. Was discovered while using WAMP and PYRO simultaneously.
Thu, 31 Jan 2019 14:10:06 +0100 Edouard Tisserant 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 +0100 Edouard Tisserant Fixed deadlock when using Wx together with Twisted in runtime.
Fri, 25 Jan 2019 14:06:11 +0100 Edouard Tisserant Split IDE's frame OnCloseFrame() into TryCloseFrame() and OnCloseFrame(), to help further customization
Wed, 09 Jan 2019 14:10:07 +0100 Edouard Tisserant fixed exception happening randomly just after showing discovery panel.
Wed, 09 Jan 2019 14:09:02 +0100 Edouard Tisserant 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 +0100 Edouard Tisserant 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 +0100 Mario de Sousa Modbus plugin: reset periodic activation timer when overrun occurs (delays due to communication errors, ...)
Mon, 07 Jan 2019 11:33:34 +0100 Edouard Tisserant 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 +0100 Edouard Tisserant 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 +0100 Edouard Tisserant 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 +0100 Edouard Tisserant Fix exception dialog with non recognized URI schemes
Wed, 19 Dec 2018 10:53:19 +0100 Edouard Tisserant Fixed runtime's reconnecting loop not stopping when re-configuring WAMP.
Wed, 19 Dec 2018 10:48:53 +0100 Edouard Tisserant Removed nonsense code, that I should have check more in details before merging m(
Tue, 18 Dec 2018 14:12:16 +0100 Edouard Tisserant Allow easier monkey patching of WAMP connector Session class
Tue, 18 Dec 2018 14:10:43 +0100 Edouard Tisserant Expose new PLCObject API members to WAMP interface.
Tue, 18 Dec 2018 14:08:11 +0100 Edouard Tisserant Use another way to ensure compatibility with Py3 about text type.
Mon, 10 Dec 2018 11:22:43 +0100 Edouard Tisserant Make easier to read console error message in case of connection problem.
Wed, 05 Dec 2018 14:05:35 +0100 Edouard Tisserant 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 +0100 Edouard Tisserant Enure that autostart blocks other @RunInMain PLCObject methods, and _unblocks_ them once autostart is done...
Wed, 05 Dec 2018 13:04:37 +0100 Edouard Tisserant 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 +0100 Edouard Tisserant Bigger chunks, from 16k to 1M
Wed, 05 Dec 2018 11:35:18 +0100 Edouard Tisserant 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 +0100 Edouard Tisserant Chunk based transfer for PLC binary and extra files, and some collateral code refactoring.
Tue, 27 Nov 2018 13:34:14 +0100 Edouard Tisserant 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 +0100 Edouard Tisserant Cosmetic change in PSKManagement.py
Mon, 26 Nov 2018 15:12:18 +0100 Edouard Tisserant Fixed ID,last URI, or last connection date not being updated when connnecting to target.
Fri, 23 Nov 2018 12:13:24 +0100 Edouard Tisserant 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 +0100 Edouard Tisserant IDManager : small cosmetic fixes and cleanup.
Fri, 12 Oct 2018 13:24:47 +0300 Andrey Skvortsov python3 support: pylint, W1633 # (round-builtin) round built-in referenced
Fri, 12 Oct 2018 12:06:45 +0300 Andrey Skvortsov python3 support: pylint,W1610 # (reduce-builtin) reduce built-in referenced
Fri, 12 Oct 2018 11:50:40 +0300 Andrey Skvortsov python3 support: pylint, W1653 # (next-method-defined) next method defined
Fri, 12 Oct 2018 11:35:15 +0300 Andrey Skvortsov python3 support: pylint, W1622 # (next-method-called) Called a next() method on an object
Fri, 12 Oct 2018 11:14:34 +0300 Andrey Skvortsov python3 support: pylint, W1625 # (raising-string) Raising a string exception
Fri, 12 Oct 2018 10:42:47 +0300 Andrey Skvortsov python3 support: pylint, W1624 # (indexing-exception) Indexing exceptions will not work on Python 3
Thu, 11 Oct 2018 12:09:04 +0300 Andrey Skvortsov python3 support: pylint, W1611 # (standarderror-builtin) StandardError built-in referenced
Thu, 11 Oct 2018 12:00:40 +0300 Andrey Skvortsov python3 support: pylint, W1652 # (deprecated-types-field) Accessing a deprecated fields on the types module
Thu, 11 Oct 2018 10:25:19 +0300 Andrey Skvortsov python3 support: pylint, W1651 (deprecated-itertools-function) Accessing a deprecated function on the itertools module
Thu, 11 Oct 2018 10:01:12 +0300 Andrey Skvortsov python3 support: pylint, W1649 # (deprecated-string-function) Accessing a deprecated function on the string module
Thu, 11 Oct 2018 09:41:15 +0300 Andrey Skvortsov python3 support: pylint, W1645 # (exception-message-attribute) Exception.message removed in Python 3
Wed, 10 Oct 2018 10:50:00 +0300 Andrey Skvortsov python3 support: pylint, W1646 # (invalid-str-codec) non-text encoding used in str.decode
Wed, 10 Oct 2018 10:36:07 +0300 Andrey Skvortsov python3 support: pylint,W1602 # (basestring-builtin) basestring built-in referenced
Wed, 10 Oct 2018 10:32:57 +0300 Andrey Skvortsov python3 support: pylint, W1629 # (nonzero-method) __nonzero__ method defined
Wed, 10 Oct 2018 10:26:27 +0300 Andrey Skvortsov python3 support: pylint, W1606 # (execfile-builtin) execfile built-in referenced
Tue, 09 Oct 2018 14:03:44 +0300 Andrey Skvortsov python3 support: pylint, W1607 # (file-builtin) file built-in referenced
Tue, 09 Oct 2018 13:50:29 +0300 Andrey Skvortsov python3 support: pylint, W1659 # (xreadlines-attribute) Accessing a removed xreadlines attribute
Tue, 09 Oct 2018 12:05:43 +0300 Andrey Skvortsov python3 support: pylint, W1601 # (apply-builtin) apply built-in referenced
Tue, 09 Oct 2018 11:56:45 +0300 Andrey Skvortsov Fix pep8 warning: W605 invalid escape sequence ?x?
Tue, 09 Oct 2018 11:43:39 +0300 Andrey Skvortsov pep8, ignore W606 'async' and 'await' are reserved keywords starting with Python 3.7
Fri, 05 Oct 2018 14:22:01 +0300 Andrey Skvortsov python3 support: pylint, W1619 #(old-division) division w/o __future__ statement
Fri, 05 Oct 2018 13:48:54 +0300 Andrey Skvortsov Make easier to run pytest on local X-server
Fri, 05 Oct 2018 13:11:28 +0300 Andrey Skvortsov cleanup pyc files between running pytest
Thu, 04 Oct 2018 17:24:40 +0300 Andrey Skvortsov python3 support: pylint, W1612 # (unicode-builtin) unicode built-in referenced
Thu, 04 Oct 2018 12:09:23 +0300 Andrey Skvortsov Use multiple processes to speed up pylint
Thu, 04 Oct 2018 12:07:16 +0300 Andrey Skvortsov python3 support: pylint, W1613 # (xrange-builtin) xrange built-in referenced
Thu, 04 Oct 2018 11:25:42 +0300 Andrey Skvortsov python3 support: pylint, W1648 # (bad-python3-import) Module moved in Python 3
Fri, 23 Nov 2018 00:45:51 +0100 Edouard Tisserant Fixed regression in connecting to LOCAL:// targets
Fri, 23 Nov 2018 00:33:04 +0100 Edouard Tisserant Merge, with surprizingly little conflicts
Thu, 22 Nov 2018 23:39:54 +0100 Edouard Tisserant 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 +0300 Andrey Skvortsov merge
Wed, 03 Oct 2018 14:20:57 +0300 Andrey Skvortsov Update localization template
Wed, 03 Oct 2018 14:19:41 +0300 Andrey Skvortsov Fix 'msgid' format string with unnamed arguments cannot be properly localized
Wed, 03 Oct 2018 14:17:19 +0300 Andrey Skvortsov Add automatic check for localization strings with multiple unnamed arguments
Wed, 03 Oct 2018 12:43:35 +0300 Andrey Skvortsov Improve localization support in etherlab (mostly)
Wed, 03 Oct 2018 12:07:56 +0300 Andrey Skvortsov cleanup etherlab: pylint, W0602 (global-variable-not-assigned) Using global for 'X' but no assignment is done
Wed, 03 Oct 2018 11:48:05 +0300 Andrey Skvortsov cleanup: pylint, W0109 # (duplicate-key) Duplicate key 'X' in dictionary
Wed, 03 Oct 2018 11:47:04 +0300 Andrey Skvortsov Add python3 syntax checking to CI
Wed, 03 Oct 2018 11:44:57 +0300 Andrey Skvortsov Fix old style exception raise and exec syntax
Tue, 02 Oct 2018 18:08:49 +0300 Andrey Skvortsov Use python 3 compatible exception syntax everywhere
Tue, 02 Oct 2018 17:18:09 +0300 Andrey Skvortsov cleanup: pylint, R0123 # (literal-comparison) Comparison to literal
Tue, 02 Oct 2018 16:53:14 +0300 Andrey Skvortsov Use predefined constants for PlcStatus instead of string literals
Mon, 01 Oct 2018 15:53:34 +0300 Andrey Skvortsov cleanup: pylint, R1704 # (redefined-argument-from-local) Redefining argument with the local name 'Y'
Mon, 01 Oct 2018 15:36:01 +0300 Andrey Skvortsov cleanup: pylint, R1701 # (consider-merging-isinstance) Consider merging these isinstance calls to isinstance(CTNLDFLAGS, (str, unicode))
Mon, 01 Oct 2018 14:29:01 +0300 Andrey Skvortsov cleanup: pylint, E1304 # (missing-format-string-key) Missing key 'X_name' in format string dictionary
Mon, 01 Oct 2018 14:13:05 +0300 Andrey Skvortsov cleanup: pylint, E1300 # (bad-format-character) Unsupported format character '"' (0x22) at index 17
Mon, 01 Oct 2018 13:43:50 +0300 Andrey Skvortsov cleanup: pylint, W0111 # (assign-to-new-keyword) Name async will become a keyword in Python 3.7
Mon, 01 Oct 2018 13:31:52 +0300 Andrey Skvortsov cleanup: pylint, E1310 (bad-str-strip-call) Suspicious argument in str.strip call
Mon, 01 Oct 2018 12:04:58 +0300 Andrey Skvortsov Fix segmentation fault when last lines in text POUs should be highlighted
Sat, 29 Sep 2018 19:18:50 +0300 Andrey Skvortsov enable etherlab checks
Sat, 29 Sep 2018 19:10:43 +0300 Andrey Skvortsov clean etherlab: pylint, C0330 # (bad-continuation) Wrong hanging indentation before block
Sat, 29 Sep 2018 18:59:41 +0300 Andrey Skvortsov clean etherlab: pylint, W0612 # (unused-variable) Unused variable 'X'
Sat, 29 Sep 2018 17:52:33 +0300 Andrey Skvortsov clean etherlab: pylint, W1618 # (no-absolute-import) import missing `from __future__ import absolute_import`
Sat, 29 Sep 2018 17:39:21 +0300 Andrey Skvortsov clean etherlab: pylint,E0602 # (undefined-variable) Undefined variable 'X'
Sat, 29 Sep 2018 17:12:44 +0300 Andrey Skvortsov clean etherlab: pylint, E1136 # (unsubscriptable-object) Value 'X' is unsubscriptable
Sat, 29 Sep 2018 17:00:01 +0300 Andrey Skvortsov ignore missing MotionLibrary
Sat, 29 Sep 2018 16:57:25 +0300 Andrey Skvortsov clean etherlab: pylint, E0611 # (no-name-in-module) No name 'X' in module 'Y'
Sat, 29 Sep 2018 16:53:46 +0300 Andrey Skvortsov clean etherlab: pylint, C0123 # (unidiomatic-typecheck) Using type() instead of isinstance() for a typecheck.
Sat, 29 Sep 2018 16:48:25 +0300 Andrey Skvortsov clean etherlab: pylint, W0104 # (pointless-statement) Statement seems to have no effect
Sat, 29 Sep 2018 16:46:41 +0300 Andrey Skvortsov clean etherlab: pylint, W0631 # (undefined-loop-variable) Using possibly undefined loop variable 'X'
Sat, 29 Sep 2018 16:40:56 +0300 Andrey Skvortsov clean etherlab: pylint, C1001 # (old-style-class) Old-style class defined.
Sat, 29 Sep 2018 16:39:25 +0300 Andrey Skvortsov clean etherlab: pylint, W0611 # (unused-import) Unused import X
Sat, 29 Sep 2018 16:35:38 +0300 Andrey Skvortsov clean etherlab: pylint, E0102 # (function-redefined) method already defined
Sat, 29 Sep 2018 16:33:22 +0300 Andrey Skvortsov clean etherlab: pylint, W0105 # (pointless-string-statement) String statement has no effect
Sat, 29 Sep 2018 16:31:54 +0300 Andrey Skvortsov clean etherlab: pylint,W0231 # (super-init-not-called) __init__ method from base class is not called
Sat, 29 Sep 2018 16:29:41 +0300 Andrey Skvortsov clean etherlab: pylint, C0412 # (ungrouped-imports) Imports from package X are not grouped
Sat, 29 Sep 2018 16:23:20 +0300 Andrey Skvortsov clean etherlab: pylint,W0108 # (unnecessary-lambda) Lambda may not be necessary
Sat, 29 Sep 2018 16:19:15 +0300 Andrey Skvortsov clean etherlab: pylint, C0411 # (wrong-import-order) standard import "import x" comes before "import y"
Sat, 29 Sep 2018 16:17:04 +0300 Andrey Skvortsov clean etherlab: pylint, W0404 # reimported module
Sat, 29 Sep 2018 15:41:20 +0300 Andrey Skvortsov check_source.sh: add E301 check to the list of selected PEP8 errors
Sat, 29 Sep 2018 15:38:49 +0300 Andrey Skvortsov clean etherlab: pep8, E301 expected 2 blank lines, found 1
Sat, 29 Sep 2018 15:35:22 +0300 Andrey Skvortsov clean etherlab: pep8, W503 line break before binary operator
Sat, 29 Sep 2018 15:33:41 +0300 Andrey Skvortsov clean etherlab: pep8, E266 too many leading '#' for block comment
Sat, 29 Sep 2018 15:31:50 +0300 Andrey Skvortsov clean etherlab: pep8, E122 continuation line missing indentation or outdented
Sat, 29 Sep 2018 15:24:07 +0300 Andrey Skvortsov clean etherlab: pep8, W191 indentation contains tabs
Sat, 29 Sep 2018 15:21:06 +0300 Andrey Skvortsov clean etherlab: pep8, E211 whitespace before '['
Sat, 29 Sep 2018 15:16:21 +0300 Andrey Skvortsov clean etherlab: pep8, E129 visually indented line with same indent as next logical line
Sat, 29 Sep 2018 15:03:17 +0300 Andrey Skvortsov clean etherlab: pep8, E127 continuation line over-indented for visual indent
Sat, 29 Sep 2018 14:57:15 +0300 Andrey Skvortsov clean etherlab: pep8, E129 visually indented line with same indent as next logical line
Sat, 29 Sep 2018 13:44:02 +0300 Andrey Skvortsov clean etherlab: pep8, W602 deprecated form of raising exception
Sat, 29 Sep 2018 13:34:06 +0300 Andrey Skvortsov clean etherlab: pep8, W601 .has_key() is deprecated, use 'in'
Sat, 29 Sep 2018 13:30:41 +0300 Andrey Skvortsov clean etherlab: pep8, E731 do not assign a lambda expression, use a def
Sat, 29 Sep 2018 13:29:20 +0300 Andrey Skvortsov clean etherlab: pep8, E203 whitespace before ','
Sat, 29 Sep 2018 13:04:33 +0300 Andrey Skvortsov clean etherlab: pep8, E712 comparison to True should be 'if cond is True:' or 'if cond:'
Sat, 29 Sep 2018 12:55:56 +0300 Andrey Skvortsov clean etherlab: pep8, E222 multiple spaces after operator
Sat, 29 Sep 2018 12:54:42 +0300 Andrey Skvortsov clean etherlab: pep8, E741 ambiguous variable name 'l'
Sat, 29 Sep 2018 12:48:28 +0300 Andrey Skvortsov cleanup etherlab: pep8, E306 expected 1 blank line before a nested definition, found X
Fri, 28 Sep 2018 19:30:16 +0300 Andrey Skvortsov cleanup etherlab: pep8, E305 expected 2 blank lines after class or function definition, found X
Fri, 28 Sep 2018 19:25:18 +0300 Andrey Skvortsov cleanup etherlab: pep8, E201 whitespace after '('
Fri, 28 Sep 2018 19:22:14 +0300 Andrey Skvortsov cleanup etherlab: pep8, E202 whitespace before ')'
Fri, 28 Sep 2018 19:20:32 +0300 Andrey Skvortsov cleanup etherlab: pep8, E227 missing whitespace around bitwise or shift operator
Fri, 28 Sep 2018 19:16:12 +0300 Andrey Skvortsov cleanup etherlab: pep8, E251 unexpected spaces around keyword / parameter equals
Fri, 28 Sep 2018 19:12:26 +0300 Andrey Skvortsov cleanup etherlab: pep8, E225 missing whitespace around operator
Fri, 28 Sep 2018 19:06:28 +0300 Andrey Skvortsov cleanup etherlab: pep8, E303 too many blank lines (2)
Fri, 28 Sep 2018 19:02:49 +0300 Andrey Skvortsov cleanup etherlab: pep8, E231 missing whitespace after ','
Fri, 28 Sep 2018 18:12:18 +0300 Andrey Skvortsov cleanup etherlab: pep8, E271 multiple spaces after keyword
Fri, 28 Sep 2018 18:06:59 +0300 Andrey Skvortsov cleanup etherlab: pep8, E261 at least two spaces before inline comment
Fri, 28 Sep 2018 18:04:28 +0300 Andrey Skvortsov cleanup etherlab: pep8, E302 expected 2 blank lines, found 1
Fri, 28 Sep 2018 18:00:50 +0300 Andrey Skvortsov cleanup etherlab: pep8, W293 blank line contains whitespace
Fri, 28 Sep 2018 17:59:28 +0300 Andrey Skvortsov cleanup etherlab: pep8, E228 missing whitespace around modulo operator
Fri, 28 Sep 2018 17:52:30 +0300 Andrey Skvortsov cleanup etherlab: pep8, E401 multiple imports on one line
Fri, 28 Sep 2018 17:48:10 +0300 Andrey Skvortsov cleanup etherlab: pep8, E265 block comment should start with '# '
Fri, 28 Sep 2018 17:20:11 +0300 Andrey Skvortsov cleanup etherlab: pep8, W291 trailing whitespace
Fri, 28 Sep 2018 17:15:53 +0300 Andrey Skvortsov convert some etherlab source files to unix format
Fri, 28 Sep 2018 17:14:42 +0300 Andrey Skvortsov cleanup etherlab: pep8, E722 do not use bare except
Fri, 28 Sep 2018 13:21:06 +0300 Andrey Skvortsov Ignore cache files and generated test reports
Fri, 28 Sep 2018 13:17:30 +0300 Andrey Skvortsov Update Beremiz translations and list of translators
Fri, 28 Sep 2018 13:07:46 +0300 Andrey Skvortsov Use the list of supported by app translations instead of supported translations by wx
Fri, 28 Sep 2018 12:54:14 +0300 Andrey Skvortsov Suppress message box in case current locale is unsupported or missing in wx
Thu, 27 Sep 2018 19:07:57 +0300 Andrey Skvortsov Add commands to pull translation from transifex
Wed, 26 Sep 2018 18:08:57 +0300 Andrey Skvortsov Add custom dialog to add/edit comment block in graphical editors
Wed, 26 Sep 2018 14:20:51 +0300 Andrey Skvortsov Cleanup examples so they look clean, nice and almost the same on Windows and GNU/Linux
Wed, 26 Sep 2018 14:15:22 +0300 Andrey Skvortsov use the same font size on Windows and GNU/Linux
Wed, 26 Sep 2018 12:13:23 +0300 Andrey Skvortsov use nice and pretty mono font in graphical languages (SFC, FBD, LD) as well
Tue, 25 Sep 2018 19:00:03 +0300 Andrey Skvortsov Don't need to call extra _init_
Tue, 25 Sep 2018 18:31:17 +0300 Andrey Skvortsov Fix black background in preview window
Tue, 25 Sep 2018 18:29:10 +0300 Andrey Skvortsov Avoid division by zero in case width or height for page are not specified
Wed, 21 Nov 2018 14:10:51 +0100 Edouard Tisserant IDManager: added import/export plus little cosmetic enhancements.
Tue, 20 Nov 2018 11:32:42 +0100 Edouard Tisserant 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 +0100 Edouard Tisserant Renaming servicetype into scheme.
Fri, 16 Nov 2018 14:04:51 +0100 Edouard Tisserant Added toolbar button to launch ID Manager dialog.
Fri, 16 Nov 2018 10:00:06 +0100 Edouard Tisserant Renamed IDManager control into IDBrowser, because dialog will be named IDManager
Wed, 14 Nov 2018 14:09:18 +0100 Edouard Tisserant IDManager.py : finished selector mode.
Wed, 14 Nov 2018 11:32:08 +0100 Edouard Tisserant Added early implementation of IDManager.py. For now only used to select ID in URIEditor
Fri, 09 Nov 2018 13:26:06 +0100 Edouard Tisserant Path may contain spaces... sequel of d1359cb
Thu, 08 Nov 2018 14:33:35 +0100 Edouard Tisserant 'Merged' URI editor dialog and Discovery dialog, also clean up related code
Thu, 08 Nov 2018 11:20:35 +0100 Edouard Tisserant Cut more useless code from URI Editor
Thu, 08 Nov 2018 11:14:06 +0100 Edouard Tisserant URI Editor Dialog : moved it to /dialog, and fixed naming.
Thu, 08 Nov 2018 09:39:06 +0100 Edouard Tisserant URI editor : Rewrote most of it, cleaner.
Tue, 30 Oct 2018 14:08:28 +0100 Edouard Tisserant PSK : Stunnel and/or OpenSSL (undocumented) handles PSK better without special chars, apparently
Tue, 30 Oct 2018 13:47:24 +0100 Edouard Tisserant Prevent PLCObject to be imported from IDE as a side effect of importing runtime package
Tue, 30 Oct 2018 09:46:46 +0100 Edouard Tisserant WAMP : ensure that unicode string is passed for published events IDs
Tue, 30 Oct 2018 09:45:47 +0100 Edouard Tisserant PYRO PSK: adjusted cipher and key length to be usable with openSSL 1.0.2k.
Mon, 29 Oct 2018 11:33:36 +0100 Edouard Tisserant 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 +0200 Edouard Tisserant 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 +0200 Edouard Tisserant 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 +0200 Edouard Tisserant Small cosmetic change to enhance readability and avoid confusion.