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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Sat, 29 Sep 2018 17:52:33 +0300clean etherlab: pylint, W1618 # (no-absolute-import) import missing `from __future__ import absolute_import`
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 17:52:33 +0300] rev 2405
clean etherlab: pylint, W1618 # (no-absolute-import) import missing `from __future__ import absolute_import`

Sat, 29 Sep 2018 17:39:21 +0300clean etherlab: pylint,E0602 # (undefined-variable) Undefined variable 'X'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 17:39:21 +0300] rev 2404
clean etherlab: pylint,E0602 # (undefined-variable) Undefined variable 'X'

Sat, 29 Sep 2018 17:12:44 +0300clean etherlab: pylint, E1136 # (unsubscriptable-object) Value 'X' is unsubscriptable
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 17:12:44 +0300] rev 2403
clean etherlab: pylint, E1136 # (unsubscriptable-object) Value 'X' is unsubscriptable

Sat, 29 Sep 2018 17:00:01 +0300ignore missing MotionLibrary
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 17:00:01 +0300] rev 2402
ignore missing MotionLibrary

to fix pylint error 'E0401 # (import-error) Unable to import 'X'

Sat, 29 Sep 2018 16:57:25 +0300clean etherlab: pylint, E0611 # (no-name-in-module) No name 'X' in module 'Y'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 16:57:25 +0300] rev 2401
clean etherlab: pylint, E0611 # (no-name-in-module) No name 'X' in module 'Y'

Sat, 29 Sep 2018 16:53:46 +0300clean etherlab: pylint, C0123 # (unidiomatic-typecheck) Using type() instead of isinstance() for a typecheck.
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 16:53:46 +0300] rev 2400
clean etherlab: pylint, C0123 # (unidiomatic-typecheck) Using type() instead of isinstance() for a typecheck.

Sat, 29 Sep 2018 16:48:25 +0300clean etherlab: pylint, W0104 # (pointless-statement) Statement seems to have no effect
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 16:48:25 +0300] rev 2399
clean etherlab: pylint, W0104 # (pointless-statement) Statement seems to have no effect

Sat, 29 Sep 2018 16:46:41 +0300clean etherlab: pylint, W0631 # (undefined-loop-variable) Using possibly undefined loop variable 'X'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 16:46:41 +0300] rev 2398
clean etherlab: pylint, W0631 # (undefined-loop-variable) Using possibly undefined loop variable 'X'

Sat, 29 Sep 2018 16:40:56 +0300clean etherlab: pylint, C1001 # (old-style-class) Old-style class defined.
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 16:40:56 +0300] rev 2397
clean etherlab: pylint, C1001 # (old-style-class) Old-style class defined.

Sat, 29 Sep 2018 16:39:25 +0300clean etherlab: pylint, W0611 # (unused-import) Unused import X
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 16:39:25 +0300] rev 2396
clean etherlab: pylint, W0611 # (unused-import) Unused import X

Sat, 29 Sep 2018 16:35:38 +0300clean etherlab: pylint, E0102 # (function-redefined) method already defined
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 16:35:38 +0300] rev 2395
clean etherlab: pylint, E0102 # (function-redefined) method already defined

Sat, 29 Sep 2018 16:33:22 +0300clean etherlab: pylint, W0105 # (pointless-string-statement) String statement has no effect
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 16:33:22 +0300] rev 2394
clean etherlab: pylint, W0105 # (pointless-string-statement) String statement has no effect

Sat, 29 Sep 2018 16:31:54 +0300clean etherlab: pylint,W0231 # (super-init-not-called) __init__ method from base class is not called
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 16:31:54 +0300] rev 2393
clean etherlab: pylint,W0231 # (super-init-not-called) __init__ method from base class is not called

Sat, 29 Sep 2018 16:29:41 +0300clean etherlab: pylint, C0412 # (ungrouped-imports) Imports from package X are not grouped
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 16:29:41 +0300] rev 2392
clean etherlab: pylint, C0412 # (ungrouped-imports) Imports from package X are not grouped

Sat, 29 Sep 2018 16:23:20 +0300clean etherlab: pylint,W0108 # (unnecessary-lambda) Lambda may not be necessary
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 16:23:20 +0300] rev 2391
clean etherlab: pylint,W0108 # (unnecessary-lambda) Lambda may not be necessary

Sat, 29 Sep 2018 16:19:15 +0300clean etherlab: pylint, C0411 # (wrong-import-order) standard import "import x" comes before "import y"
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 16:19:15 +0300] rev 2390
clean etherlab: pylint, C0411 # (wrong-import-order) standard import "import x" comes before "import y"

Sat, 29 Sep 2018 16:17:04 +0300clean etherlab: pylint, W0404 # reimported module
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 16:17:04 +0300] rev 2389
clean etherlab: pylint, W0404 # reimported module

Sat, 29 Sep 2018 15:41:20 +0300check_source.sh: add E301 check to the list of selected PEP8 errors
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 15:41:20 +0300] rev 2388
check_source.sh: add E301 check to the list of selected PEP8 errors

Sat, 29 Sep 2018 15:38:49 +0300clean etherlab: pep8, E301 expected 2 blank lines, found 1
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 15:38:49 +0300] rev 2387
clean etherlab: pep8, E301 expected 2 blank lines, found 1

Sat, 29 Sep 2018 15:35:22 +0300clean etherlab: pep8, W503 line break before binary operator
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 15:35:22 +0300] rev 2386
clean etherlab: pep8, W503 line break before binary operator

Sat, 29 Sep 2018 15:33:41 +0300clean etherlab: pep8, E266 too many leading '#' for block comment
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 15:33:41 +0300] rev 2385
clean etherlab: pep8, E266 too many leading '#' for block comment

Sat, 29 Sep 2018 15:31:50 +0300clean etherlab: pep8, E122 continuation line missing indentation or outdented
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 15:31:50 +0300] rev 2384
clean etherlab: pep8, E122 continuation line missing indentation or outdented

Sat, 29 Sep 2018 15:24:07 +0300clean etherlab: pep8, W191 indentation contains tabs
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 15:24:07 +0300] rev 2383
clean etherlab: pep8, W191 indentation contains tabs

Sat, 29 Sep 2018 15:21:06 +0300clean etherlab: pep8, E211 whitespace before '['
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 15:21:06 +0300] rev 2382
clean etherlab: pep8, E211 whitespace before '['

Sat, 29 Sep 2018 15:16:21 +0300clean etherlab: pep8, E129 visually indented line with same indent as next logical line
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 15:16:21 +0300] rev 2381
clean etherlab: pep8, E129 visually indented line with same indent as next logical line

Sat, 29 Sep 2018 15:03:17 +0300clean etherlab: pep8, E127 continuation line over-indented for visual indent
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 15:03:17 +0300] rev 2380
clean etherlab: pep8, E127 continuation line over-indented for visual indent

Sat, 29 Sep 2018 14:57:15 +0300clean etherlab: pep8, E129 visually indented line with same indent as next logical line
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 14:57:15 +0300] rev 2379
clean etherlab: pep8, E129 visually indented line with same indent as next logical line

Sat, 29 Sep 2018 13:44:02 +0300clean etherlab: pep8, W602 deprecated form of raising exception
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 13:44:02 +0300] rev 2378
clean etherlab: pep8, W602 deprecated form of raising exception

Sat, 29 Sep 2018 13:34:06 +0300clean etherlab: pep8, W601 .has_key() is deprecated, use 'in'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 13:34:06 +0300] rev 2377
clean etherlab: pep8, W601 .has_key() is deprecated, use 'in'

Sat, 29 Sep 2018 13:30:41 +0300clean etherlab: pep8, E731 do not assign a lambda expression, use a def
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 13:30:41 +0300] rev 2376
clean etherlab: pep8, E731 do not assign a lambda expression, use a def

Sat, 29 Sep 2018 13:29:20 +0300clean etherlab: pep8, E203 whitespace before ','
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 13:29:20 +0300] rev 2375
clean etherlab: pep8, E203 whitespace before ','

Sat, 29 Sep 2018 13:04:33 +0300clean etherlab: pep8, E712 comparison to True should be 'if cond is True:' or 'if cond:'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 13:04:33 +0300] rev 2374
clean etherlab: pep8, E712 comparison to True should be 'if cond is True:' or 'if cond:'

Sat, 29 Sep 2018 12:55:56 +0300clean etherlab: pep8, E222 multiple spaces after operator
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 12:55:56 +0300] rev 2373
clean etherlab: pep8, E222 multiple spaces after operator

Sat, 29 Sep 2018 12:54:42 +0300clean etherlab: pep8, E741 ambiguous variable name 'l'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 12:54:42 +0300] rev 2372
clean etherlab: pep8, E741 ambiguous variable name 'l'

Sat, 29 Sep 2018 12:48:28 +0300cleanup etherlab: pep8, E306 expected 1 blank line before a nested definition, found X
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 29 Sep 2018 12:48:28 +0300] rev 2371
cleanup etherlab: pep8, E306 expected 1 blank line before a nested definition, found X

Fri, 28 Sep 2018 19:30:16 +0300cleanup etherlab: pep8, E305 expected 2 blank lines after class or function definition, found X
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 28 Sep 2018 19:30:16 +0300] rev 2370
cleanup etherlab: pep8, E305 expected 2 blank lines after class or function definition, found X

Fri, 28 Sep 2018 19:25:18 +0300cleanup etherlab: pep8, E201 whitespace after '('
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 28 Sep 2018 19:25:18 +0300] rev 2369
cleanup etherlab: pep8, E201 whitespace after '('

Fri, 28 Sep 2018 19:22:14 +0300cleanup etherlab: pep8, E202 whitespace before ')'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 28 Sep 2018 19:22:14 +0300] rev 2368
cleanup etherlab: pep8, E202 whitespace before ')'

Fri, 28 Sep 2018 19:20:32 +0300cleanup etherlab: pep8, E227 missing whitespace around bitwise or shift operator
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 28 Sep 2018 19:20:32 +0300] rev 2367
cleanup etherlab: pep8, E227 missing whitespace around bitwise or shift operator

Fri, 28 Sep 2018 19:16:12 +0300cleanup etherlab: pep8, E251 unexpected spaces around keyword / parameter equals
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 28 Sep 2018 19:16:12 +0300] rev 2366
cleanup etherlab: pep8, E251 unexpected spaces around keyword / parameter equals

Fri, 28 Sep 2018 19:12:26 +0300cleanup etherlab: pep8, E225 missing whitespace around operator
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 28 Sep 2018 19:12:26 +0300] rev 2365
cleanup etherlab: pep8, E225 missing whitespace around operator

Fri, 28 Sep 2018 19:06:28 +0300cleanup etherlab: pep8, E303 too many blank lines (2)
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 28 Sep 2018 19:06:28 +0300] rev 2364
cleanup etherlab: pep8, E303 too many blank lines (2)

Fri, 28 Sep 2018 19:02:49 +0300cleanup etherlab: pep8, E231 missing whitespace after ','
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 28 Sep 2018 19:02:49 +0300] rev 2363
cleanup etherlab: pep8, E231 missing whitespace after ','

Fri, 28 Sep 2018 18:12:18 +0300cleanup etherlab: pep8, E271 multiple spaces after keyword
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 28 Sep 2018 18:12:18 +0300] rev 2362
cleanup etherlab: pep8, E271 multiple spaces after keyword

Fri, 28 Sep 2018 18:06:59 +0300cleanup etherlab: pep8, E261 at least two spaces before inline comment
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 28 Sep 2018 18:06:59 +0300] rev 2361
cleanup etherlab: pep8, E261 at least two spaces before inline comment

Fri, 28 Sep 2018 18:04:28 +0300cleanup etherlab: pep8, E302 expected 2 blank lines, found 1
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 28 Sep 2018 18:04:28 +0300] rev 2360
cleanup etherlab: pep8, E302 expected 2 blank lines, found 1

Fri, 28 Sep 2018 18:00:50 +0300cleanup etherlab: pep8, W293 blank line contains whitespace
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 28 Sep 2018 18:00:50 +0300] rev 2359
cleanup etherlab: pep8, W293 blank line contains whitespace

Fri, 28 Sep 2018 17:59:28 +0300cleanup etherlab: pep8, E228 missing whitespace around modulo operator
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 28 Sep 2018 17:59:28 +0300] rev 2358
cleanup etherlab: pep8, E228 missing whitespace around modulo operator

Fri, 28 Sep 2018 17:52:30 +0300cleanup etherlab: pep8, E401 multiple imports on one line
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 28 Sep 2018 17:52:30 +0300] rev 2357
cleanup etherlab: pep8, E401 multiple imports on one line

Fri, 28 Sep 2018 17:48:10 +0300cleanup etherlab: pep8, E265 block comment should start with '# '
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 28 Sep 2018 17:48:10 +0300] rev 2356
cleanup etherlab: pep8, E265 block comment should start with '# '

Fri, 28 Sep 2018 17:20:11 +0300cleanup etherlab: pep8, W291 trailing whitespace
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 28 Sep 2018 17:20:11 +0300] rev 2355
cleanup etherlab: pep8, W291 trailing whitespace

