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

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

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


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

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

TARGET_LOGGING_DISABLE - disables logging functionality from runtime and PLC program

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

By default all these options are off.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2018-12-24update 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

2018-12-24fix 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"

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

2019-03-11check_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

2019-03-07Added 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

2019-02-19Allow 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.

2019-02-14Fix 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.

2019-02-13Fix 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).

2019-02-13Reworked 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)

2019-02-01Fixed 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.

2019-01-31Add 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.

2019-01-29Fixed 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.

2019-01-25Split 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

2019-01-09fixed 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.

2019-01-09fixed 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.

2019-01-07Merged 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, ...)

2018-06-02Modbus 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, ...)

2019-01-07Disable 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.

2018-12-21Added 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.

2018-12-21PyroServer: 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)

2018-12-21Fix 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

2018-12-19Fixed 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.

2018-12-19Removed 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(

2018-12-18Allow 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

2018-12-18Expose 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.

2018-12-18Use 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.

2018-12-10Make 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.

2018-12-05PYRO(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

2018-12-05Enure 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...

2018-12-05Fixed 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.

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

2018-12-05Empirically 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

2018-12-04Chunk 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.

2018-11-27Fix 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.

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

2018-11-26Fixed 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.

2018-11-23Merged. 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.

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

2018-10-12python3 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.

2018-10-12python3 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

2018-10-12python3 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

2018-10-12python3 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

2018-10-12python3 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

2018-10-12python3 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

2018-10-11python3 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

2018-10-11python3 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

2018-10-11python3 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.

2018-10-11python3 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

2018-10-11python3 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

2018-10-10python3 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

2018-10-10python3 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

2018-10-10python3 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

2018-10-10python3 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

2018-10-09python3 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

2018-10-09python3 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

2018-10-09python3 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

2018-10-09Fix 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?

2018-10-09pep8, 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.

2018-10-05python3 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

2018-10-05Make 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

2018-10-05cleanup 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

2018-10-04python3 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

2018-10-04Use 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.

2018-10-04python3 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

2018-10-04python3 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

2018-11-22Fixed 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

2018-11-22Merge, 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

2018-11-22IDManager : 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.

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

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

2018-10-03Fix '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

2018-10-03Add 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

2018-10-03Improve 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)

2018-10-03cleanup 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

2018-10-03cleanup: 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

2018-10-03Add 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

2018-10-03Fix 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

2018-10-02Use 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

2018-10-02cleanup: 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

2018-10-02Use 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

2018-10-01cleanup: 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'

2018-10-01cleanup: 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))

2018-10-01cleanup: 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

2018-10-01cleanup: 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

2018-10-01cleanup: 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

2018-10-01cleanup: 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

2018-10-01Fix 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

2018-09-29enable 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

2018-09-29clean 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

2018-09-29clean 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'

2018-09-29clean 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`

2018-09-29clean 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'

2018-09-29clean 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

2018-09-29ignore 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'

2018-09-29clean 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'

2018-09-29clean 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.

2018-09-29clean 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

2018-09-29clean 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'

2018-09-29clean 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.

2018-09-29clean 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

2018-09-29clean 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

2018-09-29clean 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

2018-09-29clean 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

2018-09-29clean 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

2018-09-29clean 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

2018-09-29clean 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"

2018-09-29clean 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

2018-09-29check_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

2018-09-29clean 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

2018-09-29clean 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

2018-09-29clean 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

2018-09-29clean 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

2018-09-29clean 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

2018-09-29clean 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 '['

2018-09-29clean 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

2018-09-29clean 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

2018-09-29clean 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

2018-09-29clean 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

2018-09-29clean 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'

2018-09-29clean 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

2018-09-29clean 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 ','

2018-09-29clean 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:'

2018-09-29clean 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

2018-09-29clean 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'

2018-09-29cleanup 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

2018-09-28cleanup 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

2018-09-28cleanup 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 '('

2018-09-28cleanup 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 ')'

2018-09-28cleanup 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

2018-09-28cleanup 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

2018-09-28cleanup 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

2018-09-28cleanup 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)

2018-09-28cleanup 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 ','

2018-09-28cleanup 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

2018-09-28cleanup 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

2018-09-28cleanup 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

2018-09-28cleanup 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

2018-09-28cleanup 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

2018-09-28cleanup 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

2018-09-28cleanup 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 '# '

2018-09-28cleanup 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

2018-09-28convert 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

2018-09-28cleanup 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

2018-09-28Ignore 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

2018-09-28Update 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.

2018-09-28Use 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'.

2018-09-28Suppress 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'.

2018-09-27Add 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

2018-09-26Add 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.

2018-09-26Cleanup 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

2018-09-26use 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

2018-09-26use 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.

2018-09-25Don'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)

2018-09-25Fix 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.

2018-09-25Avoid 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

2018-11-21IDManager: 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.

2018-11-20IDManager : 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.

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

2018-11-16Added 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.

2018-11-16Renamed 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

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

2018-11-14Added 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

2018-11-09Path 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

2018-11-08'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

2018-11-08Cut 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

2018-11-08URI 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.

2018-11-08URI 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.

2018-10-30PSK : 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

2018-10-30Prevent 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

2018-10-30WAMP : 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

2018-10-30PYRO 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.

2018-10-29Automatically 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.

2018-10-23Runtime : 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.

2018-10-23Added 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.

2018-10-23Small 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.

2018-10-23Force 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.

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

2018-10-22Fixed 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.

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

2018-10-19Fix 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

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

2018-10-18PYRO/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

2018-10-18PYRO/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.

2018-10-15Replaced 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

2018-10-15Beremiz_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.

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

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

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

2018-10-02Show 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)

2018-10-02Some 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.

2018-09-12Merged 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

2018-09-07Merged 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

2018-09-07Use 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

2018-08-29Fix 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.

2018-08-29Avoid 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.

2018-08-28Remove 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.

2018-08-28Avoid 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'

2018-08-27Increase 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

2018-08-24Proper 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

2018-08-24Make 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

2018-08-21Separate 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

2018-08-20Make 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.

2018-08-20leave 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

2018-08-20Update 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

2018-08-20Use 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)

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

Closes #39

2018-08-16Update 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.

2018-08-16Make 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

2018-08-16Fix 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

2018-08-16Remove 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'

2018-08-14remote 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

2018-08-13Fix 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

2018-08-13Remove 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.

2018-08-13Rename 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')

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

2018-08-13Drop 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

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

2018-08-10Dirty 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))
[-------------------------------------------------------------]

2018-08-10Fix 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

2018-08-09Update 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

2018-08-09Improve 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'

2018-08-01Load 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 &

2018-09-12Flush 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

2018-09-11Change 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

2018-09-05Removed 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.

2018-08-21Refactoring. 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

2018-08-16Fixed 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.

2018-08-14BACnet : 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

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

2018-08-14NevowServer : 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

2018-08-13fixed 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.

2018-08-13Removed 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

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