Wed, 28 Feb 2018 16:10:05 +0100Fixed typo introduced in 5736d25bb393
Edouard Tisserant [Wed, 28 Feb 2018 16:10:05 +0100] rev 1958
Fixed typo introduced in 5736d25bb393

Fri, 23 Feb 2018 11:16:25 +0100GetEditedElementInstancesInfos now optimized as well. Forgotten because not using [R.I.P]LibraryResolver, but still XSLT compiling was hapenning on each call.
Edouard Tisserant [Fri, 23 Feb 2018 11:16:25 +0100] rev 1957
GetEditedElementInstancesInfos now optimized as well. Forgotten because not using [R.I.P]LibraryResolver, but still XSLT compiling was hapenning on each call.

Tue, 20 Feb 2018 15:09:01 +0100Another attempt to make BitBuket's version of pylint happy.
Edouard Tisserant [Tue, 20 Feb 2018 15:09:01 +0100] rev 1956
Another attempt to make BitBuket's version of pylint happy.

Tue, 20 Feb 2018 14:46:12 +0100Attempt to make BitBuket's version of pep8 and pylint happy.
Edouard Tisserant [Tue, 20 Feb 2018 14:46:12 +0100] rev 1955
Attempt to make BitBuket's version of pep8 and pylint happy.

Tue, 20 Feb 2018 14:24:30 +0100Removed dead slow code
Edouard Tisserant [Tue, 20 Feb 2018 14:24:30 +0100] rev 1954
Removed dead slow code

Tue, 20 Feb 2018 14:16:51 +0100PEP8 and PyLint conformance: whitespaces and stuff
Edouard Tisserant [Tue, 20 Feb 2018 14:16:51 +0100] rev 1953
PEP8 and PyLint conformance: whitespaces and stuff

Tue, 20 Feb 2018 11:24:40 +0100Copy pasted, no time wasted !
Edouard Tisserant [Tue, 20 Feb 2018 11:24:40 +0100] rev 1952
Copy pasted, no time wasted !

Tue, 20 Feb 2018 11:24:10 +0100GetVariableDictionary and GetPouInterfaceReturnType optimized with new VariableInfoCollector based on XSLTModelQuery. Moved corresponding definitions out of PLCControler.py.
Edouard Tisserant [Tue, 20 Feb 2018 11:24:10 +0100] rev 1951
GetVariableDictionary and GetPouInterfaceReturnType optimized with new VariableInfoCollector based on XSLTModelQuery. Moved corresponding definitions out of PLCControler.py.

Mon, 19 Feb 2018 15:46:50 +0100GetPouInstanceTagName optimized with XSLTModelQuery.
Edouard Tisserant [Mon, 19 Feb 2018 15:46:50 +0100] rev 1950
GetPouInstanceTagName optimized with XSLTModelQuery.

Mon, 19 Feb 2018 15:15:36 +0100Better writing of some xpath added in previous commits about XSLT optimization.
Edouard Tisserant [Mon, 19 Feb 2018 15:15:36 +0100] rev 1949
Better writing of some xpath added in previous commits about XSLT optimization.

Mon, 19 Feb 2018 15:14:30 +0100Moved some definitions away from controller class, and adaped references them through all code.
Edouard Tisserant [Mon, 19 Feb 2018 15:14:30 +0100] rev 1948
Moved some definitions away from controller class, and adaped references them through all code.

Mon, 19 Feb 2018 13:24:57 +0100Hook Beremiz Launcher AppStart to AdvancedSplash OnPaint event in order to ensure image is beeing displayed before loading.
Edouard Tisserant [Mon, 19 Feb 2018 13:24:57 +0100] rev 1947
Hook Beremiz Launcher AppStart to AdvancedSplash OnPaint event in order to ensure image is beeing displayed before loading.

Sun, 18 Feb 2018 22:29:35 +0100Avoid endline escaping in multiline xpath epressions in xslt. '
' Is apparently ignored but never know...
Edouard Tisserant <edouard.tisserant@gmail.com> [Sun, 18 Feb 2018 22:29:35 +0100] rev 1946
Avoid endline escaping in multiline xpath epressions in xslt. '&#10;' Is apparently ignored but never know...

Sun, 18 Feb 2018 21:51:33 +0100Fixed earlier XSLT optimizations. Some/most results were missing.
Edouard Tisserant <edouard.tisserant@gmail.com> [Sun, 18 Feb 2018 21:51:33 +0100] rev 1945
Fixed earlier XSLT optimizations. Some/most results were missing.

Sun, 18 Feb 2018 21:30:48 +0100Moved some code from PLCController.py to other modules. Added necessary imports.
Edouard Tisserant <edouard.tisserant@gmail.com> [Sun, 18 Feb 2018 21:30:48 +0100] rev 1944
Moved some code from PLCController.py to other modules. Added necessary imports.