Fri, 28 Sep 2018 17:15:53 +0300convert some etherlab source files to unix format
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 28 Sep 2018 17:15:53 +0300] rev 2354
convert some etherlab source files to unix format

Fri, 28 Sep 2018 17:14:42 +0300cleanup etherlab: pep8, E722 do not use bare except
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 28 Sep 2018 17:14:42 +0300] rev 2353
cleanup etherlab: pep8, E722 do not use bare except

Fri, 28 Sep 2018 13:21:06 +0300Ignore cache files and generated test reports
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 28 Sep 2018 13:21:06 +0300] rev 2352
Ignore cache files and generated test reports

Fri, 28 Sep 2018 13:17:30 +0300Update Beremiz translations and list of translators
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 28 Sep 2018 13:17:30 +0300] rev 2351
Update Beremiz translations and list of translators

Added Turkish, Romania, Portuguese, Polish, Dutch, Hungarian.
Most existed translation are updated.

Fri, 28 Sep 2018 13:07:46 +0300Use the list of supported by app translations instead of supported translations by wx
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 28 Sep 2018 13:07:46 +0300] rev 2350
Use the list of supported by app translations instead of supported translations by wx

This will make possible to translate application into locales, that
are not explicitly supported by wx: for example, 'pl' or 'bn_BD', 'bn_IN'.

Fri, 28 Sep 2018 12:54:14 +0300Suppress message box in case current locale is unsupported or missing in wx
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 28 Sep 2018 12:54:14 +0300] rev 2349
Suppress message box in case current locale is unsupported or missing in wx

Beremiz can still be translated into it using own locales
available in './locale'.

Thu, 27 Sep 2018 19:07:57 +0300Add commands to pull translation from transifex
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 27 Sep 2018 19:07:57 +0300] rev 2348
Add commands to pull translation from transifex

tx - transifex cli client should be installed in the system.
It's free software and is available in Debian archive.

Run following commands:
1. Init your authorization token
$ make transifex_init

2. Pull translations
$ make transifex_pull

Wed, 26 Sep 2018 18:08:57 +0300Add custom dialog to add/edit comment block in graphical editors
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 26 Sep 2018 18:08:57 +0300] rev 2347
Add custom dialog to add/edit comment block in graphical editors

That allows to edit comment and immediately see how it'll be shown on wiresheet.

Wed, 26 Sep 2018 14:20:51 +0300Cleanup examples so they look clean, nice and almost the same on Windows and GNU/Linux
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 26 Sep 2018 14:20:51 +0300] rev 2346
Cleanup examples so they look clean, nice and almost the same on Windows and GNU/Linux

Wed, 26 Sep 2018 14:15:22 +0300use the same font size on Windows and GNU/Linux
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 26 Sep 2018 14:15:22 +0300] rev 2345
use the same font size on Windows and GNU/Linux

Wed, 26 Sep 2018 12:13:23 +0300use nice and pretty mono font in graphical languages (SFC, FBD, LD) as well
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 26 Sep 2018 12:13:23 +0300] rev 2344
use nice and pretty mono font in graphical languages (SFC, FBD, LD) as well

it looks like that was original idea, but some bug squashed in and
default font was used for POU.

at the same time fix use of mono font in the header of Variable panel
for SFC/FBD/LD POUs.

Tue, 25 Sep 2018 19:00:03 +0300Don't need to call extra _init_
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 25 Sep 2018 19:00:03 +0300] rev 2343
Don't need to call extra _init_

_init_ is already called for value in infos["elmt_type"]["initial"]().
Additional _init_() creates second set of child element and that
creates unusable xml project.
This regression cause by not well tested commit "Proper fix for error
'object has no attribute 'getSlave' in EtherCAT extension" (96ca6b056c55595f71bfaca9f54b9e8646460c23)

Tue, 25 Sep 2018 18:31:17 +0300Fix black background in preview window
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 25 Sep 2018 18:31:17 +0300] rev 2342
Fix black background in preview window

Problem found and fixed on GNU/Linux
wxWidgets 3.0 built with GTK3+ support and running on Xorg.

Tue, 25 Sep 2018 18:29:10 +0300Avoid division by zero in case width or height for page are not specified
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 25 Sep 2018 18:29:10 +0300] rev 2341
Avoid division by zero in case width or height for page are not specified

traceback:
File "/home/developer/WorkData/PLC/beremiz/beremiz/editors/Viewer.py", line 3755, in OnPaint
self.DoDrawing(dc)
File "/home/developer/WorkData/PLC/beremiz/beremiz/editors/Viewer.py", line 3723, in DoDrawing
for y in xrange(self.PageSize[1] - (ystart * SCROLLBAR_UNIT) % self.PageSize[1], int(window_size[1] / self.ViewScale[1]), self.PageSize[1]):
<type 'exceptions.ZeroDivisionError'>: integer division or modulo by zero

Wed, 21 Nov 2018 14:10:51 +0100IDManager: added import/export plus little cosmetic enhancements.
Edouard Tisserant [Wed, 21 Nov 2018 14:10:51 +0100] rev 2340
IDManager: added import/export plus little cosmetic enhancements.

Tue, 20 Nov 2018 11:32:42 +0100IDManager : refactored a bit, moved some code into PSKManagement.py. Now captures URI and PSK on new PYRO(S) and propose them when editing URI. Import/export still to be implemented.
Edouard Tisserant [Tue, 20 Nov 2018 11:32:42 +0100] rev 2339
IDManager : refactored a bit, moved some code into PSKManagement.py. Now captures URI and PSK on new PYRO(S) and propose them when editing URI. Import/export still to be implemented.

Mon, 19 Nov 2018 10:39:50 +0100Renaming servicetype into scheme.
Edouard Tisserant [Mon, 19 Nov 2018 10:39:50 +0100] rev 2338
Renaming servicetype into scheme.

Fri, 16 Nov 2018 14:04:51 +0100Added toolbar button to launch ID Manager dialog.
Edouard Tisserant [Fri, 16 Nov 2018 14:04:51 +0100] rev 2337
Added toolbar button to launch ID Manager dialog.

Fri, 16 Nov 2018 10:00:06 +0100Renamed IDManager control into IDBrowser, because dialog will be named IDManager
Edouard Tisserant [Fri, 16 Nov 2018 10:00:06 +0100] rev 2336
Renamed IDManager control into IDBrowser, because dialog will be named IDManager

Wed, 14 Nov 2018 14:09:18 +0100IDManager.py : finished selector mode.
Edouard Tisserant [Wed, 14 Nov 2018 14:09:18 +0100] rev 2335
IDManager.py : finished selector mode.

Wed, 14 Nov 2018 11:32:08 +0100Added early implementation of IDManager.py. For now only used to select ID in URIEditor
Edouard Tisserant [Wed, 14 Nov 2018 11:32:08 +0100] rev 2334
Added early implementation of IDManager.py. For now only used to select ID in URIEditor

Fri, 09 Nov 2018 13:26:06 +0100Path may contain spaces... sequel of d1359cb
Edouard Tisserant [Fri, 09 Nov 2018 13:26:06 +0100] rev 2333
Path may contain spaces... sequel of d1359cb

Thu, 08 Nov 2018 14:33:35 +0100'Merged' URI editor dialog and Discovery dialog, also clean up related code
Edouard Tisserant [Thu, 08 Nov 2018 14:33:35 +0100] rev 2332
'Merged' URI editor dialog and Discovery dialog, also clean up related code

Thu, 08 Nov 2018 11:20:35 +0100Cut more useless code from URI Editor
Edouard Tisserant [Thu, 08 Nov 2018 11:20:35 +0100] rev 2331
Cut more useless code from URI Editor

Thu, 08 Nov 2018 11:14:06 +0100URI Editor Dialog : moved it to /dialog, and fixed naming.
Edouard Tisserant [Thu, 08 Nov 2018 11:14:06 +0100] rev 2330
URI Editor Dialog : moved it to /dialog, and fixed naming.

Thu, 08 Nov 2018 09:39:06 +0100URI editor : Rewrote most of it, cleaner.
Edouard Tisserant [Thu, 08 Nov 2018 09:39:06 +0100] rev 2329
URI editor : Rewrote most of it, cleaner.

Tue, 30 Oct 2018 14:08:28 +0100PSK : Stunnel and/or OpenSSL (undocumented) handles PSK better without special chars, apparently
Edouard Tisserant [Tue, 30 Oct 2018 14:08:28 +0100] rev 2328
PSK : Stunnel and/or OpenSSL (undocumented) handles PSK better without special chars, apparently

Tue, 30 Oct 2018 13:47:24 +0100Prevent PLCObject to be imported from IDE as a side effect of importing runtime package
Edouard Tisserant [Tue, 30 Oct 2018 13:47:24 +0100] rev 2327
Prevent PLCObject to be imported from IDE as a side effect of importing runtime package

Tue, 30 Oct 2018 09:46:46 +0100WAMP : ensure that unicode string is passed for published events IDs
Edouard Tisserant [Tue, 30 Oct 2018 09:46:46 +0100] rev 2326
WAMP : ensure that unicode string is passed for published events IDs

Tue, 30 Oct 2018 09:45:47 +0100PYRO PSK: adjusted cipher and key length to be usable with openSSL 1.0.2k.
Edouard Tisserant [Tue, 30 Oct 2018 09:45:47 +0100] rev 2325
PYRO PSK: adjusted cipher and key length to be usable with openSSL 1.0.2k.

Mon, 29 Oct 2018 11:33:36 +0100Automatically get PSK and ID when connecting to PYRO[S], so that future connection through PYROS can use that same key. Also fixed case to UPPER for *PSK.
Edouard Tisserant [Mon, 29 Oct 2018 11:33:36 +0100] rev 2324
Automatically get PSK and ID when connecting to PYRO[S], so that future connection through PYROS can use that same key. Also fixed case to UPPER for *PSK.

Tue, 23 Oct 2018 16:19:20 +0200Runtime : Ensure that a random PSK secret compatible with stunnel is generated if -s commandline switch is used. Stunnel service is restarted after generation, using spawn_subprocess. TODO : give stunnel restart command as a commandline parameter.
Edouard Tisserant [Tue, 23 Oct 2018 16:19:20 +0200] rev 2323
Runtime : Ensure that a random PSK secret compatible with stunnel is generated if -s commandline switch is used. Stunnel service is restarted after generation, using spawn_subprocess. TODO : give stunnel restart command as a commandline parameter.

Tue, 23 Oct 2018 16:13:34 +0200Added runtime/spawn_subprocess.py. Force use posix spawn instead of fork, with API similar to subprocess. Using fork in runtime is incompatible with Xenomai, because memory is locked and this can lead to out of memory error.
Edouard Tisserant [Tue, 23 Oct 2018 16:13:34 +0200] rev 2322
Added runtime/spawn_subprocess.py. Force use posix spawn instead of fork, with API similar to subprocess. Using fork in runtime is incompatible with Xenomai, because memory is locked and this can lead to out of memory error.

Tue, 23 Oct 2018 13:36:07 +0200Small cosmetic change to enhance readability and avoid confusion.
Edouard Tisserant [Tue, 23 Oct 2018 13:36:07 +0200] rev 2321
Small cosmetic change to enhance readability and avoid confusion.

Tue, 23 Oct 2018 13:34:15 +0200Force Zeroconf to listen and answer only on interface specified with '-i' command line argument.
Edouard Tisserant [Tue, 23 Oct 2018 13:34:15 +0200] rev 2320
Force Zeroconf to listen and answer only on interface specified with '-i' command line argument.

Tue, 23 Oct 2018 13:31:26 +0200Useless __name__ == '__main__' tests.
Edouard Tisserant [Tue, 23 Oct 2018 13:31:26 +0200] rev 2319
Useless __name__ == '__main__' tests.

Mon, 22 Oct 2018 12:58:10 +0200Fixed PYRO's PSK_Adapter : monkey patching was breaking non-PSK protocol, and import ssl was missing.
Edouard Tisserant [Mon, 22 Oct 2018 12:58:10 +0200] rev 2318
Fixed PYRO's PSK_Adapter : monkey patching was breaking non-PSK protocol, and import ssl was missing.

Fri, 19 Oct 2018 13:34:52 +0200merge
Edouard Tisserant [Fri, 19 Oct 2018 13:34:52 +0200] rev 2317
merge

Fri, 19 Oct 2018 13:29:52 +0200Fix PYROPSK protocol configuration. After a few iteration of trial and error it appears that TSLv1 and PSK ciphers needs to be specified
Edouard Tisserant [Fri, 19 Oct 2018 13:29:52 +0200] rev 2316
Fix PYROPSK protocol configuration. After a few iteration of trial and error it appears that TSLv1 and PSK ciphers needs to be specified

Thu, 18 Oct 2018 18:37:01 +0200merge
Edouard Tisserant <edouard.tisserant@gmail.com> [Thu, 18 Oct 2018 18:37:01 +0200] rev 2315
merge

