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')