Sat, 17 Feb 2018 23:58:47 +0100GetPouVariables optimized with XSLTModelQuery
Edouard Tisserant <edouard.tisserant@gmail.com> [Sat, 17 Feb 2018 23:58:47 +0100] rev 1943
GetPouVariables optimized with XSLTModelQuery

Sat, 17 Feb 2018 16:42:56 +0100Added /plcopen/InstancesPathCollector.py, to move more model xslt querying code away from PLCController.py.
Edouard Tisserant <edouard.tisserant@gmail.com> [Sat, 17 Feb 2018 16:42:56 +0100] rev 1942
Added /plcopen/InstancesPathCollector.py, to move more model xslt querying code away from PLCController.py.

Fri, 16 Feb 2018 18:38:30 +0100Fixed Exception dialog disapearing after a view second when exception occurs during app startup.
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 16 Feb 2018 18:38:30 +0100] rev 1941
Fixed Exception dialog disapearing after a view second when exception occurs during app startup.
Problem was caused by splashscreen timeout, wx closing averything else if there is no more main frame.
Changes:
- no more timeout for splashscreen
- use wx.App OnInit method to give first operation to mainloop, object are then now created in mainloop
- main loop is then created _before_ showing splash screen
- no more wxyield or wx processevent tricks needed to display splash screen
- exception handler not blocking anymore on dialog (callafter)
- because of mainloop being there before everything, exit must be called explicitely if exception caught during startup -> exit parameter in handle_exception + try/except around startup calls

UNTESTED ON WINDOWS

Fri, 16 Feb 2018 18:24:55 +0100Moved XSLTModelQuery class to own module in plcopen package.
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 16 Feb 2018 18:24:55 +0100] rev 1940
Moved XSLTModelQuery class to own module in plcopen package.

Fri, 16 Feb 2018 13:00:06 +0100Added a class to speedup all XSLT queries. WIP, now only for instances_path.xslt / GetInstanceList()
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 16 Feb 2018 13:00:06 +0100] rev 1939
Added a class to speedup all XSLT queries. WIP, now only for instances_path.xslt / GetInstanceList()

Fri, 16 Feb 2018 03:24:11 +0100Stripped useless node creation in instances_path stylesheet.
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 16 Feb 2018 03:24:11 +0100] rev 1938
Stripped useless node creation in instances_path stylesheet.

Fri, 16 Feb 2018 02:29:10 +0100This should really help GetInstanceList to perform better: resolver removed, no more deepcopy, no more useless xml serialization, no more node-set() calls.
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 16 Feb 2018 02:29:10 +0100] rev 1937
This should really help GetInstanceList to perform better: resolver removed, no more deepcopy, no more useless xml serialization, no more node-set() calls.

Fri, 16 Feb 2018 01:48:48 +0100YSLT auto indent trick is useless here, added yslt_noindent.yml2, regenerated XSLT files
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 16 Feb 2018 01:48:48 +0100] rev 1936
YSLT auto indent trick is useless here, added yslt_noindent.yml2, regenerated XSLT files

Fri, 16 Feb 2018 01:38:34 +0100Prevent compiling XSLT on each call of GetInstanceList. To be continued. More optimization needed here. 100x would be fine...
Edouard Tisserant [Fri, 16 Feb 2018 01:38:34 +0100] rev 1935
Prevent compiling XSLT on each call of GetInstanceList. To be continued. More optimization needed here. 100x would be fine...

Wed, 14 Feb 2018 15:39:27 +0100Changed meaning of -c commandline argument for Beremiz service : only gives DEFAULT wamp config.
Edouard Tisserant [Wed, 14 Feb 2018 15:39:27 +0100] rev 1934
Changed meaning of -c commandline argument for Beremiz service : only gives DEFAULT wamp config.
If existing project already has a wamp config, it is taken instead.

Wed, 14 Feb 2018 14:50:10 +0100Factorized duplicated code
Edouard Tisserant [Wed, 14 Feb 2018 14:50:10 +0100] rev 1933
Factorized duplicated code

Wed, 14 Feb 2018 14:48:40 +0100Better variable naming, and small optimization.
Edouard Tisserant [Wed, 14 Feb 2018 14:48:40 +0100] rev 1932
Better variable naming, and small optimization.

Tue, 13 Feb 2018 14:01:20 +0100Unclutter graphics package scope.
Edouard Tisserant [Tue, 13 Feb 2018 14:01:20 +0100] rev 1931
Unclutter graphics package scope.
Moved some import statements from "graphics" package to "viewer" module.
It also avoid systematic import of everything in graphics when we only need one submodule.

Tue, 13 Feb 2018 13:57:53 +0100Removed dead code
Edouard Tisserant [Tue, 13 Feb 2018 13:57:53 +0100] rev 1930
Removed dead code

Mon, 12 Feb 2018 13:18:53 +0100Fixed pyro timeout for runtime, was set too short and runtime was disconnecting when building PLC
Edouard Tisserant [Mon, 12 Feb 2018 13:18:53 +0100] rev 1929
Fixed pyro timeout for runtime, was set too short and runtime was disconnecting when building PLC