Thu, 18 Oct 2018 13:17:48 +0200PYRO/TLSPSK : must use PYROLOC* protocol scheme in pyro URI, otherwise object ID is missing. Had to use more persuasive pyro3 monkey patching to have PYROLOCPSK resolved properly
Edouard Tisserant [Thu, 18 Oct 2018 13:17:48 +0200] rev 2314
PYRO/TLSPSK : must use PYROLOC* protocol scheme in pyro URI, otherwise object ID is missing. Had to use more persuasive pyro3 monkey patching to have PYROLOCPSK resolved properly

Thu, 18 Oct 2018 11:01:14 +0200PYRO/TLSPSK : fixed typos, used appropriate ciphers (https://github.com/drbild/sslpsk/issues/3), use PYROPSK instead of unresolvable PYROLOCPSK.
Edouard Tisserant [Thu, 18 Oct 2018 11:01:14 +0200] rev 2313
PYRO/TLSPSK : fixed typos, used appropriate ciphers (https://github.com/drbild/sslpsk/issues/3), use PYROPSK instead of unresolvable PYROLOCPSK.

Mon, 15 Oct 2018 16:26:59 +0200Replaced PYROSSL with PYROPSK.
Edouard Tisserant [Mon, 15 Oct 2018 16:26:59 +0200] rev 2312
Replaced PYROSSL with PYROPSK.
Secrets are files named $ID.secret in project's /psk directory.
Connect with URI formated PYROPSK://host[:port]#ID

Mon, 15 Oct 2018 15:27:47 +0200Beremiz_service now binds both pyro and nevow ports to interface given with '-i' argument.
Edouard Tisserant [Mon, 15 Oct 2018 15:27:47 +0200] rev 2311
Beremiz_service now binds both pyro and nevow ports to interface given with '-i' argument.

Mon, 15 Oct 2018 15:24:52 +0200Fixed typo in Wampclient.py
Edouard Tisserant [Mon, 15 Oct 2018 15:24:52 +0200] rev 2310
Fixed typo in Wampclient.py

Wed, 03 Oct 2018 00:05:32 +0200Please pylint and pep8
Edouard Tisserant <edouard.tisserant@gmail.com> [Wed, 03 Oct 2018 00:05:32 +0200] rev 2309
Please pylint and pep8

Tue, 02 Oct 2018 15:57:26 +0200Merged
Edouard Tisserant [Tue, 02 Oct 2018 15:57:26 +0200] rev 2308
Merged

Tue, 02 Oct 2018 15:56:09 +0200Show more exceptions on stdout, particularly those that are raised by AutoLoad (first item in Main Thread worker)
Edouard Tisserant [Tue, 02 Oct 2018 15:56:09 +0200] rev 2307
Show more exceptions on stdout, particularly those that are raised by AutoLoad (first item in Main Thread worker)

Tue, 02 Oct 2018 15:52:11 +0200Some cleanup in WampClient and added functions that are usefull for extensions that need to use pub/sub.
Edouard Tisserant [Tue, 02 Oct 2018 15:52:11 +0200] rev 2306
Some cleanup in WampClient and added functions that are usefull for extensions that need to use pub/sub.

Wed, 12 Sep 2018 22:59:30 +0200Merged in Andrey's branch
Edouard Tisserant <edouard.tisserant@gmail.com> [Wed, 12 Sep 2018 22:59:30 +0200] rev 2305
Merged in Andrey's branch

Fri, 07 Sep 2018 20:58:13 +0000Merged in yegorich/beremiz/py3-fix (pull request #36)
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 07 Sep 2018 20:58:13 +0000] rev 2304
Merged in yegorich/beremiz/py3-fix (pull request #36)

Use Python 3 compatible syntax for exceptions

Fri, 07 Sep 2018 09:24:52 +0200Use Python 3 compatible syntax for exceptions py3-fix
Yegor Yefremov <yegorslists@googlemail.com> [Fri, 07 Sep 2018 09:24:52 +0200] rev 2303
Use Python 3 compatible syntax for exceptions

Wed, 29 Aug 2018 18:58:51 +0300Fix non-usable toolbar on wxPython with GTK3+ in PLCOpenEditor
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 29 Aug 2018 18:58:51 +0300] rev 2302
Fix non-usable toolbar on wxPython with GTK3+ in PLCOpenEditor

this problem is related to 'Fix non-usable toolbar on wxPython with
GTK3+' (5927710b). This problem does not happen in Beremiz because
additional necessary self.AUIManager.Update() is called
BeremizIDE. Therefore minimal change in the mentioned commit was
enough for Beremiz, but is not enough for PLCOpenEditor.

Wed, 29 Aug 2018 18:53:02 +0300Avoid usage of localized strings before initialization during import in many modules
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 29 Aug 2018 18:53:02 +0300] rev 2301
Avoid usage of localized strings before initialization during import in many modules

This happens if import is done before i18n setup
(InstallLocalRessources()).
This affects PLCOpenEditor mostly. Beremiz IDE is free from this issue, but moving
initialization from import should make modules more robust.
Otherwise execution result depends on where and when import was done
and this is not a good thing.

Some modules (ConfigTreeNode, features, CodeFileEditor related
classes) still have this, but they are used only in Beremiz.
Most problems result in non-working internatialization.
In some cases (VariablePanel) there is backtrace, because localized
key is not found in non-localized dictionary.

Tue, 28 Aug 2018 18:06:30 +0300Remove executable bit from source files where it's not needed.
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 28 Aug 2018 18:06:30 +0300] rev 2300
Remove executable bit from source files where it's not needed.

Tue, 28 Aug 2018 17:19:13 +0300Avoid dictionary initialization during import in PouDialog
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 28 Aug 2018 17:19:13 +0300] rev 2299
Avoid dictionary initialization during import in PouDialog

Because initialization happened before i18n setup, then it causes later
problems during creating new POU on non-English locales (Russian for example).

Traceback (most recent call last):
File "/home/developer/WorkData/PLC/beremiz/beremiz/IDEFrame.py", line 2332, in OnAddPouMenu
dialog = PouDialog(self, pou_type, type_readonly)
File "/home/developer/WorkData/PLC/beremiz/beremiz/dialogs/PouDialog.py", line 101, in __init__
self.RefreshLanguage()
File "/home/developer/WorkData/PLC/beremiz/beremiz/dialogs/PouDialog.py", line 154, in RefreshLanguage
if language != "SFC" or PouDialog.POU_TYPES_DICT[self.PouType.GetStringSelection()] != "function":
KeyError: u'\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430'

Mon, 27 Aug 2018 12:06:24 +0300Increase size of comment block in WAMP example, so all information is visible
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 27 Aug 2018 12:06:24 +0300] rev 2298
Increase size of comment block in WAMP example, so all information is visible

Fri, 24 Aug 2018 13:41:43 +0300Proper fix for error 'object has no attribute 'getSlave' in EtherCAT extension
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 24 Aug 2018 13:41:43 +0300] rev 2297
Proper fix for error 'object has no attribute 'getSlave' in EtherCAT extension

traceback:
File "/home/developer/WorkData/PLC/beremiz/beremiz/IDEFrame.py", line 1433, in OnPouSelectedChanged
window.RefreshView()
File "/home/developer/WorkData/PLC/beremiz/beremiz/etherlab/ConfigEditor.py", line 837, in RefreshView
self.RefreshProcessVariables()
File "/home/developer/WorkData/PLC/beremiz/beremiz/etherlab/ConfigEditor.py", line 886, in RefreshProcessVariables
slaves = self.Controler.GetSlaves(**self.CurrentNodesFilter)
File "/home/developer/WorkData/PLC/beremiz/beremiz/etherlab/EthercatMaster.py", line 341, in GetSlaves
for slave in self.Config.getConfig().getSlave():
<type 'exceptions.AttributeError'>:_'lxml.etree._Element'_object_has_no_attribute_'getSlave'

Steps to reproduce problem:

- Add new EtherCAT master
- Add new EthercatNode to the master
- double click on


Revert commit "Dirty fix for error '_object_has_no_attribute_'getSlave' in EtherCAT extension"
[a3ac46366b86a0b237dac93be6b2281ac70b98a8].

The problem was that XML elements (proxy object) in some cases were created using custom XML
classes constructors and lxml.etree.Element() call and live python
patching. This causes that lxml backend doesn't know that custom python class
should be used for these XML elements.
Proxy object can be move/deleted and recreated by lxml
backend at any point in time or this can be done in python by copy/deepcopy operations.
If this happens, then newly created
proxy elements are using default class lxml.etree._Element. And all
custom functionality is lost.

All created XML elements should be always created through corresponding
parser and class lookup callback done by lxml backend.
It's described in more details in lxml documentation:
https://lxml.de/element_classes.html

Fri, 24 Aug 2018 13:25:05 +0300Make comment blocks in examples slightly bigger so text inside is always visible
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 24 Aug 2018 13:25:05 +0300] rev 2296
Make comment blocks in examples slightly bigger so text inside is always visible

Tue, 21 Aug 2018 13:05:23 +0300Separate application tests and code-style checking in different steps in bitbucket-pipelines
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 21 Aug 2018 13:05:23 +0300] rev 2295
Separate application tests and code-style checking in different steps in bitbucket-pipelines

Mon, 20 Aug 2018 17:11:20 +0300Make Beremiz_service print version information
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 20 Aug 2018 17:11:20 +0300] rev 2294
Make Beremiz_service print version information

Add support for long options '--help' and '--version' as
is recommended by GNU Coding Standards.

Mon, 20 Aug 2018 16:46:50 +0300leave execute permissions only on Beremiz.py, Beremiz_serivce.py and PLCOpenEditor.py
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 20 Aug 2018 16:46:50 +0300] rev 2293
leave execute permissions only on Beremiz.py, Beremiz_serivce.py and PLCOpenEditor.py

Mon, 20 Aug 2018 15:48:06 +0300Update requirements to include WAMP support
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 20 Aug 2018 15:48:06 +0300] rev 2292
Update requirements to include WAMP support

Mon, 20 Aug 2018 15:17:24 +0300Use static library for Modbus
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 20 Aug 2018 15:17:24 +0300] rev 2291
Use static library for Modbus

It makes easier deployment of projects with Modbus (similar to BACnet implementation)

Thu, 16 Aug 2018 16:29:06 +0300Cleanup WAMP example
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 16 Aug 2018 16:29:06 +0300] rev 2290
Cleanup WAMP example

Closes #39

Thu, 16 Aug 2018 13:42:18 +0300Update README for WAMP example to use crossbar with python3
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 16 Aug 2018 13:42:18 +0300] rev 2289
Update README for WAMP example to use crossbar with python3

crossbar python2 support is broken in v18.7.2.
I've submitted with fixes for that.
https://github.com/crossbario/crossbar/pull/1376

But they don't test crossbar with python2 in CI, so it's going to be
broken again in the future.
And there is no much reason to use crossbar with python2.

Thu, 16 Aug 2018 11:01:54 +0300Make ID in WAMP project match with ID PLC runtime.
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 16 Aug 2018 11:01:54 +0300] rev 2288
Make ID in WAMP project match with ID PLC runtime.

See project_files/wampconf.json. ID for runtime is "wamptest". The
same id should be used in project's location URI: WAMP://127.0.0.1:8888#Automation#wamptest

Thu, 16 Aug 2018 10:53:54 +0300Fix SetServer method in WAMP
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 16 Aug 2018 10:53:54 +0300] rev 2287
Fix SetServer method in WAMP

Thu, 16 Aug 2018 10:52:20 +0300Remove non-existed PLCObject method 'ForceReload'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 16 Aug 2018 10:52:20 +0300] rev 2286
Remove non-existed PLCObject method 'ForceReload'

Tue, 14 Aug 2018 17:00:01 +0300remote execute permissions from README file
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 14 Aug 2018 17:00:01 +0300] rev 2285
remote execute permissions from README file

Mon, 13 Aug 2018 18:29:07 +0300Fix wxHMI example after upgrading wxGlade
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 13 Aug 2018 18:29:07 +0300] rev 2284
Fix wxHMI example after upgrading wxGlade

Newer wxGlade generates code to initialize GridSizer's with empty
elements.

...
grid_sizer_1.Add(self.window_1, 1, wx.ALIGN_CENTER, 0)
sizer_2.Add((0, 0), 0, 0, 0)
sizer_2.Add((0, 0), 0, 0, 0)
sizer_2.Add((0, 0), 0, 0, 0)
sizer_2.Add((0, 0), 0, 0, 0)
...

That causes following traceback, if new buttons are added
to already full sizer.

PLCobject : Traceback (most recent call last):

File "./Beremiz_service.py", line 389, in default_evaluator
res = (tocall(*args, **kwargs), None)

File "/tmp/tmpQS8ct2/runtime_0.py", line 540, in _runtime_0_start
wx.MessageBox(_("Please stop PLC to close"))

