Edouard Tisserant [Tue, 14 Aug 2018 12:43:43 +0200] rev 2267
merged
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
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.
Edouard Tisserant [Mon, 13 Aug 2018 14:58:59 +0200] rev 2264
Removed now deprecated ForceReload from WAMP exposed calls
Edouard Tisserant [Mon, 13 Aug 2018 13:24:48 +0200] rev 2263
fixed documentation bug
Edouard Tisserant [Mon, 13 Aug 2018 13:24:28 +0200] rev 2262
NevowServer : added addInfoString to allow extensions to declare some read-only strings to be displayed in settings. Also renamed addExtension in addSettings for clarity.
Mario de Sousa <msousa@fe.up.pt> [Mon, 13 Aug 2018 11:10:23 +0200] rev 2261
fixed problems reported by certification testing : vendor identifier acces rights (now read only), and bvlc_maintenance timer was increasing too fast.
Edouard Tisserant [Thu, 09 Aug 2018 09:07:09 +0200] rev 2260
Some blank lines to make bitbucket's PEP8 2.2.0 happy
Edouard Tisserant [Wed, 08 Aug 2018 13:46:19 +0200] rev 2259
merged Andrey's default
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 01 Aug 2018 13:09:45 +0300] rev 2258
Fix wrong code generation if EN/ENO are used in FBD/LD/SFC
This problem appears for example here
--------
------- | MOVE |
| MOVE1 |------|EN ENO|
------- | |
| |
------- | | -----------
| 23 |------|IN OUT|---| LocalVar0 |
------- -------- -----------
--------
------- | MOVE |
| MOVE2 |------|EN ENO|
------- | |
| |
------- | | -----------
| 15 |------|IN OUT|---| LocalVar0 |
------- -------- -----------
Before wrong code was generated for this case:
MOVE6_OUT := MOVE(EN := move1, IN := 23, ENO => MOVE6_ENO);
LocalVar0 := MOVE6_OUT;
MOVE4_OUT := MOVE(EN := move2, IN := 15, ENO => MOVE4_ENO);
LocalVar0 := MOVE4_OUT;
With this patch now following code is generated:
MOVE6_OUT := MOVE(EN := move1, IN := 23, ENO => MOVE6_ENO);
IF MOVE6_ENO THEN
LocalVar0 := MOVE6_OUT;
END_IF;
MOVE4_OUT := MOVE(EN := move2, IN := 15, ENO => MOVE4_ENO);
IF MOVE4_ENO THEN
LocalVar0 := MOVE4_OUT;
END_IF;
See discussion here:
https://sourceforge.net/p/beremiz/mailman/message/36378805/
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 31 Jul 2018 14:17:41 +0300] rev 2257
Fix flickering in debug panel
This flickering made debug panel unusable, because most of the time
panel was white. This problem effects wxPython with GTK3+ backend
(at least on GNU/Linux systems).
Removed code IIUC draws box with content of moved debug variable, I
don't see any effect of it neither on GNU/Linux nor on Windows. It
should be safe to remove.
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 30 Jul 2018 19:28:39 +0300] rev 2256
Fix non-usable toolbar on wxPython with GTK3+
On GNU/Linux if wxPython uses wxWidget with GTK3+ backend (this is
what most modern distributions do), then size of EditorToolBar was
always to store only one button.
This is because GetBestSize() is updated only after pane is shown and
updated.
The code does work correctly on python-wxgtk3.0 (gtk2 backend) on
GNU/Linux and with wxpython 2.8 on Windows.
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 30 Jul 2018 19:02:36 +0300] rev 2255
Fix problem with decreasing size of StatusToolBar when tools are removed from toolbar.
StatusToolBar - toolbar with tool to build, clear, connect, ...
This problem appears only in python-wxgtk3.0. In python-wxgtk2.8 there
was not such problem.
If call StatusToolBar.SetMinSize(wx.DefaultSize), all is working, but
following warning message appears:
(Beremiz.py:15155): Gtk-WARNING **: 18:42:24.115: Negative content
width -6 (allocation 1, extents 4x3) while allocating gadget (node
toolbar, owner GtkToolbar)
To avoid that StatusToolBar.GetToolBitmapSize() is used instead of wx.DefaultSize
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sun, 29 Jul 2018 02:00:03 +0300] rev 2254
Add BACnet example
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 27 Jul 2018 22:01:10 +0000] rev 2253
Rework README.md, add examples section, add instructions for Modbus extension, more information about runtime.
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 27 Jul 2018 15:44:20 +0300] rev 2252
Add Modbus example
Edouard Tisserant [Wed, 08 Aug 2018 13:27:44 +0200] rev 2251
Disable source quality checking on ethercat plugin - will fix it later
Edouard Tisserant [Wed, 08 Aug 2018 13:26:48 +0200] rev 2250
Passed bacnet*.py through autopep8, and attemped to fix manually what went wrong + fixed pylint complains
Edouard Tisserant [Wed, 08 Aug 2018 10:17:19 +0200] rev 2249
More pylint+pep8 conformance
Edouard Tisserant [Wed, 08 Aug 2018 10:15:51 +0200] rev 2248
autopep8 + hand made fixes on ProjectController.py runtime/WampClient.py wxglade_hmi/wxglade_hmi.py
Edouard Tisserant [Tue, 07 Aug 2018 13:35:28 +0200] rev 2247
pylint on runtime/NevowServer.py
Edouard Tisserant [Mon, 06 Aug 2018 15:36:09 +0200] rev 2246
pep8 on runtime/NevowServer.py
Edouard Tisserant [Mon, 06 Aug 2018 14:30:43 +0200] rev 2245
merged
Edouard Tisserant [Mon, 06 Aug 2018 13:14:50 +0200] rev 2244
Make some POU libraries selected by default or not. This changes structure of features.libraries, please check and update your extensions if they use libraries
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 04 Jul 2018 17:47:38 +0300] rev 2243
remove useless code
1. hotkey is already defined in menu string
2. remove duplicated code
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 04 Jul 2018 16:41:02 +0300] rev 2242
Add full screen mode (menu and title are hidden)
It's can be switched by pressing Shift-F12 or by clicking button on the toolbar
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 03 Jul 2018 17:09:11 +0300] rev 2241
Add information how to make shelve command work with check_source.sh called from hg hook
and added coresponding flag handling in check_source.sh
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 29 Jun 2018 17:53:57 +0300] rev 2240
Automatically increment IEC-location address if copy of the variable is created
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 29 Jun 2018 15:36:34 +0300] rev 2239
Make information about translation to be in unicode
This is necessary because some translator's names contains non-ASCII
characters and they are not handled properly in about dialog on Windows
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 29 Jun 2018 13:40:11 +0300] rev 2238
Take plcopen_icons.svg as source of png icons as well
generate poe.ico from png images of different sizes.
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 29 Jun 2018 13:36:32 +0300] rev 2237
Add 256x256 and 64x64 Beremiz icons
remove svg:midPointStop tags from icons.svg, because Inkscape
complained about unsupported tag. It seems that these tags were made
by Adobe Illustrator and aren't supported by any other app.
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 29 Jun 2018 13:30:39 +0300] rev 2236
Add PLCOpenEditor icon to plcopen_icons.svg
add 256x256 size to the icon
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 27 Jun 2018 18:13:31 +0300] rev 2235
Fix rounding of thousandths of microseconds in duration editor
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 27 Jun 2018 17:13:06 +0300] rev 2234
Add checking value in microseconds field in duration editor dialog
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 27 Jun 2018 13:57:03 +0300] rev 2233
Catch 'clipboard already open' errors in editors
Apparently following commits have not fixed the problem completely,
because it still happens (although not so often).
changeset: 2019:b8f795bdfe9f
user: Andrey Skvortsov <andrej.skvortzov@gmail.com>
date: Fri May 25 17:40:29 2018 +0300
summary: fix hangs on mouse selection in case if wxPython uses wxWidgets with GTK3+ support
changeset: 2018:5ce6d08ff2c7
user: Andrey Skvortsov <andrej.skvortzov@gmail.com>
date: Fri May 25 17:23:15 2018 +0300
summary: make clipboard open minimal time as wxPython documentation recommends
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 27 Jun 2018 10:58:45 +0300] rev 2232
If task type is changed from 'interrupt' to 'cyclic' init interval with T#20ms.
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 26 Jun 2018 18:02:51 +0300] rev 2231
Explicitly enable required libraries in test projects
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 26 Jun 2018 17:46:37 +0300] rev 2230
Disable by default unlisted in project beremiz.xml libraries
Used libraries should be explicitly enabled.
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 26 Jun 2018 17:34:15 +0300] rev 2229
Fix 'DoGetTextExtent - invalid DC' error
most likely this error happens only on certain wx backends.
GTK3+ on GNU/Linux is apparently one of them.
The problem is described in wxWidgets issue tracker.
http://trac.wxwidgets.org/ticket/12486
[-------------------------------------------------------------------------------------------------------------------]
platform:
Linux-4.16.0-2-rt-amd64-x86_64-with-debian-buster-sid
python-version:
2.7.15
traceback:
File "/home/developer/WorkData/PLC/beremiz/beremiz/ProjectController.py", line 1605, in DispatchDebugValuesProc
self.CallWeakcallables("__tick__", "NewDataAvailable", debug_ticks)
File "/home/developer/WorkData/PLC/beremiz/beremiz/ProjectController.py", line 1585, in CallWeakcallables
function(*cargs)
File "/home/developer/WorkData/PLC/beremiz/beremiz/editors/Viewer.py", line 1217, in NewDataAvailable
refresh_rect.Union(element.GetRedrawRect())
File "/home/developer/WorkData/PLC/beremiz/beremiz/graphics/GraphicCommons.py", line 1609, in GetRedrawRect
self.ValueSize = self.Parent.GetMiniTextExtent(self.ComputedValue)
File "/home/developer/WorkData/PLC/beremiz/beremiz/editors/Viewer.py", line 932, in GetMiniTextExtent
return self.MiniTextDC.GetTextExtent(text)
File "/usr/lib/python2.7/dist-packages/wx-3.0-gtk3/wx/_gdi.py", line 4127, in GetTextExtent
return _gdi_.DC_GetTextExtent(*args, **kwargs)
<class 'wx._core.PyAssertionError'>: C++ assertion "m_graphicContext" failed at ../src/common/dcgraph.cpp(1160) in DoGetTextExtent(): wxGCDC(cg)::DoGetTextExtent - invalid DC
wx-platform:
__WXGTK__
wx-version:
3.0.2.0
[-------------------------------------------------------------------------------------------------------------------]
traceback:
File "/home/developer/WorkData/PLC/beremiz/beremiz/controls/LogViewer.py", line 740, in OnMessageToolTipTimer
self.MessageToolTip.SetFont(self.Font)
File "/home/developer/WorkData/PLC/beremiz/beremiz/controls/CustomToolTip.py", line 75, in SetFont
self.RefreshTip()
File "/home/developer/WorkData/PLC/beremiz/beremiz/controls/CustomToolTip.py", line 158, in RefreshTip
self.SetClientSize(self.GetToolTipSize())
File "/home/developer/WorkData/PLC/beremiz/beremiz/controls/CustomToolTip.py", line 145, in GetToolTipSize
w, h = dc.GetTextExtent(line)
File "/usr/lib/python2.7/dist-packages/wx-3.0-gtk3/wx/_gdi.py", line 4127, in GetTextExtent
return _gdi_.DC_GetTextExtent(*args, **kwargs)
<class 'wx._core.PyAssertionError'>: C++ assertion "m_graphicContext" failed at ../src/common/dcgraph.cpp(1160) in DoGetTextExtent(): wxGCDC(cg)::DoGetTextExtent - invalid DC
[-------------------------------------------------------------------------------------------------------------------]
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 26 Jun 2018 14:48:44 +0300] rev 2228
Fix size of ProjectDialog used by PLCOpenEditor
Disable scrolling for ProjectDialog, because otherwise very very small
windows is created.
This regression was introduced by 5701225 ("replaced normal panel with scrolled panel under project
properties").
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 26 Jun 2018 10:37:36 +0300] rev 2227
Fix some compilation warnings for better ANSI C compliance
Edouard Tisserant [Fri, 20 Jul 2018 11:10:42 +0200] rev 2226
Customizable columns in VariableTables (i.e. can be monkey patched properly)
Edouard Tisserant [Fri, 20 Jul 2018 11:05:17 +0200] rev 2225
Merged
Edouard Tisserant [Thu, 19 Jul 2018 13:32:27 +0200] rev 2224
Customizable update of toolbar buttons (i.e. 'methods') according to PLCStatus
Edouard Tisserant [Fri, 13 Jul 2018 09:06:01 +0200] rev 2223
Fixed small typo in error message.
Edouard Tisserant [Thu, 12 Jul 2018 09:35:09 +0200] rev 2222
WAMP : complains about failure to start WAMP only if it was successfully imported.
Edouard Tisserant [Wed, 11 Jul 2018 14:32:19 +0200] rev 2221
WAMP: now config and secret given in project files always override those given in commandline. Also made extensions web customisations happen before registration of web interface.
Edouard Tisserant [Tue, 10 Jul 2018 12:54:05 +0200] rev 2220
Moved Wamp configuration file selection logic into runtime/wampclient.py. Added Wamp CRA secret file upload and download. Slightly reworked code for config and secret file loading and saving.
Edouard Tisserant [Tue, 10 Jul 2018 12:51:28 +0200] rev 2219
Added a way for extension to register dedicated URL under settings page URL (i.e. /settings/something)
Edouard Tisserant [Fri, 06 Jul 2018 15:09:44 +0200] rev 2218
Fixed a bit of everything in WAMP, and added web settings for that same extension.
Edouard Tisserant [Fri, 06 Jul 2018 15:07:40 +0200] rev 2217
Added some immutable field (platform) in default runtime web setting page, for the example.
Edouard Tisserant [Fri, 06 Jul 2018 15:05:03 +0200] rev 2216
Fix misc typos in exception handling code.
Edouard Tisserant [Thu, 05 Jul 2018 13:46:18 +0200] rev 2215
Fixed i18n related typo.
Edouard Tisserant [Thu, 05 Jul 2018 13:45:24 +0200] rev 2214
Fixed typo
Edouard Tisserant [Thu, 05 Jul 2018 13:44:54 +0200] rev 2213
Better logging of Nevow Server import in case of exception.
Edouard Tisserant [Thu, 05 Jul 2018 11:11:01 +0200] rev 2212
WampClient : Simplified, removed dead code, use exception for handling failures and misconfiguration, check existence of mandatory parameters.
Edouard Tisserant [Wed, 04 Jul 2018 14:17:00 +0200] rev 2211
Merged #2486, enhancements to WAMP client : auto reconnecting, wamp conf checking and saving, additional attributes for exposed calls, etc
Edouard Tisserant [Wed, 04 Jul 2018 14:10:03 +0200] rev 2210
Nevow based web interface now show simple Log message sending form for basic runtime, and allow extensions to add their own web settings.
Edouard Tisserant [Fri, 22 Jun 2018 14:08:34 +0200] rev 2209
Now, runtime extensions should be able to add their own settings to web configuration interface.
Edouard Tisserant [Fri, 22 Jun 2018 12:43:33 +0200] rev 2208
Embrio of setting form, just to test
dporopat <denis.poropat@smarteh.si> [Tue, 05 Jun 2018 15:29:58 +0200] rev 2207
#2486 Exception if custom protocol options are wrong.
dporopat <denis.poropat@smarteh.si> [Fri, 18 May 2018 11:05:49 +0200] rev 2206
#2486 ExposedCalls with register options as a dictionary.
dporopat <denis.poropat@smarteh.si> [Mon, 14 May 2018 13:05:54 +0200] rev 2205
#2486 Renaming functions.
dporopat <denis.poropat@smarteh.si> [Mon, 14 May 2018 08:45:44 +0200] rev 2204
#2486 Reconnect funtion in SaveWampClientConf function.
dporopat <denis.poropat@smarteh.si> [Wed, 09 May 2018 09:59:53 +0200] rev 2203
#2486 Modified reconnect function. Added 'active' parameter to wampconf.json file.
dporopat <denis.poropat@smarteh.si> [Thu, 19 Apr 2018 13:40:56 +0200] rev 2202
#2486 Adding reconnect funtion to WampClient. Global TransportFactory not needed anymore.
dporopat <denis.poropat@smarteh.si> [Wed, 18 Apr 2018 10:42:33 +0200] rev 2201
#2486 Added global TransportFactory, needed in WebInterface reconnecting function.
dporopat <denis.poropat@smarteh.si> [Wed, 18 Apr 2018 10:40:16 +0200] rev 2200
#2486 WampClient needs pyro.plcobj before registration calls.
dporopat <denis.poropat@smarteh.si> [Wed, 11 Apr 2018 10:53:48 +0200] rev 2199
#2486 Fix if protocol, register options are not present in wapmconf.json file.
dporopat <denis.poropat@smarteh.si> [Tue, 10 Apr 2018 12:08:23 +0200] rev 2198
#2486 Added ExposedProgressCalls list using details argument for registration progress calls.
dporopat <denis.poropat@smarteh.si> [Tue, 10 Apr 2018 10:44:46 +0200] rev 2197
#2486 Unnecessary variable removed.
dporopat <denis.poropat@smarteh.si> [Tue, 10 Apr 2018 09:54:22 +0200] rev 2196
#2486 Added option to use websocket register options. Added function getValidOptins to read options from wampconf.json.
dporopat <denis.poropat@smarteh.si> [Mon, 09 Apr 2018 14:38:38 +0200] rev 2195
#2486 Added option to use websocket protocol options.
dporopat <denis.poropat@smarteh.si> [Tue, 27 Mar 2018 10:11:04 +0200] rev 2194
#2486 Updated wamp test project to work with the latest Crossbar version.
dporopat <denis.poropat@smarteh.si> [Mon, 19 Mar 2018 12:18:07 +0100] rev 2193
#2486 Reset delay function added. It resets the delay and the retry counter on reconnect.
Edouard Tisserant <edouard.tisserant@gmail.com> [Sat, 23 Jun 2018 09:17:20 +0200] rev 2192
merge
Edouard Tisserant <edouard.tisserant@gmail.com> [Sat, 23 Jun 2018 09:16:35 +0200] rev 2191
merge
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 18 Jun 2018 12:17:07 +0300] rev 2190
Fix compilation warning/error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 18 Jun 2018 12:12:57 +0300] rev 2189
merge
Edouard Tisserant [Fri, 15 Jun 2018 09:48:05 +0200] rev 2188
WxGlade HMI extension now does only instanciate wx object who's name match extension's name. If no object match the name and no code is provided in 'start' user python code section, then a warning is issued
Edouard Tisserant [Wed, 13 Jun 2018 08:54:13 +0200] rev 2187
BACnet : ensure that Init did happen before continuing with PLC startup.
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 15 Jun 2018 16:41:55 +0300] rev 2186
Update list of files with strings for i18n and templates for translations
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 15 Jun 2018 16:30:06 +0300] rev 2185
Add small contributing document with information about codestyle checking
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 15 Jun 2018 16:12:50 +0300] rev 2184
Add argument to set list of source files to check
This is necessary, in case you want to use docker run in pretxncommit
Mercurial hook. Unfortunately for some reason if hg running in
container can't find just created commit defined by $HG_NODE. And it
throws error 'unknown revision'.
Here is example for hgrc.
[hooks]
pretxncommit.linter = hg status -m -n -a -n -I '**.py' --change $HG_NODE > files.lst && docker run --volume=$PWD:/beremiz --workdir="/beremiz" --volume=$PWD/../CanFestival-3:/CanFestival-3 --memory=1g --entrypoint=/beremiz/tests/tools/check_source.sh skvorl/beremiz-requirements --files-to-check files.lst
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
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Sat, 09 Jun 2018 17:14:56 +0300] rev 2182
Fix linter errors
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
[-----------------------------------------------]
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.
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
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
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 07 Jun 2018 16:31:26 +0300] rev 2177
Drop support for wxPython 2.6 and below
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 07 Jun 2018 14:45:03 +0300] rev 2176
Autoresize UriLocationEditor dialog window
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
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.
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".
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.
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.
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.
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'")
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.
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")
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
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.
Edouard Tisserant [Mon, 11 Aug 2014 23:13:35 +0200] rev 2164
Propagated matiec changes in FB var accessors
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
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
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
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
Laurent Bessard [Tue, 24 Sep 2013 15:18:25 +0200] rev 2159
Fixed bug when compiling
Laurent Bessard [Tue, 24 Sep 2013 00:50:02 +0200] rev 2158
Fixed higen example removing obsolete attribute in CIA402 node params file
Laurent Bessard [Tue, 24 Sep 2013 00:48:21 +0200] rev 2157
Fixed controllers for working with latest version of xmlclass
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