Mon, 12 Feb 2018 11:34:07 +0100Ask to stop PLC before transfer if it is running
Edouard Tisserant [Mon, 12 Feb 2018 11:34:07 +0100] rev 1928
Ask to stop PLC before transfer if it is running

Mon, 12 Feb 2018 11:32:48 +0100Factorized some repeated refresh code into a method, to allow customisation.
Edouard Tisserant [Mon, 12 Feb 2018 11:32:48 +0100] rev 1927
Factorized some repeated refresh code into a method, to allow customisation.

Mon, 05 Feb 2018 16:23:51 +0100Launcher : add a debug attribute, instead of BMZ_DBG, so that customization can use it.
Edouard Tisserant [Mon, 05 Feb 2018 16:23:51 +0100] rev 1926
Launcher : add a debug attribute, instead of BMZ_DBG, so that customization can use it.

Fri, 02 Feb 2018 16:25:32 +0100Stripped old dead code.
Edouard Tisserant [Fri, 02 Feb 2018 16:25:32 +0100] rev 1925
Stripped old dead code.

Fri, 02 Feb 2018 16:24:56 +0100More changes in Launcher. Modules to be loaded in the background are given in a list, and assigned as object attributes. Also splitted CreateUI into CloseSplashScreen and CreatueUI.
Edouard Tisserant [Fri, 02 Feb 2018 16:24:56 +0100] rev 1924
More changes in Launcher. Modules to be loaded in the background are given in a list, and assigned as object attributes. Also splitted CreateUI into CloseSplashScreen and CreatueUI.

Fri, 02 Feb 2018 16:22:25 +0100ClassImporter now accepts string, callable or class, for compatibility with some old extensions.
Edouard Tisserant [Fri, 02 Feb 2018 16:22:25 +0100] rev 1923
ClassImporter now accepts string, callable or class, for compatibility with some old extensions.

Fri, 02 Feb 2018 11:12:03 +0100Launcher: ShowUI call moves from preStart to start. ShowUI() split into CreateUI() and ShowUI(). Start()'s arguments are passed to CreateUI()
Edouard Tisserant [Fri, 02 Feb 2018 11:12:03 +0100] rev 1922
Launcher: ShowUI call moves from preStart to start. ShowUI() split into CreateUI() and ShowUI(). Start()'s arguments are passed to CreateUI()
This is meant to allow customizations to pass own pre-instanciated controller to UI at startup.

Fri, 02 Feb 2018 11:07:39 +0100Launcher: allows customizations to specify what globals passed to extensions
Edouard Tisserant [Fri, 02 Feb 2018 11:07:39 +0100] rev 1921
Launcher: allows customizations to specify what globals passed to extensions

Fri, 02 Feb 2018 11:06:41 +0100Documentation
Edouard Tisserant [Fri, 02 Feb 2018 11:06:41 +0100] rev 1920
Documentation

Thu, 01 Feb 2018 14:51:18 +0100Another set of meaningless changes to satisfy PEP8 and PyLint.
Edouard Tisserant [Thu, 01 Feb 2018 14:51:18 +0100] rev 1919
Another set of meaningless changes to satisfy PEP8 and PyLint.

Wed, 31 Jan 2018 15:25:30 +0100PEP8 conformity for modbus. Most of it done by autopep8, plus some easy refactoring.
Edouard Tisserant [Wed, 31 Jan 2018 15:25:30 +0100] rev 1918
PEP8 conformity for modbus. Most of it done by autopep8, plus some easy refactoring.

Wed, 31 Jan 2018 15:22:43 +0100Add some class factory function to ease declaration of simple POU libraries in customizations (i.e. TC6 XML file only, no special C code generation)
Edouard Tisserant [Wed, 31 Jan 2018 15:22:43 +0100] rev 1917
Add some class factory function to ease declaration of simple POU libraries in customizations (i.e. TC6 XML file only, no special C code generation)

Wed, 31 Jan 2018 15:20:42 +0100Small pep8 conformity enforcement.
Edouard Tisserant [Wed, 31 Jan 2018 15:20:42 +0100] rev 1916
Small pep8 conformity enforcement.

Wed, 31 Jan 2018 11:29:17 +0100Better have globals passed to python extensions (-e) than locals.
Edouard Tisserant [Wed, 31 Jan 2018 11:29:17 +0100] rev 1915
Better have globals passed to python extensions (-e) than locals.

Wed, 31 Jan 2018 11:21:08 +0100launcher : move call to ShowSplashScreen and BackgroundInitialization to PreStart()
Edouard Tisserant [Wed, 31 Jan 2018 11:21:08 +0100] rev 1914
launcher : move call to ShowSplashScreen and BackgroundInitialization to PreStart()
It doesn't change behaviour of launcher in beremiz, but may have some impact on some customizations.
Some customizations need to squeeze some bitmap folder init in between app creation and ShowSplashScreen