File "/tmp/tmpQS8ct2/runtime_0.py", line 504, in Init
lambda axis:( MakeButtonFunc(self, sizer, axis+"axisMinus"),

File "/tmp/tmpQS8ct2/runtime_0.py", line 502, in <lambda>
lambda btname: MakeButtonFunc(self, sizer, btname), ActionButtons)

File "/tmp/tmpQS8ct2/runtime_0.py", line 461, in MakeButtonFunc
print sizer, btname

File "/usr/lib/python2.7/dist-packages/wx-3.0-gtk3/wx/_core.py", line 14453, in Add
return _core_.Sizer_Add(*args, **kwargs)

PyAssertionError: C++ assertion "Assert failure" failed at
../src/common/sizer.cpp(1401) in DoInsert(): too many items (11 > 2*5)
in grid sizer (maybe you should omit the number of either rows or
columns?)


Tested with wxGlade version 0.8.3
Closes #41

Mon, 13 Aug 2018 18:21:10 +0300Remove useless print statement from wxHMI GUI code
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 13 Aug 2018 18:21:10 +0300] rev 2283
Remove useless print statement from wxHMI GUI code

It's py3k incompatible.

Mon, 13 Aug 2018 18:19:17 +0300Rename extension instance 'wxHMI' to 'wxglade_hmi'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 13 Aug 2018 18:19:17 +0300] rev 2282
Rename extension instance 'wxHMI' to 'wxglade_hmi'

It is necessary because of following commit 7f59aa398669 ('WxGlade HMI extension now does
only instanciate wx object who's name match extension's name. If no
object match the name and no code is provided in 'start' user python
code section, then a warning is issued')

Mon, 13 Aug 2018 18:05:16 +0300Remove backup .bak files
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 13 Aug 2018 18:05:16 +0300] rev 2281
Remove backup .bak files

Mon, 13 Aug 2018 11:33:30 +0300Drop EtherCAT examples, because they are non-functional without releasing motion control library
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 13 Aug 2018 11:33:30 +0300] rev 2280
Drop EtherCAT examples, because they are non-functional without releasing motion control library

Closes #38

Fri, 10 Aug 2018 18:07:38 +0300merge
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 10 Aug 2018 18:07:38 +0300] rev 2279
merge

Fri, 10 Aug 2018 17:45:33 +0300Dirty fix for error '_object_has_no_attribute_'getSlave' in EtherCAT extension
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 10 Aug 2018 17:45:33 +0300] rev 2278
Dirty fix for error '_object_has_no_attribute_'getSlave' in EtherCAT extension

traceback:
File "/home/developer/WorkData/PLC/beremiz/beremiz/IDEFrame.py", line 1433, in OnPouSelectedChanged
window.RefreshView()
File "/home/developer/WorkData/PLC/beremiz/beremiz/etherlab/ConfigEditor.py", line 837, in RefreshView
self.RefreshProcessVariables()
File "/home/developer/WorkData/PLC/beremiz/beremiz/etherlab/ConfigEditor.py", line 886, in RefreshProcessVariables
slaves = self.Controler.GetSlaves(**self.CurrentNodesFilter)
File "/home/developer/WorkData/PLC/beremiz/beremiz/etherlab/EthercatMaster.py", line 341, in GetSlaves
for slave in self.Config.getConfig().getSlave():
<type 'exceptions.AttributeError'>:_'lxml.etree._Element'_object_has_no_attribute_'getSlave'

Steps to reproduce problem:

- Add new EtherCAT master
- Add new EthercatNode to the master
- double click on


this is looks like dirty hack to fix strange problem with initial[0]
changing its type after returning from _init_ method to lxml.etree._Element
As a result all methods generated by class factory are lost.

For example, in function initMethod initial[0].__class__ points to
xmlclass.xmlclass.Config. After map(self.append, initial)
self.Config.__class__ is 'xmlclass.xmlclass.Config' as well.
But after returning from initMethod (_init) in CreateElement
self.Config.__class__ has changed to lxml.etree._Element.


I've noticed similar behavior if copy/deepcopy is used for any child
of etree.ElementBase. See simple example below.
[-------------------------------------------------------------]
#!/usr/bin/python

from __future__ import print_function
from lxml import etree
import copy

class DefaultElementClass(etree.ElementBase):
def getLocalTag(self):
return etree.QName(self.tag).localname


def printInformation(x):
print(x, x.__class__, "getLocalTag" in dir(x))


a = DefaultElementClass()
printInformation(a)

#
printInformation(copy.copy(a))
printInformation(copy.deepcopy(a))
[-------------------------------------------------------------]

Fri, 10 Aug 2018 15:58:40 +0300Fix wrong ST code generation in case of several coils connected to each other.
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 10 Aug 2018 15:58:40 +0300] rev 2277
Fix wrong ST code generation in case of several coils connected to each other.


For example,
|---|Var0|----(Var1)--(Var2)---|

Closes #32

Thu, 09 Aug 2018 14:00:14 +0300Update README with instruction to build BACnet library for BACnet support
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 09 Aug 2018 14:00:14 +0300] rev 2276
Update README with instruction to build BACnet library for BACnet support

Thu, 09 Aug 2018 13:58:47 +0300Improve fix wrong code generation if EN/ENO are used in FBD/LD/SFC
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 09 Aug 2018 13:58:47 +0300] rev 2275
Improve fix wrong code generation if EN/ENO are used in FBD/LD/SFC

Commit c9915bc6 "Fix wrong code generation if EN/ENO are used in
FBD/LD/SFC" caused following backtrace in some cases:

File "/home/developer/WorkData/PLC/beremiz/beremiz/PLCGenerator.py", line 476, in GenerateProgram
self.GeneratePouProgram(pou_name)
File "/home/developer/WorkData/PLC/beremiz/beremiz/PLCGenerator.py", line 258, in GeneratePouProgram
program = pou_program.GenerateProgram(pou)
File "/home/developer/WorkData/PLC/beremiz/beremiz/PLCGenerator.py", line 1713, in GenerateProgram
self.ComputeProgram(pou)
File "/home/developer/WorkData/PLC/beremiz/beremiz/PLCGenerator.py", line 997, in ComputeProgram
eno_var = self.GetUsedEno(body, connections)
File "/home/developer/WorkData/PLC/beremiz/beremiz/PLCGenerator.py", line 929, in GetUsedEno
for invar in blk.inputVariables.getvariable():
File "/home/developer/WorkData/PLC/beremiz/beremiz/xmlclass/xmlclass.py", line 1363, in getattrMethod
return DefaultElementClass.__getattribute__(self, name)
<type 'exceptions.AttributeError'>: 'inOutVariable' object has no attribute 'inputVariables'

Wed, 01 Aug 2018 14:09:12 +0300Load images for EtherCAT extension
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 01 Aug 2018 14:09:12 +0300] rev 2274
Load images for EtherCAT extension

Fixes following backtrace:

Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/wx-3.0-gtk3/wx/_core.py", line 16765, in <lambda>
lambda event: event.callable(*event.args, **event.kw) )
File "/home/developer/WorkData/PLC/beremiz/beremiz/BeremizIDE.py", line 1074, in AddConfNode
self._Refresh(TITLE, FILEMENU, PROJECTTREE)
File "/home/developer/WorkData/PLC/beremiz/beremiz/IDEFrame.py", line 917, in _Refresh
self.RefreshFunctions[element]()
File "/home/developer/WorkData/PLC/beremiz/beremiz/IDEFrame.py", line 1526, in RefreshProjectTree
self.GenerateProjectTreeBranch(root, infos)
File "/home/developer/WorkData/PLC/beremiz/beremiz/IDEFrame.py", line 1565, in GenerateProjectTreeBranch
self.GenerateProjectTreeBranch(item, values)
File "/home/developer/WorkData/PLC/beremiz/beremiz/IDEFrame.py", line 1554, in GenerateProjectTreeBranch
self.TreeImageDict[icon_name] = self.TreeImageList.Add(GetBitmap(icon_name))
File "/usr/lib/python2.7/dist-packages/wx-3.0-gtk3/wx/_gdi.py", line 6735, in Add
return _gdi_.ImageList_Add(*args, **kwargs)
ValueError: invalid null reference in method 'ImageList_Add', expected argument 2 of type 'wxBitmap const &

Wed, 12 Sep 2018 11:36:50 +0200Flush standard output when runtime ready, so that IDE knows it, and can continue connection to LOCAL:// uri
Edouard Tisserant [Wed, 12 Sep 2018 11:36:50 +0200] rev 2273
Flush standard output when runtime ready, so that IDE knows it, and can continue connection to LOCAL:// uri

Tue, 11 Sep 2018 16:08:21 +0200Change behaviour of python_eval function block : if TRIG is false, then ACK is also false except a pulse precisely when receiving answer from interpreter
Edouard Tisserant [Tue, 11 Sep 2018 16:08:21 +0200] rev 2272
Change behaviour of python_eval function block : if TRIG is false, then ACK is also false except a pulse precisely when receiving answer from interpreter

Wed, 05 Sep 2018 12:58:41 +0200Removed useless condition in Worker.py that was allowing misfit non-serialized call when worker still not running its loop.
Edouard Tisserant [Wed, 05 Sep 2018 12:58:41 +0200] rev 2271
Removed useless condition in Worker.py that was allowing misfit non-serialized call when worker still not running its loop.

Tue, 21 Aug 2018 16:11:02 +0200Refactoring. Separated PLC Object, PYRO Server and MainWorker :
Edouard Tisserant [Tue, 21 Aug 2018 16:11:02 +0200] rev 2270
Refactoring. Separated PLC Object, PYRO Server and MainWorker :
- PLC Object is now a Singleton, instantiated through runtime.CreatePLCObjectSingleton(...)
- Pyro server doesn't hold any reference to PLCObject, and doesn't create it anymore
- PLC Object class doesn't inherit from Pyro.ObjBase anymore
- Pyro related code moved to runtime.PyroServer.py
- MainWorker class moved to runtime/Worker.py
- Both PLC Object and MainWorker creation happens in runtime/__init__.py

Thu, 16 Aug 2018 11:22:40 +0200Fixed new code-generation code, that was making exception with simple variable-to-variable assignments.
Edouard Tisserant [Thu, 16 Aug 2018 11:22:40 +0200] rev 2269
Fixed new code-generation code, that was making exception with simple variable-to-variable assignments.

Tue, 14 Aug 2018 13:10:15 +0200BACnet : Fixed missing header include in server.c introduced in 37ef7a3c6b8b
Edouard Tisserant [Tue, 14 Aug 2018 13:10:15 +0200] rev 2268
BACnet : Fixed missing header include in server.c introduced in 37ef7a3c6b8b

Tue, 14 Aug 2018 12:43:43 +0200merged
Edouard Tisserant [Tue, 14 Aug 2018 12:43:43 +0200] rev 2267
merged

Tue, 14 Aug 2018 11:14:20 +0200NevowServer : Added minimalist css style customization and a link to go to settings page and back
dporopat <denis.poropat@smarteh.si> [Tue, 14 Aug 2018 11:14:20 +0200] rev 2266
NevowServer : Added minimalist css style customization and a link to go to settings page and back

Mon, 13 Aug 2018 15:00:51 +0200fixed setServer call in WampClient module. Was doing nothing because _PySrv wasn't global.
Edouard Tisserant [Mon, 13 Aug 2018 15:00:51 +0200] rev 2265
fixed setServer call in WampClient module. Was doing nothing because _PySrv wasn't global.

Mon, 13 Aug 2018 14:58:59 +0200Removed now deprecated ForceReload from WAMP exposed calls
Edouard Tisserant [Mon, 13 Aug 2018 14:58:59 +0200] rev 2264
Removed now deprecated ForceReload from WAMP exposed calls

Mon, 13 Aug 2018 13:24:48 +0200fixed documentation bug
Edouard Tisserant [Mon, 13 Aug 2018 13:24:48 +0200] rev 2263
fixed documentation bug

Mon, 13 Aug 2018 13:24:28 +0200NevowServer : added addInfoString to allow extensions to declare some read-only strings to be displayed in settings. Also renamed addExtension in addSettings for clarity.
Edouard Tisserant [Mon, 13 Aug 2018 13:24:28 +0200] rev 2262
NevowServer : added addInfoString to allow extensions to declare some read-only strings to be displayed in settings. Also renamed addExtension in addSettings for clarity.

Mon, 13 Aug 2018 11:10:23 +0200fixed problems reported by certification testing : vendor identifier acces rights (now read only), and bvlc_maintenance timer was increasing too fast.
Mario de Sousa <msousa@fe.up.pt> [Mon, 13 Aug 2018 11:10:23 +0200] rev 2261
fixed problems reported by certification testing : vendor identifier acces rights (now read only), and bvlc_maintenance timer was increasing too fast.

Thu, 09 Aug 2018 09:07:09 +0200Some blank lines to make bitbucket's PEP8 2.2.0 happy
Edouard Tisserant [Thu, 09 Aug 2018 09:07:09 +0200] rev 2260
Some blank lines to make bitbucket's PEP8 2.2.0 happy

