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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

it will be useful for retain implementations.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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