Tue, 30 Jan 2018 16:23:50 +0100modbus extension code cleanup, from smarteh's patch
Edouard Tisserant [Tue, 30 Jan 2018 16:23:50 +0100] rev 1913
modbus extension code cleanup, from smarteh's patch

Tue, 30 Jan 2018 16:06:58 +0100Merged Mario's modbus branch. Fixed line endings.
Edouard Tisserant [Tue, 30 Jan 2018 16:06:58 +0100] rev 1912
Merged Mario's modbus branch. Fixed line endings.

Fri, 24 Mar 2017 12:07:47 +0000merge
Mario de Sousa <msousa@fe.up.pt> [Fri, 24 Mar 2017 12:07:47 +0000] rev 1911
merge

Sun, 05 Mar 2017 00:38:25 +0000Ignore bug report files.
Mario de Sousa <msousa@fe.up.pt> [Sun, 05 Mar 2017 00:38:25 +0000] rev 1910
Ignore bug report files.

Sun, 05 Mar 2017 00:37:54 +0000Add support for Modbus (TCP and RTU) working as master & slave
Mario de Sousa <msousa@fe.up.pt> [Sun, 05 Mar 2017 00:37:54 +0000] rev 1909
Add support for Modbus (TCP and RTU) working as master & slave

Mon, 29 Jan 2018 13:31:14 +0100merge
Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 29 Jan 2018 13:31:14 +0100] rev 1908
merge

Wed, 24 Jan 2018 16:12:49 +0100fixed erro introduced 2 commits ago (-e) : tuples have no reverse() method
Edouard Tisserant [Wed, 24 Jan 2018 16:12:49 +0100] rev 1907
fixed erro introduced 2 commits ago (-e) : tuples have no reverse() method

Wed, 24 Jan 2018 15:44:36 +0100Trying to get better logging/display of exceptions at runtime's startup
Edouard Tisserant [Wed, 24 Jan 2018 15:44:36 +0100] rev 1906
Trying to get better logging/display of exceptions at runtime's startup

Wed, 24 Jan 2018 14:48:49 +0100Changed way to deal with extensions arguments (-e) so that path and filename are stored independently and accessible for extensions themselves.
Edouard Tisserant [Wed, 24 Jan 2018 14:48:49 +0100] rev 1905
Changed way to deal with extensions arguments (-e) so that path and filename are stored independently and accessible for extensions themselves.

Mon, 29 Jan 2018 12:56:49 +0100Textviewer : moved call to Colourise in a better place, so that ST highlighting gets also updated when typing in some case, not only IL
Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 29 Jan 2018 12:56:49 +0100] rev 1904
Textviewer : moved call to Colourise in a better place, so that ST highlighting gets also updated when typing in some case, not only IL

Fri, 19 Jan 2018 15:12:23 +0100Main runtime template C code : Added HAVE_RETAIN preprocessor definition for customized build to signal it provides IEC-61131 Retain memory handling function. Removed targets/Xenomai/plc_Xenomai_noretain.c, now useless.
Edouard Tisserant [Fri, 19 Jan 2018 15:12:23 +0100] rev 1903
Main runtime template C code : Added HAVE_RETAIN preprocessor definition for customized build to signal it provides IEC-61131 Retain memory handling function. Removed targets/Xenomai/plc_Xenomai_noretain.c, now useless.

Mon, 15 Jan 2018 14:43:53 +0100Clarify licensing, and packaging of runtime only files :
Edouard Tisserant [Mon, 15 Jan 2018 14:43:53 +0100] rev 1902
Clarify licensing, and packaging of runtime only files :
- moved and split targets/typemapping.py into runtime/typemapping.py and runtime/loglevels.py
- added runtime_files.list pointing to files necessary for runtime, and referring to runtime license

Thu, 11 Jan 2018 15:41:20 +0100Enforced check_source.sh pep8 and pylint rules.
Edouard Tisserant [Thu, 11 Jan 2018 15:41:20 +0100] rev 1901
Enforced check_source.sh pep8 and pylint rules.

Thu, 11 Jan 2018 15:39:58 +0100runtime/WAMP: Fixed secret loading into configuration. Fixed secret commandline switch handling.
Edouard Tisserant [Thu, 11 Jan 2018 15:39:58 +0100] rev 1900
runtime/WAMP: Fixed secret loading into configuration. Fixed secret commandline switch handling.

Thu, 11 Jan 2018 13:02:09 +0100runtime/WAMP : was 'Added time print on session left.' from dporopat. Purpose is to log (dis/re)connection, to help debugging connection problem
Edouard Tisserant [Thu, 11 Jan 2018 13:02:09 +0100] rev 1899
runtime/WAMP : was 'Added time print on session left.' from dporopat. Purpose is to log (dis/re)connection, to help debugging connection problem

Thu, 11 Jan 2018 12:48:49 +0100runtime/Wamp : adapt to unicode being enforced in latest crossbar API. Updated some documentation, to explain why there is unused definitions like SubscribedEvents or DoOnJoin.
Edouard Tisserant [Thu, 11 Jan 2018 12:48:49 +0100] rev 1898
runtime/Wamp : adapt to unicode being enforced in latest crossbar API. Updated some documentation, to explain why there is unused definitions like SubscribedEvents or DoOnJoin.