Wed, 08 Aug 2018 13:46:19 +0200merged Andrey's default
Edouard Tisserant [Wed, 08 Aug 2018 13:46:19 +0200] rev 2259
merged Andrey's default

Wed, 01 Aug 2018 13:09:45 +0300Fix wrong code generation if EN/ENO are used in FBD/LD/SFC
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 01 Aug 2018 13:09:45 +0300] rev 2258
Fix wrong code generation if EN/ENO are used in FBD/LD/SFC

This problem appears for example here

--------
------- | MOVE |
| MOVE1 |------|EN ENO|
------- | |
| |
------- | | -----------
| 23 |------|IN OUT|---| LocalVar0 |
------- -------- -----------


--------
------- | MOVE |
| MOVE2 |------|EN ENO|
------- | |
| |
------- | | -----------
| 15 |------|IN OUT|---| LocalVar0 |
------- -------- -----------

Before wrong code was generated for this case:

MOVE6_OUT := MOVE(EN := move1, IN := 23, ENO => MOVE6_ENO);
LocalVar0 := MOVE6_OUT;
MOVE4_OUT := MOVE(EN := move2, IN := 15, ENO => MOVE4_ENO);
LocalVar0 := MOVE4_OUT;

With this patch now following code is generated:

MOVE6_OUT := MOVE(EN := move1, IN := 23, ENO => MOVE6_ENO);
IF MOVE6_ENO THEN
LocalVar0 := MOVE6_OUT;
END_IF;
MOVE4_OUT := MOVE(EN := move2, IN := 15, ENO => MOVE4_ENO);
IF MOVE4_ENO THEN
LocalVar0 := MOVE4_OUT;
END_IF;


See discussion here:
https://sourceforge.net/p/beremiz/mailman/message/36378805/

Tue, 31 Jul 2018 14:17:41 +0300Fix flickering in debug panel
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 31 Jul 2018 14:17:41 +0300] rev 2257
Fix flickering in debug panel

This flickering made debug panel unusable, because most of the time
panel was white. This problem effects wxPython with GTK3+ backend
(at least on GNU/Linux systems).

Removed code IIUC draws box with content of moved debug variable, I
don't see any effect of it neither on GNU/Linux nor on Windows. It
should be safe to remove.

Mon, 30 Jul 2018 19:28:39 +0300Fix non-usable toolbar on wxPython with GTK3+
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 30 Jul 2018 19:28:39 +0300] rev 2256
Fix non-usable toolbar on wxPython with GTK3+

On GNU/Linux if wxPython uses wxWidget with GTK3+ backend (this is
what most modern distributions do), then size of EditorToolBar was
always to store only one button.
This is because GetBestSize() is updated only after pane is shown and
updated.
The code does work correctly on python-wxgtk3.0 (gtk2 backend) on
GNU/Linux and with wxpython 2.8 on Windows.

Mon, 30 Jul 2018 19:02:36 +0300Fix problem with decreasing size of StatusToolBar when tools are removed from toolbar.
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 30 Jul 2018 19:02:36 +0300] rev 2255
Fix problem with decreasing size of StatusToolBar when tools are removed from toolbar.

StatusToolBar - toolbar with tool to build, clear, connect, ...
This problem appears only in python-wxgtk3.0. In python-wxgtk2.8 there
was not such problem.

If call StatusToolBar.SetMinSize(wx.DefaultSize), all is working, but
following warning message appears:

(Beremiz.py:15155): Gtk-WARNING **: 18:42:24.115: Negative content
width -6 (allocation 1, extents 4x3) while allocating gadget (node
toolbar, owner GtkToolbar)

To avoid that StatusToolBar.GetToolBitmapSize() is used instead of wx.DefaultSize

Sun, 29 Jul 2018 02:00:03 +0300Add BACnet example
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sun, 29 Jul 2018 02:00:03 +0300] rev 2254
Add BACnet example

Fri, 27 Jul 2018 22:01:10 +0000Rework README.md, add examples section, add instructions for Modbus extension, more information about runtime.
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 27 Jul 2018 22:01:10 +0000] rev 2253
Rework README.md, add examples section, add instructions for Modbus extension, more information about runtime.

Fri, 27 Jul 2018 15:44:20 +0300Add Modbus example
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 27 Jul 2018 15:44:20 +0300] rev 2252
Add Modbus example

Wed, 08 Aug 2018 13:27:44 +0200Disable source quality checking on ethercat plugin - will fix it later
Edouard Tisserant [Wed, 08 Aug 2018 13:27:44 +0200] rev 2251
Disable source quality checking on ethercat plugin - will fix it later

Wed, 08 Aug 2018 13:26:48 +0200Passed bacnet*.py through autopep8, and attemped to fix manually what went wrong + fixed pylint complains
Edouard Tisserant [Wed, 08 Aug 2018 13:26:48 +0200] rev 2250
Passed bacnet*.py through autopep8, and attemped to fix manually what went wrong + fixed pylint complains

Wed, 08 Aug 2018 10:17:19 +0200More pylint+pep8 conformance
Edouard Tisserant [Wed, 08 Aug 2018 10:17:19 +0200] rev 2249
More pylint+pep8 conformance

Wed, 08 Aug 2018 10:15:51 +0200autopep8 + hand made fixes on ProjectController.py runtime/WampClient.py wxglade_hmi/wxglade_hmi.py
Edouard Tisserant [Wed, 08 Aug 2018 10:15:51 +0200] rev 2248
autopep8 + hand made fixes on ProjectController.py runtime/WampClient.py wxglade_hmi/wxglade_hmi.py

Tue, 07 Aug 2018 13:35:28 +0200pylint on runtime/NevowServer.py
Edouard Tisserant [Tue, 07 Aug 2018 13:35:28 +0200] rev 2247
pylint on runtime/NevowServer.py

Mon, 06 Aug 2018 15:36:09 +0200pep8 on runtime/NevowServer.py
Edouard Tisserant [Mon, 06 Aug 2018 15:36:09 +0200] rev 2246
pep8 on runtime/NevowServer.py

Mon, 06 Aug 2018 14:30:43 +0200merged
Edouard Tisserant [Mon, 06 Aug 2018 14:30:43 +0200] rev 2245
merged

Mon, 06 Aug 2018 13:14:50 +0200Make some POU libraries selected by default or not. This changes structure of features.libraries, please check and update your extensions if they use libraries
Edouard Tisserant [Mon, 06 Aug 2018 13:14:50 +0200] rev 2244
Make some POU libraries selected by default or not. This changes structure of features.libraries, please check and update your extensions if they use libraries

Wed, 04 Jul 2018 17:47:38 +0300remove useless code
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 04 Jul 2018 17:47:38 +0300] rev 2243
remove useless code

1. hotkey is already defined in menu string
2. remove duplicated code

Wed, 04 Jul 2018 16:41:02 +0300Add full screen mode (menu and title are hidden)
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 04 Jul 2018 16:41:02 +0300] rev 2242
Add full screen mode (menu and title are hidden)

It's can be switched by pressing Shift-F12 or by clicking button on the toolbar

Tue, 03 Jul 2018 17:09:11 +0300Add information how to make shelve command work with check_source.sh called from hg hook
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 03 Jul 2018 17:09:11 +0300] rev 2241
Add information how to make shelve command work with check_source.sh called from hg hook

and added coresponding flag handling in check_source.sh

Fri, 29 Jun 2018 17:53:57 +0300Automatically increment IEC-location address if copy of the variable is created
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 29 Jun 2018 17:53:57 +0300] rev 2240
Automatically increment IEC-location address if copy of the variable is created

Fri, 29 Jun 2018 15:36:34 +0300Make information about translation to be in unicode
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 29 Jun 2018 15:36:34 +0300] rev 2239
Make information about translation to be in unicode

This is necessary because some translator's names contains non-ASCII
characters and they are not handled properly in about dialog on Windows

Fri, 29 Jun 2018 13:40:11 +0300Take plcopen_icons.svg as source of png icons as well
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 29 Jun 2018 13:40:11 +0300] rev 2238
Take plcopen_icons.svg as source of png icons as well

generate poe.ico from png images of different sizes.

Fri, 29 Jun 2018 13:36:32 +0300Add 256x256 and 64x64 Beremiz icons
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 29 Jun 2018 13:36:32 +0300] rev 2237
Add 256x256 and 64x64 Beremiz icons


remove svg:midPointStop tags from icons.svg, because Inkscape
complained about unsupported tag. It seems that these tags were made
by Adobe Illustrator and aren't supported by any other app.

Fri, 29 Jun 2018 13:30:39 +0300Add PLCOpenEditor icon to plcopen_icons.svg
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 29 Jun 2018 13:30:39 +0300] rev 2236
Add PLCOpenEditor icon to plcopen_icons.svg

add 256x256 size to the icon

Wed, 27 Jun 2018 18:13:31 +0300Fix rounding of thousandths of microseconds in duration editor
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 27 Jun 2018 18:13:31 +0300] rev 2235
Fix rounding of thousandths of microseconds in duration editor

Wed, 27 Jun 2018 17:13:06 +0300Add checking value in microseconds field in duration editor dialog
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 27 Jun 2018 17:13:06 +0300] rev 2234
Add checking value in microseconds field in duration editor dialog

Wed, 27 Jun 2018 13:57:03 +0300Catch 'clipboard already open' errors in editors
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 27 Jun 2018 13:57:03 +0300] rev 2233
Catch 'clipboard already open' errors in editors

Apparently following commits have not fixed the problem completely,
because it still happens (although not so often).

changeset: 2019:b8f795bdfe9f
user: Andrey Skvortsov <andrej.skvortzov@gmail.com>
date: Fri May 25 17:40:29 2018 +0300
summary: fix hangs on mouse selection in case if wxPython uses wxWidgets with GTK3+ support

changeset: 2018:5ce6d08ff2c7
user: Andrey Skvortsov <andrej.skvortzov@gmail.com>
date: Fri May 25 17:23:15 2018 +0300
summary: make clipboard open minimal time as wxPython documentation recommends

Wed, 27 Jun 2018 10:58:45 +0300If task type is changed from 'interrupt' to 'cyclic' init interval with T#20ms.
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 27 Jun 2018 10:58:45 +0300] rev 2232
If task type is changed from 'interrupt' to 'cyclic' init interval with T#20ms.

Tue, 26 Jun 2018 18:02:51 +0300Explicitly enable required libraries in test projects
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 26 Jun 2018 18:02:51 +0300] rev 2231
Explicitly enable required libraries in test projects

Tue, 26 Jun 2018 17:46:37 +0300Disable by default unlisted in project beremiz.xml libraries
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 26 Jun 2018 17:46:37 +0300] rev 2230
Disable by default unlisted in project beremiz.xml libraries

Used libraries should be explicitly enabled.

Tue, 26 Jun 2018 17:34:15 +0300Fix 'DoGetTextExtent - invalid DC' error
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 26 Jun 2018 17:34:15 +0300] rev 2229
Fix 'DoGetTextExtent - invalid DC' error

most likely this error happens only on certain wx backends.
GTK3+ on GNU/Linux is apparently one of them.
The problem is described in wxWidgets issue tracker.
http://trac.wxwidgets.org/ticket/12486

[-------------------------------------------------------------------------------------------------------------------]
platform:
Linux-4.16.0-2-rt-amd64-x86_64-with-debian-buster-sid

python-version:
2.7.15

traceback:
File "/home/developer/WorkData/PLC/beremiz/beremiz/ProjectController.py", line 1605, in DispatchDebugValuesProc
self.CallWeakcallables("__tick__", "NewDataAvailable", debug_ticks)
File "/home/developer/WorkData/PLC/beremiz/beremiz/ProjectController.py", line 1585, in CallWeakcallables
function(*cargs)
File "/home/developer/WorkData/PLC/beremiz/beremiz/editors/Viewer.py", line 1217, in NewDataAvailable
refresh_rect.Union(element.GetRedrawRect())
File "/home/developer/WorkData/PLC/beremiz/beremiz/graphics/GraphicCommons.py", line 1609, in GetRedrawRect
self.ValueSize = self.Parent.GetMiniTextExtent(self.ComputedValue)
File "/home/developer/WorkData/PLC/beremiz/beremiz/editors/Viewer.py", line 932, in GetMiniTextExtent
return self.MiniTextDC.GetTextExtent(text)
File "/usr/lib/python2.7/dist-packages/wx-3.0-gtk3/wx/_gdi.py", line 4127, in GetTextExtent
return _gdi_.DC_GetTextExtent(*args, **kwargs)
<class 'wx._core.PyAssertionError'>: C++ assertion "m_graphicContext" failed at ../src/common/dcgraph.cpp(1160) in DoGetTextExtent(): wxGCDC(cg)::DoGetTextExtent - invalid DC

wx-platform:
__WXGTK__

wx-version:
3.0.2.0

[-------------------------------------------------------------------------------------------------------------------]

traceback:
File "/home/developer/WorkData/PLC/beremiz/beremiz/controls/LogViewer.py", line 740, in OnMessageToolTipTimer
self.MessageToolTip.SetFont(self.Font)
File "/home/developer/WorkData/PLC/beremiz/beremiz/controls/CustomToolTip.py", line 75, in SetFont
self.RefreshTip()
File "/home/developer/WorkData/PLC/beremiz/beremiz/controls/CustomToolTip.py", line 158, in RefreshTip
self.SetClientSize(self.GetToolTipSize())
File "/home/developer/WorkData/PLC/beremiz/beremiz/controls/CustomToolTip.py", line 145, in GetToolTipSize
w, h = dc.GetTextExtent(line)
File "/usr/lib/python2.7/dist-packages/wx-3.0-gtk3/wx/_gdi.py", line 4127, in GetTextExtent
return _gdi_.DC_GetTextExtent(*args, **kwargs)
<class 'wx._core.PyAssertionError'>: C++ assertion "m_graphicContext" failed at ../src/common/dcgraph.cpp(1160) in DoGetTextExtent(): wxGCDC(cg)::DoGetTextExtent - invalid DC

[-------------------------------------------------------------------------------------------------------------------]

Tue, 26 Jun 2018 14:48:44 +0300Fix size of ProjectDialog used by PLCOpenEditor
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 26 Jun 2018 14:48:44 +0300] rev 2228
Fix size of ProjectDialog used by PLCOpenEditor

Disable scrolling for ProjectDialog, because otherwise very very small
windows is created.
This regression was introduced by 5701225 ("replaced normal panel with scrolled panel under project
properties").

Tue, 26 Jun 2018 10:37:36 +0300Fix some compilation warnings for better ANSI C compliance
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 26 Jun 2018 10:37:36 +0300] rev 2227
Fix some compilation warnings for better ANSI C compliance

Fri, 20 Jul 2018 11:10:42 +0200Customizable columns in VariableTables (i.e. can be monkey patched properly)
Edouard Tisserant [Fri, 20 Jul 2018 11:10:42 +0200] rev 2226
Customizable columns in VariableTables (i.e. can be monkey patched properly)

Fri, 20 Jul 2018 11:05:17 +0200Merged
Edouard Tisserant [Fri, 20 Jul 2018 11:05:17 +0200] rev 2225
Merged

Thu, 19 Jul 2018 13:32:27 +0200Customizable update of toolbar buttons (i.e. 'methods') according to PLCStatus nevow_service_rework
Edouard Tisserant [Thu, 19 Jul 2018 13:32:27 +0200] rev 2224
Customizable update of toolbar buttons (i.e. 'methods') according to PLCStatus

Fri, 13 Jul 2018 09:06:01 +0200Fixed small typo in error message. nevow_service_rework
Edouard Tisserant [Fri, 13 Jul 2018 09:06:01 +0200] rev 2223
Fixed small typo in error message.

Thu, 12 Jul 2018 09:35:09 +0200WAMP : complains about failure to start WAMP only if it was successfully imported. nevow_service_rework
Edouard Tisserant [Thu, 12 Jul 2018 09:35:09 +0200] rev 2222
WAMP : complains about failure to start WAMP only if it was successfully imported.

Wed, 11 Jul 2018 14:32:19 +0200WAMP: now config and secret given in project files always override those given in commandline. Also made extensions web customisations happen before registration of web interface. nevow_service_rework
Edouard Tisserant [Wed, 11 Jul 2018 14:32:19 +0200] rev 2221
WAMP: now config and secret given in project files always override those given in commandline. Also made extensions web customisations happen before registration of web interface.

Tue, 10 Jul 2018 12:54:05 +0200Moved Wamp configuration file selection logic into runtime/wampclient.py. Added Wamp CRA secret file upload and download. Slightly reworked code for config and secret file loading and saving. nevow_service_rework
Edouard Tisserant [Tue, 10 Jul 2018 12:54:05 +0200] rev 2220
Moved Wamp configuration file selection logic into runtime/wampclient.py. Added Wamp CRA secret file upload and download. Slightly reworked code for config and secret file loading and saving.

Tue, 10 Jul 2018 12:51:28 +0200Added a way for extension to register dedicated URL under settings page URL (i.e. /settings/something) nevow_service_rework
Edouard Tisserant [Tue, 10 Jul 2018 12:51:28 +0200] rev 2219
Added a way for extension to register dedicated URL under settings page URL (i.e. /settings/something)

Fri, 06 Jul 2018 15:09:44 +0200Fixed a bit of everything in WAMP, and added web settings for that same extension. nevow_service_rework
Edouard Tisserant [Fri, 06 Jul 2018 15:09:44 +0200] rev 2218
Fixed a bit of everything in WAMP, and added web settings for that same extension.

Fri, 06 Jul 2018 15:07:40 +0200Added some immutable field (platform) in default runtime web setting page, for the example. nevow_service_rework
Edouard Tisserant [Fri, 06 Jul 2018 15:07:40 +0200] rev 2217
Added some immutable field (platform) in default runtime web setting page, for the example.

Fri, 06 Jul 2018 15:05:03 +0200Fix misc typos in exception handling code. nevow_service_rework
Edouard Tisserant [Fri, 06 Jul 2018 15:05:03 +0200] rev 2216
Fix misc typos in exception handling code.

Thu, 05 Jul 2018 13:46:18 +0200Fixed i18n related typo. nevow_service_rework
Edouard Tisserant [Thu, 05 Jul 2018 13:46:18 +0200] rev 2215
Fixed i18n related typo.

Thu, 05 Jul 2018 13:45:24 +0200Fixed typo nevow_service_rework
Edouard Tisserant [Thu, 05 Jul 2018 13:45:24 +0200] rev 2214
Fixed typo

Thu, 05 Jul 2018 13:44:54 +0200Better logging of Nevow Server import in case of exception. nevow_service_rework
Edouard Tisserant [Thu, 05 Jul 2018 13:44:54 +0200] rev 2213
Better logging of Nevow Server import in case of exception.

Thu, 05 Jul 2018 11:11:01 +0200WampClient : Simplified, removed dead code, use exception for handling failures and misconfiguration, check existence of mandatory parameters. nevow_service_rework
Edouard Tisserant [Thu, 05 Jul 2018 11:11:01 +0200] rev 2212
WampClient : Simplified, removed dead code, use exception for handling failures and misconfiguration, check existence of mandatory parameters.

Wed, 04 Jul 2018 14:17:00 +0200Merged #2486, enhancements to WAMP client : auto reconnecting, wamp conf checking and saving, additional attributes for exposed calls, etc nevow_service_rework
Edouard Tisserant [Wed, 04 Jul 2018 14:17:00 +0200] rev 2211
Merged #2486, enhancements to WAMP client : auto reconnecting, wamp conf checking and saving, additional attributes for exposed calls, etc

Wed, 04 Jul 2018 14:10:03 +0200Nevow based web interface now show simple Log message sending form for basic runtime, and allow extensions to add their own web settings. nevow_service_rework
Edouard Tisserant [Wed, 04 Jul 2018 14:10:03 +0200] rev 2210
Nevow based web interface now show simple Log message sending form for basic runtime, and allow extensions to add their own web settings.

Fri, 22 Jun 2018 14:08:34 +0200Now, runtime extensions should be able to add their own settings to web configuration interface. nevow_service_rework
Edouard Tisserant [Fri, 22 Jun 2018 14:08:34 +0200] rev 2209
Now, runtime extensions should be able to add their own settings to web configuration interface.

Fri, 22 Jun 2018 12:43:33 +0200Embrio of setting form, just to test nevow_service_rework
Edouard Tisserant [Fri, 22 Jun 2018 12:43:33 +0200] rev 2208
Embrio of setting form, just to test

Tue, 05 Jun 2018 15:29:58 +0200#2486 Exception if custom protocol options are wrong. #2486
dporopat <denis.poropat@smarteh.si> [Tue, 05 Jun 2018 15:29:58 +0200] rev 2207
#2486 Exception if custom protocol options are wrong.

Fri, 18 May 2018 11:05:49 +0200#2486 ExposedCalls with register options as a dictionary. #2486
dporopat <denis.poropat@smarteh.si> [Fri, 18 May 2018 11:05:49 +0200] rev 2206
#2486 ExposedCalls with register options as a dictionary.

Mon, 14 May 2018 13:05:54 +0200#2486 Renaming functions. #2486
dporopat <denis.poropat@smarteh.si> [Mon, 14 May 2018 13:05:54 +0200] rev 2205
#2486 Renaming functions.

Mon, 14 May 2018 08:45:44 +0200#2486 Reconnect funtion in SaveWampClientConf function. #2486
dporopat <denis.poropat@smarteh.si> [Mon, 14 May 2018 08:45:44 +0200] rev 2204
#2486 Reconnect funtion in SaveWampClientConf function.

Wed, 09 May 2018 09:59:53 +0200#2486 Modified reconnect function. Added 'active' parameter to wampconf.json file. #2486
dporopat <denis.poropat@smarteh.si> [Wed, 09 May 2018 09:59:53 +0200] rev 2203
#2486 Modified reconnect function. Added 'active' parameter to wampconf.json file.

Thu, 19 Apr 2018 13:40:56 +0200#2486 Adding reconnect funtion to WampClient. Global TransportFactory not needed anymore. #2486
dporopat <denis.poropat@smarteh.si> [Thu, 19 Apr 2018 13:40:56 +0200] rev 2202
#2486 Adding reconnect funtion to WampClient. Global TransportFactory not needed anymore.

Wed, 18 Apr 2018 10:42:33 +0200#2486 Added global TransportFactory, needed in WebInterface reconnecting function. #2486
dporopat <denis.poropat@smarteh.si> [Wed, 18 Apr 2018 10:42:33 +0200] rev 2201
#2486 Added global TransportFactory, needed in WebInterface reconnecting function.

Wed, 18 Apr 2018 10:40:16 +0200#2486 WampClient needs pyro.plcobj before registration calls. #2486
dporopat <denis.poropat@smarteh.si> [Wed, 18 Apr 2018 10:40:16 +0200] rev 2200
#2486 WampClient needs pyro.plcobj before registration calls.

Wed, 11 Apr 2018 10:53:48 +0200#2486 Fix if protocol, register options are not present in wapmconf.json file. #2486
dporopat <denis.poropat@smarteh.si> [Wed, 11 Apr 2018 10:53:48 +0200] rev 2199
#2486 Fix if protocol, register options are not present in wapmconf.json file.

Tue, 10 Apr 2018 12:08:23 +0200#2486 Added ExposedProgressCalls list using details argument for registration progress calls. #2486
dporopat <denis.poropat@smarteh.si> [Tue, 10 Apr 2018 12:08:23 +0200] rev 2198
#2486 Added ExposedProgressCalls list using details argument for registration progress calls.

Tue, 10 Apr 2018 10:44:46 +0200#2486 Unnecessary variable removed. #2486
dporopat <denis.poropat@smarteh.si> [Tue, 10 Apr 2018 10:44:46 +0200] rev 2197
#2486 Unnecessary variable removed.

Tue, 10 Apr 2018 09:54:22 +0200#2486 Added option to use websocket register options. Added function getValidOptins to read options from wampconf.json. #2486
dporopat <denis.poropat@smarteh.si> [Tue, 10 Apr 2018 09:54:22 +0200] rev 2196
#2486 Added option to use websocket register options. Added function getValidOptins to read options from wampconf.json.

Mon, 09 Apr 2018 14:38:38 +0200#2486 Added option to use websocket protocol options. #2486
dporopat <denis.poropat@smarteh.si> [Mon, 09 Apr 2018 14:38:38 +0200] rev 2195
#2486 Added option to use websocket protocol options.

Tue, 27 Mar 2018 10:11:04 +0200#2486 Updated wamp test project to work with the latest Crossbar version. #2486
dporopat <denis.poropat@smarteh.si> [Tue, 27 Mar 2018 10:11:04 +0200] rev 2194
#2486 Updated wamp test project to work with the latest Crossbar version.

Mon, 19 Mar 2018 12:18:07 +0100#2486 Reset delay function added. It resets the delay and the retry counter on reconnect. #2486
dporopat <denis.poropat@smarteh.si> [Mon, 19 Mar 2018 12:18:07 +0100] rev 2193
#2486 Reset delay function added. It resets the delay and the retry counter on reconnect.

Sat, 23 Jun 2018 09:17:20 +0200merge
Edouard Tisserant <edouard.tisserant@gmail.com> [Sat, 23 Jun 2018 09:17:20 +0200] rev 2192
merge

Sat, 23 Jun 2018 09:16:35 +0200merge
Edouard Tisserant <edouard.tisserant@gmail.com> [Sat, 23 Jun 2018 09:16:35 +0200] rev 2191
merge

Mon, 18 Jun 2018 12:17:07 +0300Fix compilation warning/error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 18 Jun 2018 12:17:07 +0300] rev 2190
Fix compilation warning/error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]

Mon, 18 Jun 2018 12:12:57 +0300merge
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 18 Jun 2018 12:12:57 +0300] rev 2189
merge