Wed, 10 Jan 2018 15:36:03 +0100Extend python<->PLC global variable description "GlobalDesc" to support Initial value setting.
Edouard Tisserant [Wed, 10 Jan 2018 15:36:03 +0100] rev 1897
Extend python<->PLC global variable description "GlobalDesc" to support Initial value setting.

Rebased from dporopat change "add initial value to runtime.py file", which means :
- GlobalDesc is used by some customized beremiz python runtime
- Those runtimes need to know what is initial value of these special variables

Wed, 10 Jan 2018 14:35:04 +0100update tests/wamp README file, based on changes from dporopat.
Edouard Tisserant [Wed, 10 Jan 2018 14:35:04 +0100] rev 1896
update tests/wamp README file, based on changes from dporopat.

Wed, 10 Jan 2018 13:23:40 +0100Fixed WAMP test (crossbar confile upgrade and use same ID on both PLC and IDE side)
Edouard Tisserant [Wed, 10 Jan 2018 13:23:40 +0100] rev 1895
Fixed WAMP test (crossbar confile upgrade and use same ID on both PLC and IDE side)

Wed, 10 Jan 2018 13:21:42 +0100Fixed changes from dporopat and agregorcic about WAMP CRA and config.
Edouard Tisserant [Wed, 10 Jan 2018 13:21:42 +0100] rev 1894
Fixed changes from dporopat and agregorcic about WAMP CRA and config.

Tue, 09 Jan 2018 15:08:08 +0100WAMP runtime : changes from dporopat and agregorcic, adding CRA (-s) and changed way to load WAMP conf (-c)
Edouard Tisserant [Tue, 09 Jan 2018 15:08:08 +0100] rev 1893
WAMP runtime : changes from dporopat and agregorcic, adding CRA (-s) and changed way to load WAMP conf (-c)
- added Challenge Response Authentication,
- use -s commandline switch to give the shared secret.
- WAMP configuration now either given as -c commandline switch
or taken as default wampconf.json in project files.

Tue, 09 Jan 2018 14:52:56 +0100Set WAMP registration option so that reconnecting while earlier session still didn't timeout is possible (in case of connection lost, for example).
Edouard Tisserant [Tue, 09 Jan 2018 14:52:56 +0100] rev 1892
Set WAMP registration option so that reconnecting while earlier session still didn't timeout is possible (in case of connection lost, for example).

Tue, 09 Jan 2018 14:50:41 +0100More canonical overload of ReconnectingClientFactory (according twisted doc)
Edouard Tisserant [Tue, 09 Jan 2018 14:50:41 +0100] rev 1891
More canonical overload of ReconnectingClientFactory (according twisted doc)

Tue, 09 Jan 2018 14:42:23 +0100non significant print syntax change. ready for py3.
Edouard Tisserant [Tue, 09 Jan 2018 14:42:23 +0100] rev 1890
non significant print syntax change. ready for py3.

Tue, 09 Jan 2018 14:38:45 +0100whitespace cosmetic for pep8
Edouard Tisserant [Tue, 09 Jan 2018 14:38:45 +0100] rev 1889
whitespace cosmetic for pep8

Mon, 08 Jan 2018 11:09:02 +0100Added arbitrary timeout on Pyro, to force it to free memory after disconnect.
Edouard Tisserant [Mon, 08 Jan 2018 11:09:02 +0100] rev 1888
Added arbitrary timeout on Pyro, to force it to free memory after disconnect.

Fri, 05 Jan 2018 15:39:02 +0100Moved code from to Beremiz_service.py Server class Start method to Loop method to allow customisation by hot patching. Also renamed Stop method as _stop and use Restart instead of Stop from everywhere else to make it clear that _stop actually does restart...
Edouard Tisserant [Fri, 05 Jan 2018 15:39:02 +0100] rev 1887
Moved code from to Beremiz_service.py Server class Start method to Loop method to allow customisation by hot patching. Also renamed Stop method as _stop and use Restart instead of Stop from everywhere else to make it clear that _stop actually does restart...

Thu, 04 Jan 2018 16:00:35 +0100enforce PEP8 in previous commit
Edouard Tisserant [Thu, 04 Jan 2018 16:00:35 +0100] rev 1886
enforce PEP8 in previous commit

Fri, 20 Jan 2017 13:22:31 +0100replaced normal panel with scrolled panel under project properties
dporopat <denis.poropat@smarteh.si> [Fri, 20 Jan 2017 13:22:31 +0100] rev 1885
replaced normal panel with scrolled panel under project properties

Tue, 05 Dec 2017 12:38:04 +0300fix missing root in empty search results panel
Surkov Sergey <surkovsv93@gmail.com> [Tue, 05 Dec 2017 12:38:04 +0300] rev 1884
fix missing root in empty search results panel

Mon, 04 Dec 2017 19:35:31 +0300add possibility to specify subprocess stdout encoding
Surkov Sergey <surkovsv93@gmail.com> [Mon, 04 Dec 2017 19:35:31 +0300] rev 1883
add possibility to specify subprocess stdout encoding

Mon, 04 Dec 2017 11:20:46 +0300fix deadlock if method kill() is called after process is already finished
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 04 Dec 2017 11:20:46 +0300] rev 1882
fix deadlock if method kill() is called after process is already finished

Wed, 25 Oct 2017 13:50:26 +0300fix pylint py3k conversion warning: "(no-absolute-import) import missing `from __future__ import absolute_import`"
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 25 Oct 2017 13:50:26 +0300] rev 1881
fix pylint py3k conversion warning: "(no-absolute-import) import missing `from __future__ import absolute_import`"

Mon, 23 Oct 2017 18:25:45 +0300make CanFestival to be at the expected place in bitbucket pipelines container
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 23 Oct 2017 18:25:45 +0300] rev 1880
make CanFestival to be at the expected place in bitbucket pipelines container

Thu, 19 Oct 2017 13:33:01 +0300fix pylint error '(unsubscriptable-object) Value 'X' is unsubscriptable'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 19 Oct 2017 13:33:01 +0300] rev 1879
fix pylint error '(unsubscriptable-object) Value 'X' is unsubscriptable'

Thu, 19 Oct 2017 11:03:03 +0300fix pylint warning '(bad-continuation) Wrong hanging indentation before block'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 19 Oct 2017 11:03:03 +0300] rev 1878
fix pylint warning '(bad-continuation) Wrong hanging indentation before block'

Thu, 19 Oct 2017 10:57:35 +0300force all python source code to have LF line ending
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 19 Oct 2017 10:57:35 +0300] rev 1877
force all python source code to have LF line ending

Wed, 18 Oct 2017 12:23:19 +0300fix pylint warning '(expression-not-assigned) Expression "X" is assigned to nothing'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 18 Oct 2017 12:23:19 +0300] rev 1876
fix pylint warning '(expression-not-assigned) Expression "X" is assigned to nothing'

Tue, 17 Oct 2017 11:29:20 +0300fix pylint warning '(redefine-in-handler) Redefining name 'X' from outer scope (line Y) in exception handler'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 17 Oct 2017 11:29:20 +0300] rev 1875
fix pylint warning '(redefine-in-handler) Redefining name 'X' from outer scope (line Y) in exception handler'

Tue, 17 Oct 2017 11:09:01 +0300fix displaying result of update check during Beremiz startup
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 17 Oct 2017 11:09:01 +0300] rev 1874
fix displaying result of update check during Beremiz startup

Tue, 17 Oct 2017 09:51:43 +0300fix pylint warning '(no-init) Class has no __init__ method'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 17 Oct 2017 09:51:43 +0300] rev 1873
fix pylint warning '(no-init) Class has no __init__ method'

Mon, 16 Oct 2017 17:20:31 +0300fix pylint error "(undefined-variable) Undefined variable 'X'"
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 16 Oct 2017 17:20:31 +0300] rev 1872
fix pylint error "(undefined-variable) Undefined variable 'X'"

Fri, 13 Oct 2017 13:17:42 +0300fix problem happend when tests are running under python-coverage
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 13 Oct 2017 13:17:42 +0300] rev 1871
fix problem happend when tests are running under python-coverage

$ python-coverage run ./tests/tools/test_application.py

Exception while connecting LOCAL://!
Traceback (most recent call last):
File "/home/developer/WorkData/PLC/beremiz/beremiz/ProjectController.py", line 1753, in _Connect
self._SetConnector(connectors.ConnectorFactory(uri, self)
File "/home/developer/WorkData/PLC/beremiz/beremiz/ProjectController.py", line 1702, in _SetConnector
if connector is not None:
PyAssertionError: C++ assertion "m_window" failed at ../src/gtk/dcclient.cpp(2043) in DoGetSize(): GetSize() doesn't work without window

Thu, 12 Oct 2017 16:18:05 +0300fix pylint error '(too-many-function-args) Too many positional arguments for function call'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 12 Oct 2017 16:18:05 +0300] rev 1870
fix pylint error '(too-many-function-args) Too many positional arguments for function call'

Wed, 11 Oct 2017 13:55:56 +0300fix pylint error '(import-error) Unable to import X'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 11 Oct 2017 13:55:56 +0300] rev 1869
fix pylint error '(import-error) Unable to import X'

Wed, 11 Oct 2017 13:15:21 +0300fix pylint error '(no-self-argument) Method should have "self" as first argument'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 11 Oct 2017 13:15:21 +0300] rev 1868
fix pylint error '(no-self-argument) Method should have "self" as first argument'

Wed, 11 Oct 2017 11:54:55 +0300fix pylint error "(no-name-in-module) No name 'X' in module 'Y'"
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 11 Oct 2017 11:54:55 +0300] rev 1867
fix pylint error "(no-name-in-module) No name 'X' in module 'Y'"