Fri, 15 Jun 2018 09:48:05 +0200WxGlade HMI extension now does only instanciate wx object who's name match extension's name. If no object match the name and no code is provided in 'start' user python code section, then a warning is issued
Edouard Tisserant [Fri, 15 Jun 2018 09:48:05 +0200] rev 2188
WxGlade HMI extension now does only instanciate wx object who's name match extension's name. If no object match the name and no code is provided in 'start' user python code section, then a warning is issued

Wed, 13 Jun 2018 08:54:13 +0200BACnet : ensure that Init did happen before continuing with PLC startup.
Edouard Tisserant [Wed, 13 Jun 2018 08:54:13 +0200] rev 2187
BACnet : ensure that Init did happen before continuing with PLC startup.

Fri, 15 Jun 2018 16:41:55 +0300Update list of files with strings for i18n and templates for translations
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 15 Jun 2018 16:41:55 +0300] rev 2186
Update list of files with strings for i18n and templates for translations

Fri, 15 Jun 2018 16:30:06 +0300Add small contributing document with information about codestyle checking
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 15 Jun 2018 16:30:06 +0300] rev 2185
Add small contributing document with information about codestyle checking

Fri, 15 Jun 2018 16:12:50 +0300Add argument to set list of source files to check
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 15 Jun 2018 16:12:50 +0300] rev 2184
Add argument to set list of source files to check

This is necessary, in case you want to use docker run in pretxncommit
Mercurial hook. Unfortunately for some reason if hg running in
container can't find just created commit defined by $HG_NODE. And it
throws error 'unknown revision'.

Here is example for hgrc.

[hooks]
pretxncommit.linter = hg status -m -n -a -n -I '**.py' --change $HG_NODE > files.lst && docker run --volume=$PWD:/beremiz --workdir="/beremiz" --volume=$PWD/../CanFestival-3:/CanFestival-3 --memory=1g --entrypoint=/beremiz/tests/tools/check_source.sh skvorl/beremiz-requirements --files-to-check files.lst

Sat, 09 Jun 2018 17:59:46 +0300check_source.sh: handle case if there are no files to check
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 09 Jun 2018 17:59:46 +0300] rev 2183
check_source.sh: handle case if there are no files to check

Sat, 09 Jun 2018 17:14:56 +0300Fix linter errors
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 09 Jun 2018 17:14:56 +0300] rev 2182
Fix linter errors

Sat, 09 Jun 2018 17:13:16 +0300Add command line argument to run linter only on changed files
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 09 Jun 2018 17:13:16 +0300] rev 2181
Add command line argument to run linter only on changed files

./tests/tools/check_source.sh --only-changes

It's recommended to run check_source.sh automatically on each commit,
so the rules are always enforced.
Even better is to use docker for that, so the versions of pep8 and
pylint are the same as on pipeline server.

To do this couple of lines should be added into repository's hgrc file.

[----------- cut from .hg/hgrc------------------]

[hooks]
precommit.linter = ./tests/tools/check_source.sh --only-changes
# precommit.linter = docker run -it --volume=$PWD:/beremiz --workdir="/beremiz" --volume=$PWD/../CanFestival-3:/CanFestival-3 --memory=1g --entrypoint=/beremiz/tests/tools/check_source.sh skvorl/beremiz-requirements --only-changes

[-----------------------------------------------]

Fri, 08 Jun 2018 15:10:27 +0300Don't use fixed width labels in WAMP and PYRO dialogs
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 08 Jun 2018 15:10:27 +0300] rev 2180
Don't use fixed width labels in WAMP and PYRO dialogs

This causes problems if labels are translated into other languages and
width wasn't enough.

Thu, 07 Jun 2018 16:58:13 +0300Fix internatialization in UriLocationEditor, PYRO dialog and Modbus configurator
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 07 Jun 2018 16:58:13 +0300] rev 2179
Fix internatialization in UriLocationEditor, PYRO dialog and Modbus configurator

Thu, 07 Jun 2018 16:53:21 +0300Add copyright headers to retain implementation for GNU/Linux and Win32
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 07 Jun 2018 16:53:21 +0300] rev 2178
Add copyright headers to retain implementation for GNU/Linux and Win32

Thu, 07 Jun 2018 16:31:26 +0300Drop support for wxPython 2.6 and below
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 07 Jun 2018 16:31:26 +0300] rev 2177
Drop support for wxPython 2.6 and below

Thu, 07 Jun 2018 14:45:03 +0300Autoresize UriLocationEditor dialog window
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 07 Jun 2018 14:45:03 +0300] rev 2176
Autoresize UriLocationEditor dialog window

Thu, 07 Jun 2018 14:12:18 +0300Fix compilation problem in case of TARGET_LOGGING_DISABLE turned on and TARGET_DEBUG_DISABLE turned off
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 07 Jun 2018 14:12:18 +0300] rev 2175
Fix compilation problem in case of TARGET_LOGGING_DISABLE turned on and TARGET_DEBUG_DISABLE turned off

Thu, 07 Jun 2018 14:04:45 +0300Use the same retain implementation for Win32 targets
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 07 Jun 2018 14:04:45 +0300] rev 2174
Use the same retain implementation for Win32 targets

Currently plc_Win32_main_retain.c is exact copy of
plc_Linux_main_retain.c, because it's not possible to use symbol
links.

It'd be nice in the future to have possibility to modify targets.code.

Thu, 07 Jun 2018 13:45:35 +0300Add retain basic implementation on GNU/Linux
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 07 Jun 2018 13:45:35 +0300] rev 2173
Add retain basic implementation on GNU/Linux

Retain is saved in file and backup of this file is done every time.
File isn't saved on every PLC cycle to avoid high I/O load.
By default, retain is saved every second and on PLC stop/shutdown.
It's possible to override retain flush period by using CFLAGS option
in project's settings. For example, for 0.5 seconds period
use "-DFILE_RETAIN_SAVE_PERIOD_S=0.5".

Fri, 01 Jun 2018 15:46:17 +0300Add helper function GetRetainSize()
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 01 Jun 2018 15:46:17 +0300] rev 2172
Add helper function GetRetainSize()

it will be useful for retain implementations.

Fri, 01 Jun 2018 12:21:37 +0300use CLOCK_MONOTONIC instead of CLOCK_REALTIME for timer setup
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 01 Jun 2018 12:21:37 +0300] rev 2171
use CLOCK_MONOTONIC instead of CLOCK_REALTIME for timer setup

CLOCK_REALTIME is a wall clock, that could change back and forth (user
changes system time, winter/summer time, NTP corrections and so on).
For real-time application CLOCK_MONOTONIC should be used, it doesn't
have such jumps.

Thu, 31 May 2018 13:07:10 +0300Add function example to first_steps example
Surkov Sergey <surkovsv93@gmail.com> [Thu, 31 May 2018 13:07:10 +0300] rev 2170
Add function example to first_steps example

It'll be used in documentation to show how to create function in
Beremiz.

Fri, 25 May 2018 18:37:59 +0300fix type introduced by f33942053466 (fix pylint warning "(undefined-loop-variable) Using possibly undefined loop variable 'X'")
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 25 May 2018 18:37:59 +0300] rev 2169
fix type introduced by f33942053466 (fix pylint warning "(undefined-loop-variable) Using possibly undefined loop variable 'X'")

Fri, 25 May 2018 18:34:05 +0300Build by default with optimization level -O2 for GCC
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 25 May 2018 18:34:05 +0300] rev 2168
Build by default with optimization level -O2 for GCC

before -O0 was used by default, that caused pretty bad performance.

Amd64, i6700k, 4200MHz, GNU/Linux (non-RT kernel), gcc 7.2.0

-------------------------------------
Optimization | EN/ENO |no EN/ENO |
-------------------------------------
default | 11 | 9.5 |
-O3 | 3.9 | 5.2 |
-O2 | 4 | 4.8 |
-Os | 4.1 | 3.5 |
-Ofast | 3.9 | 5.2 |
-------------------------------------

ARM, BBB Cortex-A8, 600Mhz, GNU/Linux, gcc 4.6.3

-------------------------------------
Optimization | EN/ENO |no EN/ENO |
-------------------------------------
default | 273 | 226 |
-O3 | 141.8 | 106.2 |
-O2 | 142 | 107 |
-Os | 152.5 | 112.2 |
-Ofast | 141.7 | 106.2 |
-------------------------------------

For embedded systems with size constaints (like Cortex-Mx, AVR and so
on) I usually use -Os. It gets pretty good results. For
GNU/Linux-based systems -O2 is usually a good choice, as you see the
test results.

Fri, 25 May 2018 17:40:29 +0300fix hangs on mouse selection in case if wxPython uses wxWidgets with GTK3+ support
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 25 May 2018 17:40:29 +0300] rev 2167
fix hangs on mouse selection in case if wxPython uses wxWidgets with GTK3+ support

This is default configuration on Debian Buster+ and Ubuntu 18.04+.
Probably it'll fix completely problem with 'clipboard already open'
described in the previous commit 5ce6d08f ("make clipboard open minimal time as wxPython documentation recommends")

Fri, 25 May 2018 17:23:15 +0300make clipboard open minimal time as wxPython documentation recommends
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 25 May 2018 17:23:15 +0300] rev 2166
make clipboard open minimal time as wxPython documentation recommends

https://wxpython.org/Phoenix/docs/html/wx.Clipboard.html#wx.Clipboard.GetData

"Call wx.Clipboard.Open to get ownership of the clipboard. If this
operation returns True, you now own the clipboard. Call
wx.Clipboard.SetData to put data on the clipboard, or
wx.Clipboard.GetData to retrieve data from the clipboard. Call
wx.Clipboard.Close to close the clipboard and relinquish ownership.
You should keep the clipboard open only momentarily."

Maybe it makes situation with pretty annoying error 'clipboard already
open' a little bit better.

traceback:
File "/home/developer/WorkData/PLC/beremiz/avangard-beremiz-ide/src/../../beremiz/BeremizIDE.py", line 955, in OnSaveProjectMenu
self.RefreshAfterSave()
File "/home/developer/WorkData/PLC/beremiz/avangard-beremiz-ide/src/../../beremiz/BeremizIDE.py", line 946, in RefreshAfterSave
self._Refresh(TITLE, FILEMENU, EDITMENU, PAGETITLES)
File "/home/developer/WorkData/PLC/beremiz/avangard-beremiz-ide/src/../../beremiz/IDEFrame.py", line 926, in _Refresh
self.RefreshFunctions[element]()
File "/home/developer/WorkData/PLC/beremiz/avangard-beremiz-ide/src/../../beremiz/BeremizIDE.py", line 766, in RefreshEditMenu
IDEFrame.RefreshEditMenu(self)
File "/home/developer/WorkData/PLC/beremiz/avangard-beremiz-ide/src/../../beremiz/IDEFrame.py", line 1185, in RefreshEditMenu
if self.GetCopyBuffer() is not None:
File "/home/developer/WorkData/PLC/beremiz/avangard-beremiz-ide/src/../../beremiz/IDEFrame.py", line 956, in GetCopyBuffer
if wx.TheClipboard.Open():
File "/usr/lib/python2.7/dist-packages/wx-3.0-gtk3/wx/_misc.py", line 5793, in Open
return _misc_.Clipboard_Open(*args, **kwargs)
<class 'wx._core.PyAssertionError'>: C++ assertion "!m_open" failed at ../src/gtk/clipbrd.cpp(598) in Open(): clipboard already open

Sat, 23 Jun 2018 09:08:13 +0200Merged GPL + LGPL v2 or later EtherCAT extension. Fixed headers and copyright notice.
Edouard Tisserant <edouard.tisserant@gmail.com> [Sat, 23 Jun 2018 09:08:13 +0200] rev 2165
Merged GPL + LGPL v2 or later EtherCAT extension. Fixed headers and copyright notice.

Mon, 11 Aug 2014 23:13:35 +0200Propagated matiec changes in FB var accessors
Edouard Tisserant [Mon, 11 Aug 2014 23:13:35 +0200] rev 2164
Propagated matiec changes in FB var accessors

Wed, 02 Apr 2014 21:22:35 +0200Fixed most obvious bugs appear after grafting changes from previous development branches : re-enable openning non-CoE, CoE and CiA 402 nodes config
Edouard Tisserant [Wed, 02 Apr 2014 21:22:35 +0200] rev 2163
Fixed most obvious bugs appear after grafting changes from previous development branches : re-enable openning non-CoE, CoE and CiA 402 nodes config

Wed, 02 Oct 2013 10:46:18 +0200Fixed xslt stylesheet for extracting entries defined in module, rewiting xslt stylesheet to yslt
Laurent Bessard [Wed, 02 Oct 2013 10:46:18 +0200] rev 2162
Fixed xslt stylesheet for extracting entries defined in module, rewiting xslt stylesheet to yslt

Mon, 30 Sep 2013 13:43:02 +0200Fixed bug in information returned for module where entries are defined only in PDO mapping
Laurent Bessard [Mon, 30 Sep 2013 13:43:02 +0200] rev 2161
Fixed bug in information returned for module where entries are defined only in PDO mapping