Wed, 11 Oct 2017 11:41:32 +0300fix pylint error '(bad-except-order) Bad except clauses order (X is an ancestor class of Y)'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 11 Oct 2017 11:41:32 +0300] rev 1866
fix pylint error '(bad-except-order) Bad except clauses order (X is an ancestor class of Y)'

Wed, 11 Oct 2017 11:35:19 +0300fix pylint warning "(no-value-for-parameter) No value for argument 'X' in function call"
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 11 Oct 2017 11:35:19 +0300] rev 1865
fix pylint warning "(no-value-for-parameter) No value for argument 'X' in function call"

Wed, 11 Oct 2017 10:34:45 +0300fix problems with unconnected input of InOut function variables and
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 11 Oct 2017 10:34:45 +0300] rev 1864
fix problems with unconnected input of InOut function variables and
enfoce InOut variables to be connected for functions and function blocks

Tue, 10 Oct 2017 16:38:57 +0300fix error for functions with VAR_IN_OUT
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 10 Oct 2017 16:38:57 +0300] rev 1863
fix error for functions with VAR_IN_OUT

The problem was found by pylint '(used-before-assignment) Using variable "X" before assignment'

Tue, 10 Oct 2017 14:01:46 +0300fix pylint warning '(unidiomatic-typecheck) Using type() instead of isinstance() for a typecheck'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 10 Oct 2017 14:01:46 +0300] rev 1862
fix pylint warning '(unidiomatic-typecheck) Using type() instead of isinstance() for a typecheck'

Tue, 10 Oct 2017 13:49:13 +0300fix pylint warning '(misplaced-bare-raise) The raise statement is not inside an except clause'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 10 Oct 2017 13:49:13 +0300] rev 1861
fix pylint warning '(misplaced-bare-raise) The raise statement is not inside an except clause'

Tue, 10 Oct 2017 13:43:55 +0300fix format string argument error found by pylint '(too-many-format-args) Too many arguments for format string'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 10 Oct 2017 13:43:55 +0300] rev 1860
fix format string argument error found by pylint '(too-many-format-args) Too many arguments for format string'

Tue, 10 Oct 2017 13:33:46 +0300fix pylint warning '(wrong-import-position) Import "import X" should be placed at the top of the module'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 10 Oct 2017 13:33:46 +0300] rev 1859
fix pylint warning '(wrong-import-position) Import "import X" should be placed at the top of the module'

Tue, 10 Oct 2017 13:21:48 +0300fix pylint warning '(import-self) Module import itself'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 10 Oct 2017 13:21:48 +0300] rev 1858
fix pylint warning '(import-self) Module import itself'

Tue, 10 Oct 2017 12:50:10 +0300remove old code useless code found by pylint "(unnecessary-pass) Unnecessary pass statement"
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 10 Oct 2017 12:50:10 +0300] rev 1857
remove old code useless code found by pylint "(unnecessary-pass) Unnecessary pass statement"

Tue, 10 Oct 2017 12:34:50 +0300fix error found by pylint 'W0104(pointless-statement) Statement seems to have no effect'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 10 Oct 2017 12:34:50 +0300] rev 1856
fix error found by pylint 'W0104(pointless-statement) Statement seems to have no effect'

Tue, 10 Oct 2017 12:21:46 +0300fix pylint warning "(undefined-loop-variable) Using possibly undefined loop variable 'X'"
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 10 Oct 2017 12:21:46 +0300] rev 1855
fix pylint warning "(undefined-loop-variable) Using possibly undefined loop variable 'X'"

Tue, 10 Oct 2017 11:58:30 +0300fix pylint warning 'C0112(empty-docstring) Empty function docstring'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 10 Oct 2017 11:58:30 +0300] rev 1854
fix pylint warning 'C0112(empty-docstring) Empty function docstring'

Mon, 09 Oct 2017 18:13:26 +0300fix pylint warning "(relative-import) Relative import 'Y', should be 'X.Y'"
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 09 Oct 2017 18:13:26 +0300] rev 1853
fix pylint warning "(relative-import) Relative import 'Y', should be 'X.Y'"

Mon, 09 Oct 2017 16:04:39 +0300fix pylint warning '(dangerous-default-value) Dangerous default value {} as argument'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 09 Oct 2017 16:04:39 +0300] rev 1852
fix pylint warning '(dangerous-default-value) Dangerous default value {} as argument'

Mon, 09 Oct 2017 12:30:14 +0300fix pylint warning '(old-style-class) Old-style class defined.'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 09 Oct 2017 12:30:14 +0300] rev 1851
fix pylint warning '(old-style-class) Old-style class defined.'

This warning is ignored for classes from PyJSLib, because library
overrides base object class.

Fri, 06 Oct 2017 17:52:34 +0300fix pylint warning '(unused-import), Unused import connectors'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 06 Oct 2017 17:52:34 +0300] rev 1850
fix pylint warning '(unused-import), Unused import connectors'