Fri, 27 Sep 2013 17:49:40 +0200Added support for loading XML file even if not following XSD schema (but still following XML syntax), warning user of errors in XML file
Laurent Bessard [Fri, 27 Sep 2013 17:49:40 +0200] rev 2160
Added support for loading XML file even if not following XSD schema (but still following XML syntax), warning user of errors in XML file

Tue, 24 Sep 2013 15:18:25 +0200Fixed bug when compiling
Laurent Bessard [Tue, 24 Sep 2013 15:18:25 +0200] rev 2159
Fixed bug when compiling

Tue, 24 Sep 2013 00:50:02 +0200Fixed higen example removing obsolete attribute in CIA402 node params file
Laurent Bessard [Tue, 24 Sep 2013 00:50:02 +0200] rev 2158
Fixed higen example removing obsolete attribute in CIA402 node params file

Tue, 24 Sep 2013 00:48:21 +0200Fixed controllers for working with latest version of xmlclass
Laurent Bessard [Tue, 24 Sep 2013 00:48:21 +0200] rev 2157
Fixed controllers for working with latest version of xmlclass

Tue, 25 Jun 2013 00:55:38 +0200Added bug in support for set flag for optional variables activation in axis public struct
Laurent Bessard [Tue, 25 Jun 2013 00:55:38 +0200] rev 2156
Added bug in support for set flag for optional variables activation in axis public struct

Mon, 24 Jun 2013 23:53:57 +0200Added support for set flag for optional variables activation in axis public struct
Laurent Bessard [Mon, 24 Jun 2013 23:53:57 +0200] rev 2155
Added support for set flag for optional variables activation in axis public struct

Mon, 24 Jun 2013 21:03:22 +0200Replaced location for axis ref from %IW(location).0 to %IW(location).402. Added location for network position at %IW(location).
Laurent Bessard [Mon, 24 Jun 2013 21:03:22 +0200] rev 2154
Replaced location for axis ref from %IW(location).0 to %IW(location).402. Added location for network position at %IW(location).

Mon, 24 Jun 2013 09:23:28 +0200Rewrite CIA402 node specific code generating part
Laurent Bessard [Mon, 24 Jun 2013 09:23:28 +0200] rev 2153
Rewrite CIA402 node specific code generating part

Wed, 02 Apr 2014 15:03:32 +0200Cherry-pick and re-commit to legitimate ancestor of commit 'Ethercat Management Function Refactoring Source by RTES Lab.' from youcu <youcu1022@gmail.com>
Edouard Tisserant [Wed, 02 Apr 2014 15:03:32 +0200] rev 2152
Cherry-pick and re-commit to legitimate ancestor of commit 'Ethercat Management Function Refactoring Source by RTES Lab.' from youcu <youcu1022@gmail.com>

Mon, 03 Jun 2013 08:24:08 +0200Fixed bug when drag'n dropping variable in master startup command grid
Laurent Bessard [Mon, 03 Jun 2013 08:24:08 +0200] rev 2151
Fixed bug when drag'n dropping variable in master startup command grid

Tue, 21 May 2013 16:03:40 +0900Moved ratio scaling back to MCL. Rewrote CiA402 C part in a way it can be read and understood by some humans.
Edouard Tisserant [Tue, 21 May 2013 16:03:40 +0900] rev 2150
Moved ratio scaling back to MCL. Rewrote CiA402 C part in a way it can be read and understood by some humans.

Thu, 16 May 2013 23:21:01 +0200Added icon for Ethercat extension root and Ethercat master node
Laurent Bessard [Thu, 16 May 2013 23:21:01 +0200] rev 2149
Added icon for Ethercat extension root and Ethercat master node

Fri, 10 May 2013 09:16:07 +0200Fixed bug with global instance declaration
Laurent Bessard [Fri, 10 May 2013 09:16:07 +0200] rev 2148
Fixed bug with global instance declaration

Fri, 10 May 2013 08:44:05 +0200Fix bug in when moving Ethercat slaves fixed
Laurent Bessard [Fri, 10 May 2013 08:44:05 +0200] rev 2147
Fix bug in when moving Ethercat slaves fixed

Wed, 08 May 2013 10:40:06 +0200Added mapping for TouchProbe function in CIA402 slave node
Laurent Bessard [Wed, 08 May 2013 10:40:06 +0200] rev 2146
Added mapping for TouchProbe function in CIA402 slave node

Fri, 03 May 2013 13:47:51 +0200Fixed bug with axes boolean parameters value
Laurent Bessard [Fri, 03 May 2013 13:47:51 +0200] rev 2145
Fixed bug with axes boolean parameters value

Thu, 02 May 2013 13:40:35 +0200Added error message when a device informations can't be found in ESI files
Laurent Bessard [Thu, 02 May 2013 13:40:35 +0200] rev 2144
Added error message when a device informations can't be found in ESI files

Thu, 02 May 2013 10:21:47 +0200Fixed ToolTip on VariablesGrid columns on Windows
Laurent Bessard [Thu, 02 May 2013 10:21:47 +0200] rev 2143
Fixed ToolTip on VariablesGrid columns on Windows

Tue, 30 Apr 2013 01:39:54 +0200Update higen drive example introducing usage of csv mode
Laurent Bessard [Tue, 30 Apr 2013 01:39:54 +0200] rev 2142
Update higen drive example introducing usage of csv mode

Tue, 30 Apr 2013 01:31:47 +0200Merged
Laurent Bessard [Tue, 30 Apr 2013 01:31:47 +0200] rev 2141
Merged

Mon, 29 Apr 2013 11:07:32 +0200Fixed bug in support for module extra params in EthercatCFileGenerator
Laurent Bessard [Mon, 29 Apr 2013 11:07:32 +0200] rev 2140
Fixed bug in support for module extra params in EthercatCFileGenerator

Mon, 29 Apr 2013 11:03:06 +0200Added support for module extra params in EthercatCFileGenerator
Laurent Bessard [Mon, 29 Apr 2013 11:03:06 +0200] rev 2139
Added support for module extra params in EthercatCFileGenerator

Fri, 26 Apr 2013 23:23:09 +0200Fixed support for multiple module extra params in ModulesLibrary
Laurent Bessard [Fri, 26 Apr 2013 23:23:09 +0200] rev 2138
Fixed support for multiple module extra params in ModulesLibrary

Fri, 26 Apr 2013 13:57:10 +0200Added support for multiple module extra params in ModulesLibrary
Laurent Bessard [Fri, 26 Apr 2013 13:57:10 +0200] rev 2137
Added support for multiple module extra params in ModulesLibrary

Thu, 25 Apr 2013 23:01:06 +0200Added support for using CIA402 motion mode csp, csv and cst
Laurent Bessard [Thu, 25 Apr 2013 23:01:06 +0200] rev 2136
Added support for using CIA402 motion mode csp, csv and cst

Fri, 26 Apr 2013 13:59:43 +0200Fixed order of LocationCFilesAndCFLAGS, master was called after slaves in PLC init and retrieve functions
Laurent Bessard [Fri, 26 Apr 2013 13:59:43 +0200] rev 2135
Fixed order of LocationCFilesAndCFLAGS, master was called after slaves in PLC init and retrieve functions

Wed, 24 Apr 2013 23:27:35 +0200Fixed bug on Windows with sizers on Windows in Master Editor panel when its size changed
Laurent Bessard [Wed, 24 Apr 2013 23:27:35 +0200] rev 2134
Fixed bug on Windows with sizers on Windows in Master Editor panel when its size changed

Wed, 24 Apr 2013 17:27:31 +0200Fixed Save As... function in Beremiz
Laurent Bessard [Wed, 24 Apr 2013 17:27:31 +0200] rev 2133
Fixed Save As... function in Beremiz

Mon, 22 Apr 2013 23:54:22 +0200Added support for stopping SDOThreadProc when stopping PLC
Laurent Bessard [Mon, 22 Apr 2013 23:54:22 +0200] rev 2132
Added support for stopping SDOThreadProc when stopping PLC

Mon, 22 Apr 2013 09:30:48 +0200Fixed bug when modifying slave module type
Laurent Bessard [Mon, 22 Apr 2013 09:30:48 +0200] rev 2131
Fixed bug when modifying slave module type

Fri, 19 Apr 2013 00:55:40 +0200Fixed bug in filters behavior on Windows
Laurent Bessard [Fri, 19 Apr 2013 00:55:40 +0200] rev 2130
Fixed bug in filters behavior on Windows

Thu, 18 Apr 2013 00:48:32 +0200Fixed filter behavior in MasterEditor and SlaveEditor
Laurent Bessard [Thu, 18 Apr 2013 00:48:32 +0200] rev 2129
Fixed filter behavior in MasterEditor and SlaveEditor

Tue, 16 Apr 2013 00:53:38 +0200Fixed CIA402 node template for working with MC_Power modification removing implicit set position
Laurent Bessard [Tue, 16 Apr 2013 00:53:38 +0200] rev 2128
Fixed CIA402 node template for working with MC_Power modification removing implicit set position

Mon, 15 Apr 2013 00:40:47 +0200Fix scan network functionality, project tree not refreshed after adding slaves
Laurent Bessard [Mon, 15 Apr 2013 00:40:47 +0200] rev 2127
Fix scan network functionality, project tree not refreshed after adding slaves

Mon, 15 Apr 2013 00:37:59 +0200Rollback last commit
Laurent Bessard [Mon, 15 Apr 2013 00:37:59 +0200] rev 2126
Rollback last commit

Sat, 13 Apr 2013 12:27:49 +0200Fixed CIA402 node template for working with MC_Power modification removing implicit set position
Laurent Bessard [Sat, 13 Apr 2013 12:27:49 +0200] rev 2125
Fixed CIA402 node template for working with MC_Power modification removing implicit set position

Sat, 13 Apr 2013 02:14:37 +0200Fixed bugs in drag'n drop from variables panel in master and slaves editor panel
Laurent Bessard [Sat, 13 Apr 2013 02:14:37 +0200] rev 2124
Fixed bugs in drag'n drop from variables panel in master and slaves editor panel

Sat, 13 Apr 2013 01:40:31 +0200Added initialization of abort_code and result_size to prevent warning message if not used in following code
Laurent Bessard [Sat, 13 Apr 2013 01:40:31 +0200] rev 2123
Added initialization of abort_code and result_size to prevent warning message if not used in following code

Sat, 13 Apr 2013 01:39:05 +0200Fixed header files inclusion in CIA402 node template file
Laurent Bessard [Sat, 13 Apr 2013 01:39:05 +0200] rev 2122
Fixed header files inclusion in CIA402 node template file

Fri, 12 Apr 2013 15:41:22 +0900Fixed (again) some non-clean exit in case of SDO failure at init
Edouard Tisserant [Fri, 12 Apr 2013 15:41:22 +0900] rev 2121
Fixed (again) some non-clean exit in case of SDO failure at init

Thu, 11 Apr 2013 10:32:58 +0200Merged
Laurent Bessard [Thu, 11 Apr 2013 10:32:58 +0200] rev 2120
Merged

Fri, 05 Apr 2013 00:14:00 +0200Fixed ethercat test with higen drive project
Laurent Bessard [Fri, 05 Apr 2013 00:14:00 +0200] rev 2119
Fixed ethercat test with higen drive project

Fri, 05 Apr 2013 00:09:54 +0200Fixed bug when using real axis and simulated axis at the same time (got the same index)
Laurent Bessard [Fri, 05 Apr 2013 00:09:54 +0200] rev 2118
Fixed bug when using real axis and simulated axis at the same time (got the same index)

Fri, 05 Apr 2013 21:47:37 +0900Now failure in template based part of C code also release the master for later use...
Edouard Tisserant [Fri, 05 Apr 2013 21:47:37 +0900] rev 2117
Now failure in template based part of C code also release the master for later use...

Fri, 05 Apr 2013 16:49:41 +0900Better logging, saffer failure at init (allows restart)
Edouard Tisserant [Fri, 05 Apr 2013 16:49:41 +0900] rev 2116
Better logging, saffer failure at init (allows restart)

Fri, 05 Apr 2013 11:55:09 +0900Added error logging when SDO FB fails
Edouard Tisserant [Fri, 05 Apr 2013 11:55:09 +0900] rev 2115
Added error logging when SDO FB fails

Thu, 04 Apr 2013 17:50:43 +0900Added logging based on collecting Kernel logs
Edouard Tisserant [Thu, 04 Apr 2013 17:50:43 +0900] rev 2114
Added logging based on collecting Kernel logs

Thu, 04 Apr 2013 14:32:02 +0900Fixed typo
Edouard Tisserant [Thu, 04 Apr 2013 14:32:02 +0900] rev 2113
Fixed typo

Fri, 29 Mar 2013 14:25:10 +0900Fixed linking with non RTDM etherlab lib. Now with rtdm...
Edouard Tisserant [Fri, 29 Mar 2013 14:25:10 +0900] rev 2112
Fixed linking with non RTDM etherlab lib. Now with rtdm...