Thu, 05 Oct 2017 16:46:29 +0300fix typos
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 05 Oct 2017 16:46:29 +0300] rev 1849
fix typos

Thu, 05 Oct 2017 16:41:31 +0300comment out unused code SFC_Step.RefreshBoundingBox()
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 05 Oct 2017 16:41:31 +0300] rev 1848
comment out unused code SFC_Step.RefreshBoundingBox()

Thu, 05 Oct 2017 16:38:49 +0300explicitly mark unused variables found by pylint with _ or dummy
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 05 Oct 2017 16:38:49 +0300] rev 1847
explicitly mark unused variables found by pylint with _ or dummy

pylint don't ignores unused variables with '_' in the name, even when
they are started with '_'. This bug is already fixed upstream, to fix
this in all versions of pylint custom dummy-variables-rgx is used
'_+$|(_[a-zA-Z0-9_]*[a-zA-Z0-9]+?$)|dummy'

Tue, 03 Oct 2017 16:31:31 +0300remove unused variables found by pylint
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 03 Oct 2017 16:31:31 +0300] rev 1846
remove unused variables found by pylint

Tue, 03 Oct 2017 16:12:55 +0300update .PHONE target in Makefile for mki18n.py
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 03 Oct 2017 16:12:55 +0300] rev 1845
update .PHONE target in Makefile for mki18n.py

Tue, 03 Oct 2017 16:08:40 +0300make mki18n return 0 on success
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 03 Oct 2017 16:08:40 +0300] rev 1844
make mki18n return 0 on success

Tue, 03 Oct 2017 16:08:00 +0300update list with files for internatialization, app.fil
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 03 Oct 2017 16:08:00 +0300] rev 1843
update list with files for internatialization, app.fil

Tue, 03 Oct 2017 16:07:02 +0300move README content to Makefile
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 03 Oct 2017 16:07:02 +0300] rev 1842
move README content to Makefile

It's not necessary to copy commands from README anymore. Just use
'make source_list', 'make template' or 'make locales'.

Mon, 02 Oct 2017 13:19:06 +0300fix pylint warning '(global-variable-not-assigned) Using global for 'X' but no assignment is done'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 02 Oct 2017 13:19:06 +0300] rev 1841
fix pylint warning '(global-variable-not-assigned) Using global for 'X' but no assignment is done'

Mon, 02 Oct 2017 12:43:01 +0300fix pylint error '(function-redefined) method already defined'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 02 Oct 2017 12:43:01 +0300] rev 1840
fix pylint error '(function-redefined) method already defined'

Fri, 29 Sep 2017 16:48:42 +0300fix pylint warning '(unreachable) Unreachable code'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 29 Sep 2017 16:48:42 +0300] rev 1839
fix pylint warning '(unreachable) Unreachable code'

Fri, 29 Sep 2017 16:39:52 +0300fix pylint warning (bad-indentation) Bad indentation. Found X spaces, expected Y
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 29 Sep 2017 16:39:52 +0300] rev 1838
fix pylint warning (bad-indentation) Bad indentation. Found X spaces, expected Y

Fri, 29 Sep 2017 16:26:15 +0300fix pylint warning '(pointless-string-statement) String statement has no effect'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 29 Sep 2017 16:26:15 +0300] rev 1837
fix pylint warning '(pointless-string-statement) String statement has no effect'

Python doesn't support docstring for variables directly. Where
appropriate Sphinx style for docstrings for variables is used
'#: some-docstring'

Fri, 29 Sep 2017 15:36:33 +0300fix error __init__ method from base class is not called
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 29 Sep 2017 15:36:33 +0300] rev 1836
fix error __init__ method from base class is not called

Thu, 28 Sep 2017 17:24:33 +0300fix more than one statement on a single line
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 28 Sep 2017 17:24:33 +0300] rev 1835
fix more than one statement on a single line

Thu, 28 Sep 2017 17:20:31 +0300fix ungrouped imports from package X
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 28 Sep 2017 17:20:31 +0300] rev 1834
fix ungrouped imports from package X

Thu, 28 Sep 2017 16:25:05 +0300fix unnecessary lambda and enable corresponding pylint check
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 28 Sep 2017 16:25:05 +0300] rev 1833
fix unnecessary lambda and enable corresponding pylint check

Thu, 28 Sep 2017 15:17:57 +0300fix wrong-import-order. first standard modules are imported, then others
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 28 Sep 2017 15:17:57 +0300] rev 1832
fix wrong-import-order. first standard modules are imported, then others

Thu, 28 Sep 2017 12:20:40 +0300fix (old-style-class) Old-style class defined error for most parts of
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 28 Sep 2017 12:20:40 +0300] rev 1831
fix (old-style-class) Old-style class defined error for most parts of
the code

only PyJS code is left, because it does some fancy tricks and can't be
easily fixed. So far PyJS doesn't support Python3 anyway.