Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 14 Aug 2018 17:00:01 +0300] rev 2285
remote execute permissions from README file
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
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.
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')
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 13 Aug 2018 18:05:16 +0300] rev 2281
Remove backup .bak files
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 13 Aug 2018 11:33:30 +0300] rev 2280
Drop EtherCAT examples, because they are non-functional without releasing motion control library
Closes #38
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 10 Aug 2018 18:07:38 +0300] rev 2279
merge
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 10 Aug 2018 17:45:33 +0300] rev 2278
Dirty fix for error '_object_has_no_attribute_'getSlave' in EtherCAT extension
traceback:
File "/home/developer/WorkData/PLC/beremiz/beremiz/IDEFrame.py", line 1433, in OnPouSelectedChanged
window.RefreshView()
File "/home/developer/WorkData/PLC/beremiz/beremiz/etherlab/ConfigEditor.py", line 837, in RefreshView
self.RefreshProcessVariables()
File "/home/developer/WorkData/PLC/beremiz/beremiz/etherlab/ConfigEditor.py", line 886, in RefreshProcessVariables
slaves = self.Controler.GetSlaves(**self.CurrentNodesFilter)
File "/home/developer/WorkData/PLC/beremiz/beremiz/etherlab/EthercatMaster.py", line 341, in GetSlaves
for slave in self.Config.getConfig().getSlave():
<type 'exceptions.AttributeError'>:_'lxml.etree._Element'_object_has_no_attribute_'getSlave'
Steps to reproduce problem:
- Add new EtherCAT master
- Add new EthercatNode to the master
- double click on
this is looks like dirty hack to fix strange problem with initial[0]
changing its type after returning from _init_ method to lxml.etree._Element
As a result all methods generated by class factory are lost.
For example, in function initMethod initial[0].__class__ points to
xmlclass.xmlclass.Config. After map(self.append, initial)
self.Config.__class__ is 'xmlclass.xmlclass.Config' as well.
But after returning from initMethod (_init) in CreateElement
self.Config.__class__ has changed to lxml.etree._Element.
I've noticed similar behavior if copy/deepcopy is used for any child
of etree.ElementBase. See simple example below.
[-------------------------------------------------------------]
#!/usr/bin/python
from __future__ import print_function
from lxml import etree
import copy
class DefaultElementClass(etree.ElementBase):
def getLocalTag(self):
return etree.QName(self.tag).localname
def printInformation(x):
print(x, x.__class__, "getLocalTag" in dir(x))
a = DefaultElementClass()
printInformation(a)
#
printInformation(copy.copy(a))
printInformation(copy.deepcopy(a))
[-------------------------------------------------------------]
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 10 Aug 2018 15:58:40 +0300] rev 2277
Fix wrong ST code generation in case of several coils connected to each other.
For example,
|---|Var0|----(Var1)--(Var2)---|
Closes #32
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 09 Aug 2018 14:00:14 +0300] rev 2276
Update README with instruction to build BACnet library for BACnet support
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 09 Aug 2018 13:58:47 +0300] rev 2275
Improve fix wrong code generation if EN/ENO are used in FBD/LD/SFC
Commit c9915bc6 "Fix wrong code generation if EN/ENO are used in
FBD/LD/SFC" caused following backtrace in some cases:
File "/home/developer/WorkData/PLC/beremiz/beremiz/PLCGenerator.py", line 476, in GenerateProgram
self.GeneratePouProgram(pou_name)
File "/home/developer/WorkData/PLC/beremiz/beremiz/PLCGenerator.py", line 258, in GeneratePouProgram
program = pou_program.GenerateProgram(pou)
File "/home/developer/WorkData/PLC/beremiz/beremiz/PLCGenerator.py", line 1713, in GenerateProgram
self.ComputeProgram(pou)
File "/home/developer/WorkData/PLC/beremiz/beremiz/PLCGenerator.py", line 997, in ComputeProgram
eno_var = self.GetUsedEno(body, connections)
File "/home/developer/WorkData/PLC/beremiz/beremiz/PLCGenerator.py", line 929, in GetUsedEno
for invar in blk.inputVariables.getvariable():
File "/home/developer/WorkData/PLC/beremiz/beremiz/xmlclass/xmlclass.py", line 1363, in getattrMethod
return DefaultElementClass.__getattribute__(self, name)
<type 'exceptions.AttributeError'>: 'inOutVariable' object has no attribute 'inputVariables'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 01 Aug 2018 14:09:12 +0300] rev 2274
Load images for EtherCAT extension
Fixes following backtrace:
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/wx-3.0-gtk3/wx/_core.py", line 16765, in <lambda>
lambda event: event.callable(*event.args, **event.kw) )
File "/home/developer/WorkData/PLC/beremiz/beremiz/BeremizIDE.py", line 1074, in AddConfNode
self._Refresh(TITLE, FILEMENU, PROJECTTREE)
File "/home/developer/WorkData/PLC/beremiz/beremiz/IDEFrame.py", line 917, in _Refresh
self.RefreshFunctions[element]()
File "/home/developer/WorkData/PLC/beremiz/beremiz/IDEFrame.py", line 1526, in RefreshProjectTree
self.GenerateProjectTreeBranch(root, infos)
File "/home/developer/WorkData/PLC/beremiz/beremiz/IDEFrame.py", line 1565, in GenerateProjectTreeBranch
self.GenerateProjectTreeBranch(item, values)
File "/home/developer/WorkData/PLC/beremiz/beremiz/IDEFrame.py", line 1554, in GenerateProjectTreeBranch
self.TreeImageDict[icon_name] = self.TreeImageList.Add(GetBitmap(icon_name))
File "/usr/lib/python2.7/dist-packages/wx-3.0-gtk3/wx/_gdi.py", line 6735, in Add
return _gdi_.ImageList_Add(*args, **kwargs)
ValueError: invalid null reference in method 'ImageList_Add', expected argument 2 of type 'wxBitmap const &
Edouard Tisserant [Wed, 12 Sep 2018 11:36:50 +0200] rev 2273
Flush standard output when runtime ready, so that IDE knows it, and can continue connection to LOCAL:// uri
Edouard Tisserant [Tue, 11 Sep 2018 16:08:21 +0200] rev 2272
Change behaviour of python_eval function block : if TRIG is false, then ACK is also false except a pulse precisely when receiving answer from interpreter
Edouard Tisserant [Wed, 05 Sep 2018 12:58:41 +0200] rev 2271
Removed useless condition in Worker.py that was allowing misfit non-serialized call when worker still not running its loop.
Edouard Tisserant [Tue, 21 Aug 2018 16:11:02 +0200] rev 2270
Refactoring. Separated PLC Object, PYRO Server and MainWorker :
- PLC Object is now a Singleton, instantiated through runtime.CreatePLCObjectSingleton(...)
- Pyro server doesn't hold any reference to PLCObject, and doesn't create it anymore
- PLC Object class doesn't inherit from Pyro.ObjBase anymore
- Pyro related code moved to runtime.PyroServer.py
- MainWorker class moved to runtime/Worker.py
- Both PLC Object and MainWorker creation happens in runtime/__init__.py
Edouard Tisserant [Thu, 16 Aug 2018 11:22:40 +0200] rev 2269
Fixed new code-generation code, that was making exception with simple variable-to-variable assignments.
Edouard Tisserant [Tue, 14 Aug 2018 13:10:15 +0200] rev 2268
BACnet : Fixed missing header include in server.c introduced in 37ef7a3c6b8b
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
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
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).
Laurent Bessard [Mon, 24 Jun 2013 09:23:28 +0200] rev 2153
Rewrite CIA402 node specific code generating part
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>
Laurent Bessard [Mon, 03 Jun 2013 08:24:08 +0200] rev 2151
Fixed bug when drag'n dropping variable in master startup command grid
Edouard Tisserant [Tue, 21 May 2013 16:03:40 +0900] rev 2150
Moved ratio scaling back to MCL. Rewrote CiA402 C part in a way it can be read and understood by some humans.
Laurent Bessard [Thu, 16 May 2013 23:21:01 +0200] rev 2149
Added icon for Ethercat extension root and Ethercat master node
Laurent Bessard [Fri, 10 May 2013 09:16:07 +0200] rev 2148
Fixed bug with global instance declaration
Laurent Bessard [Fri, 10 May 2013 08:44:05 +0200] rev 2147
Fix bug in when moving Ethercat slaves fixed
Laurent Bessard [Wed, 08 May 2013 10:40:06 +0200] rev 2146
Added mapping for TouchProbe function in CIA402 slave node
Laurent Bessard [Fri, 03 May 2013 13:47:51 +0200] rev 2145
Fixed bug with axes boolean parameters value
Laurent Bessard [Thu, 02 May 2013 13:40:35 +0200] rev 2144
Added error message when a device informations can't be found in ESI files
Laurent Bessard [Thu, 02 May 2013 10:21:47 +0200] rev 2143
Fixed ToolTip on VariablesGrid columns on Windows
Laurent Bessard [Tue, 30 Apr 2013 01:39:54 +0200] rev 2142
Update higen drive example introducing usage of csv mode
Laurent Bessard [Tue, 30 Apr 2013 01:31:47 +0200] rev 2141
Merged
Laurent Bessard [Mon, 29 Apr 2013 11:07:32 +0200] rev 2140
Fixed bug in support for module extra params in EthercatCFileGenerator
Laurent Bessard [Mon, 29 Apr 2013 11:03:06 +0200] rev 2139
Added support for module extra params in EthercatCFileGenerator
Laurent Bessard [Fri, 26 Apr 2013 23:23:09 +0200] rev 2138
Fixed support for multiple module extra params in ModulesLibrary
Laurent Bessard [Fri, 26 Apr 2013 13:57:10 +0200] rev 2137
Added support for multiple module extra params in ModulesLibrary
Laurent Bessard [Thu, 25 Apr 2013 23:01:06 +0200] rev 2136
Added support for using CIA402 motion mode csp, csv and cst
Laurent Bessard [Fri, 26 Apr 2013 13:59:43 +0200] rev 2135
Fixed order of LocationCFilesAndCFLAGS, master was called after slaves in PLC init and retrieve functions
Laurent Bessard [Wed, 24 Apr 2013 23:27:35 +0200] rev 2134
Fixed bug on Windows with sizers on Windows in Master Editor panel when its size changed
Laurent Bessard [Wed, 24 Apr 2013 17:27:31 +0200] rev 2133
Fixed Save As... function in Beremiz
Laurent Bessard [Mon, 22 Apr 2013 23:54:22 +0200] rev 2132
Added support for stopping SDOThreadProc when stopping PLC
Laurent Bessard [Mon, 22 Apr 2013 09:30:48 +0200] rev 2131
Fixed bug when modifying slave module type
Laurent Bessard [Fri, 19 Apr 2013 00:55:40 +0200] rev 2130
Fixed bug in filters behavior on Windows
Laurent Bessard [Thu, 18 Apr 2013 00:48:32 +0200] rev 2129
Fixed filter behavior in MasterEditor and SlaveEditor
Laurent Bessard [Tue, 16 Apr 2013 00:53:38 +0200] rev 2128
Fixed CIA402 node template for working with MC_Power modification removing implicit set position
Laurent Bessard [Mon, 15 Apr 2013 00:40:47 +0200] rev 2127
Fix scan network functionality, project tree not refreshed after adding slaves
Laurent Bessard [Mon, 15 Apr 2013 00:37:59 +0200] rev 2126
Rollback last commit
Laurent Bessard [Sat, 13 Apr 2013 12:27:49 +0200] rev 2125
Fixed CIA402 node template for working with MC_Power modification removing implicit set position
Laurent Bessard [Sat, 13 Apr 2013 02:14:37 +0200] rev 2124
Fixed bugs in drag'n drop from variables panel in master and slaves editor panel
Laurent Bessard [Sat, 13 Apr 2013 01:40:31 +0200] rev 2123
Added initialization of abort_code and result_size to prevent warning message if not used in following code
Laurent Bessard [Sat, 13 Apr 2013 01:39:05 +0200] rev 2122
Fixed header files inclusion in CIA402 node template file
Edouard Tisserant [Fri, 12 Apr 2013 15:41:22 +0900] rev 2121
Fixed (again) some non-clean exit in case of SDO failure at init
Laurent Bessard [Thu, 11 Apr 2013 10:32:58 +0200] rev 2120
Merged
Laurent Bessard [Fri, 05 Apr 2013 00:14:00 +0200] rev 2119
Fixed ethercat test with higen drive project
Laurent Bessard [Fri, 05 Apr 2013 00:09:54 +0200] rev 2118
Fixed bug when using real axis and simulated axis at the same time (got the same index)
Edouard Tisserant [Fri, 05 Apr 2013 21:47:37 +0900] rev 2117
Now failure in template based part of C code also release the master for later use...
Edouard Tisserant [Fri, 05 Apr 2013 16:49:41 +0900] rev 2116
Better logging, saffer failure at init (allows restart)
Edouard Tisserant [Fri, 05 Apr 2013 11:55:09 +0900] rev 2115
Added error logging when SDO FB fails
Edouard Tisserant [Thu, 04 Apr 2013 17:50:43 +0900] rev 2114
Added logging based on collecting Kernel logs
Edouard Tisserant [Thu, 04 Apr 2013 14:32:02 +0900] rev 2113
Fixed typo
Edouard Tisserant [Fri, 29 Mar 2013 14:25:10 +0900] rev 2112
Fixed linking with non RTDM etherlab lib. Now with rtdm...
Laurent Bessard [Fri, 29 Mar 2013 01:15:01 +0100] rev 2111
Split etherlab.py into multiple files
Laurent Bessard [Fri, 29 Mar 2013 01:13:17 +0100] rev 2110
Fixed bug with process variables grid
Edouard Tisserant [Thu, 28 Mar 2013 18:06:03 +0900] rev 2109
Stripped useless depricated comments, changed print format of sdo abort code
Edouard Tisserant [Thu, 28 Mar 2013 15:50:23 +0900] rev 2108
Updated generated code to etherlab 1.5.2
Edouard Tisserant [Tue, 26 Mar 2013 12:42:49 +0900] rev 2107
Added Logging
Edouard Tisserant [Tue, 26 Mar 2013 09:34:30 +0900] rev 2106
Now use beremiz.h
Laurent Bessard [Wed, 20 Mar 2013 09:17:15 +0100] rev 2105
Fixed bugs in Network Configuration Editor
Edouard Tisserant [Thu, 14 Mar 2013 17:29:59 +0900] rev 2104
CiA402 now fills NetworkPosition member of public axis struct
Laurent Bessard [Thu, 07 Mar 2013 00:54:45 +0100] rev 2103
Fixed bugs in process variables generated code
Laurent Bessard [Wed, 06 Mar 2013 19:25:20 +0100] rev 2102
Added specific add menu for directly choose slave type while adding new slave
Laurent Bessard [Wed, 06 Mar 2013 18:38:17 +0100] rev 2101
Added code generation for process variables
Laurent Bessard [Wed, 06 Mar 2013 18:37:23 +0100] rev 2100
Fixed modifications in Startup Commands grid
Laurent Bessard [Tue, 05 Mar 2013 23:04:59 +0100] rev 2099
Improved Ethercat Network Configurator panels
Laurent Bessard [Tue, 05 Mar 2013 00:59:34 +0100] rev 2098
Improved Ethercat Network Configurator panels
Laurent Bessard [Wed, 27 Feb 2013 22:40:45 +0100] rev 2097
Added panel for managing ESI files from project and from database including module PDO alignment setting
Laurent Bessard [Thu, 07 Feb 2013 00:59:50 +0100] rev 2096
Added support for MC_*DigitalOutput, MC_ReadAxisInfo and MC_ReadAxisError blocks from MCL in DS402 nodes generated code
Laurent Bessard [Wed, 30 Jan 2013 23:46:58 +0100] rev 2095
Replaced SplitterWindow in ConfTreeNodeEditor by Notebook
Laurent Bessard [Fri, 16 Nov 2012 23:43:45 +0100] rev 2094
Fix bug in support for Etherlab specific fieldbus interface function blocks
Laurent Bessard [Fri, 16 Nov 2012 00:23:35 +0100] rev 2093
Fix bug in support for Etherlab specific fieldbus interface function blocks
Laurent Bessard [Thu, 15 Nov 2012 22:43:44 +0100] rev 2092
Adding support for Etherlab specific function blocks for MCL fieldbus interface function blocks
Laurent Bessard [Fri, 09 Nov 2012 11:27:30 +0100] rev 2091
Adding support for extracting ActualVelocity from CIA402 nodes PDOs
Laurent Bessard [Fri, 09 Nov 2012 11:25:44 +0100] rev 2090
Fix bug in EtherLabSDODownload function block
Laurent Bessard [Wed, 31 Oct 2012 12:06:04 +0100] rev 2089
Fix bug when Drag'n Dropping located variables on Windows
Laurent Bessard [Wed, 31 Oct 2012 11:54:26 +0100] rev 2088
Adding support for using Etherlab SDO function blocks in MCL
Laurent Bessard [Tue, 30 Oct 2012 00:22:29 +0100] rev 2087
Updating ethercat example for higen drive adding an example of Ethercat SDO upload block usage
Laurent Bessard [Thu, 25 Oct 2012 19:55:02 +0200] rev 2086
Adding block library for SDO download and SDO upload
Laurent Bessard [Fri, 19 Oct 2012 16:37:54 +0200] rev 2085
Fix bug in CIA402 slave digital inputs
Laurent Bessard [Fri, 19 Oct 2012 12:43:42 +0200] rev 2084
Adding support to enable CIA402 slave digital inputs
Laurent Bessard [Thu, 18 Oct 2012 01:23:35 +0200] rev 2083
Fix Axis_Ref type defined in VariableLocationTree
Laurent Bessard [Wed, 17 Oct 2012 19:12:08 +0200] rev 2082
Adding support for selecting a PDO in a list of mutually exclusive configured PDOs in Ethercat Network Configurator
Laurent Bessard [Sat, 13 Oct 2012 22:48:05 +0200] rev 2081
Fix bug in endianization in value transmit and received by SDO
Laurent Bessard [Sun, 23 Sep 2012 23:52:47 +0200] rev 2080
Fix bug when modifying slave position
Laurent Bessard [Sun, 23 Sep 2012 23:25:57 +0200] rev 2079
Fix C code Generator to use CoE section contained in the slave ESI file for defining Ethercat network configuration
Laurent Bessard [Sat, 22 Sep 2012 12:07:06 +0200] rev 2078
Merged
Laurent Bessard [Wed, 19 Sep 2012 11:03:25 +0200] rev 2077
Fix bug when modifying slave position
Edouard Tisserant [Fri, 21 Sep 2012 16:02:33 +0200] rev 2076
Better jitter compensation before sending Ethercat frame. Jitter can be compensed in both directions, within some limits
Edouard Tisserant [Wed, 19 Sep 2012 03:30:58 +0200] rev 2075
Different etherlab sequencing within retrieve and publish. Now, timer is polled after PLC exec until frame have to be sent. This slightly reduce jitter, compared to previous sequencing
Laurent Bessard [Thu, 13 Sep 2012 11:07:51 +0200] rev 2074
Adding support for loading Profile dictionaries only if needed
Laurent Bessard [Wed, 12 Sep 2012 18:13:28 +0200] rev 2073
Fix bug modules present in all groups with the same name even if they are defined by different vendors
Laurent Bessard [Sun, 09 Sep 2012 22:59:07 +0200] rev 2072
Fix bug variable entries table column headers not translated
Laurent Bessard [Fri, 07 Sep 2012 18:30:35 +0200] rev 2071
Fix import after integration of plcopeneditor into Beremiz
Laurent Bessard [Tue, 04 Sep 2012 15:00:35 +0200] rev 2070
Removing call to UpdateAxis and ComputeAxis in CIA DS402 node generated retrieve and publish functions. These calls have been transfered to MCL library retrieve and publish functions.
Laurent Bessard [Fri, 20 Jul 2012 02:13:07 +0200] rev 2069
Fix bug with AXIS_REF allocation
Laurent Bessard [Mon, 25 Jun 2012 20:06:17 +0200] rev 2068
Adding support using plcopeneditor bitmap library for icon request
Laurent Bessard [Mon, 25 Jun 2012 12:12:51 +0200] rev 2067
Fix bug slave information panel not refreshed when slave type changed
Laurent Bessard [Tue, 19 Jun 2012 20:28:05 +0200] rev 2066
Fix bug when modifying node parameters
laurent [Mon, 11 Jun 2012 02:37:23 +0200] rev 2065
Merged
Laurent Bessard [Mon, 11 Jun 2012 02:25:57 +0200] rev 2064
Fix disable dynamic PDOs support
Laurent Bessard [Mon, 11 Jun 2012 01:21:26 +0200] rev 2063
Fix bug with AXIS_REF located variable drag'n drop and disable dynamic PDOs support
Laurent Bessard [Sun, 10 Jun 2012 20:16:17 +0200] rev 2062
Adding support for getting CIA402 slave AXIS_REF located variables and disabling dynamic PDO mapping algorithm for drives than doesn't support this functionality
Edouard Tisserant [Mon, 04 Jun 2012 19:00:58 +0200] rev 2061
Changed AXIS_REF registration call name
Laurent Bessard [Wed, 23 May 2012 16:30:41 +0200] rev 2060
Fixing bug on ConfNodeEditors refresh
Edouard Tisserant [Wed, 23 May 2012 16:13:49 +0200] rev 2059
fixed multiple cia402 instance symbol collision
Laurent Bessard [Wed, 23 May 2012 10:39:14 +0200] rev 2058
Replacing Panel by ScrolledWindow for displaying node information for more clarity when window is small
Laurent Bessard [Tue, 22 May 2012 22:28:05 +0200] rev 2057
Removing ModesOfOperation parameter until handled by MCL
laurent [Mon, 21 May 2012 18:47:56 +0200] rev 2056
Fix bug with VariablesList on Windows
laurent [Mon, 21 May 2012 10:21:41 +0200] rev 2055
refactoring
laurent [Mon, 21 May 2012 10:07:35 +0200] rev 2054
Merged
laurent [Mon, 21 May 2012 10:07:11 +0200] rev 2053
refactoring
laurent [Mon, 21 May 2012 09:31:15 +0200] rev 2052
Merged
laurent [Fri, 18 May 2012 18:51:07 +0200] rev 2051
refactoring
Edouard Tisserant [Mon, 21 May 2012 04:34:10 +0200] rev 2050
Fixed example build with installer 1.1
Edouard Tisserant [Sun, 20 May 2012 23:05:36 +0200] rev 2049
updated examples also
Edouard Tisserant [Sun, 20 May 2012 22:42:37 +0200] rev 2048
reflected changes in beremiz extension mechanism
edouard_and_laurent [Mon, 14 May 2012 07:43:40 +0900] rev 2047
Fixed wrong PDO in unused sync managers\nFix higen drive ethercat example
laurent [Mon, 30 Apr 2012 16:21:30 +0200] rev 2046
Fix Ethercat xsd files
laurent [Sun, 01 Apr 2012 16:36:41 +0200] rev 2045
Adding test project using higen drive
laurent [Sat, 31 Mar 2012 15:13:14 +0200] rev 2044
Adding forgotten icons
laurent [Wed, 21 Mar 2012 11:15:47 +0100] rev 2043
Adding plugin icons and replacing reference to DS402 by CIA402
laurent [Mon, 19 Mar 2012 00:45:19 +0100] rev 2042
Adding support for remotely scanning Etherlab network and automatically configure it
laurent [Sun, 18 Mar 2012 23:57:32 +0100] rev 2041
Defining all slaves as Etherlab master subplugin instead of editing them in an editor with vertical notebook
laurent [Sun, 11 Mar 2012 21:57:00 +0100] rev 2040
Adding Ethercat network scan command for testing (print result, network configuration not modified)
laurent [Sun, 11 Mar 2012 21:53:35 +0100] rev 2039
Adding support for uploading default value for unused entries in output pdos from slaves before starting master
laurent [Sun, 11 Mar 2012 19:32:44 +0100] rev 2038
Replacing wx.Grid control by a wx.TreeListCtrl for displaying slaves entries
laurent [Wed, 29 Feb 2012 12:00:20 +0100] rev 2037
Fix bug when trying to drag'n drop variable from slave variables grid
laurent [Thu, 23 Feb 2012 23:34:40 +0100] rev 2036
Adding support for setting TargetPosition only if PositionSetPoint value from MCL is valid
laurent [Thu, 23 Feb 2012 15:48:19 +0100] rev 2035
Fix bug with PowerFeedback value
laurent [Wed, 22 Feb 2012 01:39:22 +0100] rev 2034
Adding support for MCL
Edouard Tisserant [Thu, 16 Feb 2012 18:40:13 +0100] rev 2033
Added test directory
laurent [Wed, 15 Feb 2012 00:38:26 +0100] rev 2032
Adding support for DS402 node subplugin (only simple state transition implemented)
laurent [Tue, 07 Feb 2012 19:45:45 +0100] rev 2031
Fix some issues regarding arbitrary variable mapping
laurent [Wed, 01 Feb 2012 00:04:58 +0100] rev 2030
Moving Add and Remove button to Plugin menu items
laurent [Tue, 17 Jan 2012 17:24:53 +0100] rev 2029
Adding support for displaying slave sync managers and profile object dictionary and for arbitrarily mapping variable through variable location
laurent [Tue, 10 Jan 2012 15:11:22 +0100] rev 2028
Merge with Donggu modifications
laurent [Tue, 10 Jan 2012 15:10:08 +0100] rev 2027
Merge with Donggu modifications
laurent [Sun, 08 Jan 2012 19:05:05 +0100] rev 2026
Adding support for drag'n dropping located variables from topology panel to configurations and resources variable panel for declaring global located variables
Donggu Kang <dgkang@higenmotor.com> [Thu, 22 Dec 2011 14:52:18 +0900] rev 2025
Master relase code added
Donggu Kang <dgkang@higenmotor.com> [Thu, 22 Dec 2011 14:44:58 +0900] rev 2024
Master release code added
laurent [Tue, 20 Dec 2011 23:43:27 +0100] rev 2023
Adding support for not configuring pdos when not mandatory and not needed by locations defined in PLC program. Adding support for displaying locations tree in Topology panel and BrowseLocationsDialog. Merging pdos grid and variables grid into one single grid in slave infos panel.
laurent [Sun, 18 Dec 2011 19:42:13 +0100] rev 2022
First working implementation of Beremiz plugin for etherlab
Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 11 Jun 2018 08:34:15 +0200] rev 2021
merge
Edouard Tisserant [Fri, 08 Jun 2018 13:28:00 +0200] rev 2020
Add BACnet extension from Mario de Sousa <msousa@fe.up.pt>
Edouard Tisserant [Fri, 08 Jun 2018 09:43:48 +0200] rev 2019
Make Modbus extension license compatible with the rest of Beremiz IDE python code : GPLv2.
Edouard Tisserant [Mon, 04 Jun 2018 11:22:08 +0200] rev 2018
Commented out safety check to prevent deadlock in wxEvaluator, since wx Mainloop is not anymore in main thread. That safety check actually leads to having wx code running outside of MainLoop
Edouard Tisserant <edouard.tisserant@gmail.com> [Wed, 23 May 2018 20:22:45 +0200] rev 2017
Merge
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 23 May 2018 12:13:48 +0300] rev 2016
Print version information about software used for tests
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 23 May 2018 11:48:34 +0300] rev 2015
Fix codestyle
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Wed, 23 May 2018 11:47:56 +0300] rev 2014
Fix typos introduced by 9fa2f8e "Fixed random segfault happening when loading new PLC in runtime, when using Xenonai."
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 22 May 2018 17:28:18 +0300] rev 2013
merged changes in README.md
Sergey Surkov <surkovsv93@gmail.com> [Mon, 12 Mar 2018 14:10:19 +0000] rev 2012
add python-cycler dependence in readme
Edouard Tisserant [Wed, 23 May 2018 10:53:57 +0200] rev 2011
Make Modbus mutexes non blocking for PLC. If data related to some modbus request is alredy locked when PLC wants to access it, then data isn't copied to/from PLC
Edouard Tisserant [Thu, 17 May 2018 09:33:58 +0200] rev 2010
Merged #2476, URI dialog fixes
Edouard Tisserant [Thu, 17 May 2018 09:33:14 +0200] rev 2009
close branch #2476 - URI dialog fixed
dporopat <denis.poropat@smarteh.si> [Mon, 14 May 2018 13:26:35 +0200] rev 2008
#2476 Changes to the comment.
dporopat <denis.poropat@smarteh.si> [Thu, 10 May 2018 13:11:11 +0200] rev 2007
#2476 Connectors dialog module added.
dporopat <denis.poropat@smarteh.si> [Wed, 09 May 2018 15:09:54 +0200] rev 2006
#2476 Separate connectors dialogs from connectors module.
dporopat <denis.poropat@smarteh.si> [Wed, 09 May 2018 11:16:27 +0200] rev 2005
#2476 Additional check added if we can import wx.
Edouard Tisserant [Thu, 10 May 2018 08:33:50 +0200] rev 2004
Allow deleting configuration tree node with no corresponding directory in project tree
Edouard Tisserant [Mon, 07 May 2018 15:10:39 +0200] rev 2003
Support unicode in LDFLAGS returned by extensions
Edouard Tisserant [Mon, 07 May 2018 14:19:08 +0200] rev 2002
Fixed typos
dporopat <denis.poropat@smarteh.si> [Fri, 20 Apr 2018 11:21:20 +0200] rev 2001
#2476 Added uri location editor, getting connectors from list in Beremiz.
Edouard Tisserant [Fri, 27 Apr 2018 16:32:53 +0200] rev 2000
Fixed random segfault happening when loading new PLC in runtime, when using Xenonai.
Edouard Tisserant [Thu, 19 Apr 2018 15:17:05 +0200] rev 1999
PEP-8 and PyLint
Edouard Tisserant [Thu, 19 Apr 2018 15:03:23 +0200] rev 1998
merged Denis change to apply input as we type in CTN configuration forms text fieds
Edouard Tisserant [Thu, 19 Apr 2018 14:53:42 +0200] rev 1997
PEP-8 and PyLint
Edouard Tisserant [Thu, 19 Apr 2018 13:09:41 +0200] rev 1996
Add safety check to prevent exception when disconnecting while debugging
Edouard Tisserant [Thu, 19 Apr 2018 13:02:13 +0200] rev 1995
Removed DebugThread. Take advantage of the fact that buffering is done in runtime. No need to poll for traces more than ten per second, then use simple wxTimer for that. Also removed Debug Lock since now everything happens in wx' mainloop.
Edouard Tisserant [Thu, 19 Apr 2018 12:22:40 +0200] rev 1994
Rework of runtime non-real-time threading, and shared object dynamic loading :
- All exposed operations on PLCObject are now serialized through main thread
(@RunInMain). Only one exception : python trace thread calling _GetDebugData
- Re-loading of same shared object is prevented. dlclose/delte/rewrite/dlopen
don't happen in that case. This is a workaround for some xenomai copperplate
bug triggering segfault, inbetween delete and rewrite.
- Trace thread now waits for data, dies if no data, and dies instead of
suspending as before when no data consumed after 3 seconds.
- Disabled threading in Pyro client
- Enforced auxiliary threads starting sequence : Pyro -> [UI] ->
PLCWorker.RunLoop
Edouard Tisserant [Tue, 17 Apr 2018 11:19:18 +0200] rev 1993
Stripped forgotten debug code
Edouard Tisserant <edouard.tisserant@gmail.com> [Thu, 19 Apr 2018 15:06:10 +0200] rev 1992
close branch
dporopat <denis.poropat@smarteh.si> [Thu, 19 Apr 2018 09:50:00 +0200] rev 1991
#2476 Fix for saving text in URI edit text box. No need to click out of URI edit text box to save edited text.
Edouard Tisserant [Mon, 16 Apr 2018 16:11:18 +0200] rev 1990
Fixed Xenomai 3 PLC stop freeze. Now use explicit finish command with pipes. Closing both ends of pipes doesn't abort blocking read anymore.
Edouard Tisserant [Mon, 16 Apr 2018 11:00:04 +0200] rev 1989
More canonical test.
There is an exception happening around here in some cases when connection is dropped while waiting for answer. Not sure that this fixes it but this is anyhow better.
Edouard Tisserant [Sat, 14 Apr 2018 10:09:33 +0200] rev 1988
PLCObject got more methods serialized through worker : Start, Stop, NewPLC.
This particularly helps with initialization/startup/re-load problems
when targeting Xenomai. It should help in general for runtime robustness,
since those operations aren't meant to be executed concurrently.
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 13 Apr 2018 00:29:52 +0200] rev 1987
Fixed implementation of runtime worker that ensure that PLCObject Load and Unload methods always run main thread.
Edouard Tisserant <edouard.tisserant@gmail.com> [Thu, 12 Apr 2018 22:32:43 +0200] rev 1986
merged
Edouard Tisserant <edouard.tisserant@gmail.com> [Thu, 12 Apr 2018 22:32:12 +0200] rev 1985
merged
Edouard Tisserant [Thu, 12 Apr 2018 22:20:38 +0200] rev 1984
Intermediate state while implementing runtime worker to ensure that PLCObject Load and Unload methods always run main thread.
Edouard Tisserant [Thu, 12 Apr 2018 16:38:09 +0200] rev 1983
Stripped more dead code.
Edouard Tisserant [Thu, 12 Apr 2018 16:33:44 +0200] rev 1982
Cleanup of some dead code in PYRO connector.
Edouard Tisserant [Thu, 12 Apr 2018 16:31:30 +0200] rev 1981
Added logging in Xenomai init phase.
Edouard Tisserant [Thu, 12 Apr 2018 16:29:43 +0200] rev 1980
Apply new RT Pipes API from Xenomai 3
Edouard Tisserant [Thu, 12 Apr 2018 16:27:22 +0200] rev 1979
Removed useless try/except in Canfestival.py
dporopat <denis.poropat@smarteh.si> [Tue, 10 Apr 2018 13:36:36 +0200] rev 1978
#2579 On showing search result, text color of tree item is set to white. We need to change back color to show the result.
Edouard Tisserant <edouard.tisserant@gmail.com> [Thu, 29 Mar 2018 23:33:36 +0200] rev 1977
PEP-8...
Edouard Tisserant <edouard.tisserant@gmail.com> [Thu, 29 Mar 2018 23:25:26 +0200] rev 1976
Fixed bug that was creating many frames at starup on Windows
Edouard Tisserant <edouard.tisserant@gmail.com> [Sun, 25 Mar 2018 16:22:36 +0200] rev 1975
re-merge
Edouard Tisserant [Mon, 19 Mar 2018 16:18:17 +0100] rev 1974
Xenomai 3
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 02 Mar 2018 17:01:25 +0100] rev 1973
merged Sergeys changes
Surkov Sergey <surkovsv93@gmail.com> [Mon, 19 Feb 2018 19:36:43 +0300] rev 1972
fix bug with indelible values in some 'optional' fields in project properties panel
only 'required' fields should be indelible
Surkov Sergey <surkovsv93@gmail.com> [Mon, 19 Feb 2018 19:10:07 +0300] rev 1971
make the URI model compatible with https
Surkov Sergey <surkovsv93@gmail.com> [Mon, 19 Feb 2018 19:02:25 +0300] rev 1970
add address validation in Company URL field
Surkov Sergey <surkovsv93@gmail.com> [Fri, 02 Feb 2018 17:16:04 +0300] rev 1969
remove duplicating code for variables name generate
Surkov Sergey <surkovsv93@gmail.com> [Wed, 31 Jan 2018 16:31:01 +0300] rev 1968
add fields autocomplete when adding task or instance in resources
values will be copied from previous row, first row fills with the default values
Surkov Sergey <surkovsv93@gmail.com> [Thu, 18 Jan 2018 14:24:44 +0300] rev 1967
fix search in TextViewer objects, search returns only first entry
side effect of a63bb40
Surkov Sergey <surkovsv93@gmail.com> [Thu, 18 Jan 2018 14:03:29 +0300] rev 1966
fix import order according to PEP8
Surkov Sergey <surkovsv93@gmail.com> [Mon, 15 Jan 2018 12:06:24 +0300] rev 1965
fix default time range choice for debug variable panel
only localized versions were affected
Surkov Sergey <surkovsv93@gmail.com> [Fri, 12 Jan 2018 18:36:02 +0300] rev 1964
enlarge canvas border for debug variable graphic viewer
Surkov Sergey <surkovsv93@gmail.com> [Fri, 12 Jan 2018 18:33:54 +0300] rev 1963
fix rounding milliseconds from nanoseconds
example:rounding 299999 ns to 300ms, if division result is an
integer, remainder will be lost, and result will be 299.
Surkov Sergey <surkovsv93@gmail.com> [Fri, 12 Jan 2018 17:56:48 +0300] rev 1962
fix display TIME type variables in debug variable panel
Edouard Tisserant <edouard.tisserant@gmail.com> [Thu, 01 Mar 2018 14:28:55 +0100] rev 1961
fix for test app from skv. thanks
Edouard Tisserant <edouard.tisserant@gmail.com> [Thu, 01 Mar 2018 10:28:17 +0100] rev 1960
Prevent catching exception if exception handling was not enabled (or disabled by test test app).
Edouard Tisserant <edouard.tisserant@gmail.com> [Thu, 01 Mar 2018 09:41:12 +0100] rev 1959
pep8 and pylint hate me
Edouard Tisserant [Wed, 28 Feb 2018 16:10:05 +0100] rev 1958
Fixed typo introduced in 5736d25bb393
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.
Edouard Tisserant [Tue, 20 Feb 2018 15:09:01 +0100] rev 1956
Another attempt to make BitBuket's version of 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.
Edouard Tisserant [Tue, 20 Feb 2018 14:24:30 +0100] rev 1954
Removed dead slow code
Edouard Tisserant [Tue, 20 Feb 2018 14:16:51 +0100] rev 1953
PEP8 and PyLint conformance: whitespaces and stuff
Edouard Tisserant [Tue, 20 Feb 2018 11:24:40 +0100] rev 1952
Copy pasted, no time wasted !
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.
Edouard Tisserant [Mon, 19 Feb 2018 15:46:50 +0100] rev 1950
GetPouInstanceTagName optimized with XSLTModelQuery.
Edouard Tisserant [Mon, 19 Feb 2018 15:15:36 +0100] rev 1949
Better writing of some xpath added in previous commits about XSLT optimization.
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.
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.
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. ' ' Is apparently ignored but never know...
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.
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.
Edouard Tisserant <edouard.tisserant@gmail.com> [Sat, 17 Feb 2018 23:58:47 +0100] rev 1943
GetPouVariables optimized with XSLTModelQuery
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.
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
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.
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()
Edouard Tisserant <edouard.tisserant@gmail.com> [Fri, 16 Feb 2018 03:24:11 +0100] rev 1938
Stripped useless node creation in instances_path stylesheet.
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.
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
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...
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.
Edouard Tisserant [Wed, 14 Feb 2018 14:50:10 +0100] rev 1933
Factorized duplicated code
Edouard Tisserant [Wed, 14 Feb 2018 14:48:40 +0100] rev 1932
Better variable naming, and small optimization.
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.
Edouard Tisserant [Tue, 13 Feb 2018 13:57:53 +0100] rev 1930
Removed dead code
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
Edouard Tisserant [Mon, 12 Feb 2018 11:34:07 +0100] rev 1928
Ask to stop PLC before transfer if it is running
Edouard Tisserant [Mon, 12 Feb 2018 11:32:48 +0100] rev 1927
Factorized some repeated refresh code into a method, to allow customisation.
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.
Edouard Tisserant [Fri, 02 Feb 2018 16:25:32 +0100] rev 1925
Stripped old dead code.
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.
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.
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.
Edouard Tisserant [Fri, 02 Feb 2018 11:07:39 +0100] rev 1921
Launcher: allows customizations to specify what globals passed to extensions
Edouard Tisserant [Fri, 02 Feb 2018 11:06:41 +0100] rev 1920
Documentation
Edouard Tisserant [Thu, 01 Feb 2018 14:51:18 +0100] rev 1919
Another set of meaningless changes to satisfy PEP8 and PyLint.
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.
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)
Edouard Tisserant [Wed, 31 Jan 2018 15:20:42 +0100] rev 1916
Small pep8 conformity enforcement.
Edouard Tisserant [Wed, 31 Jan 2018 11:29:17 +0100] rev 1915
Better have globals passed to python extensions (-e) than locals.
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
Edouard Tisserant [Tue, 30 Jan 2018 16:23:50 +0100] rev 1913
modbus extension code cleanup, from smarteh's patch
Edouard Tisserant [Tue, 30 Jan 2018 16:06:58 +0100] rev 1912
Merged Mario's modbus branch. Fixed line endings.
Mario de Sousa <msousa@fe.up.pt> [Fri, 24 Mar 2017 12:07:47 +0000] rev 1911
merge
Mario de Sousa <msousa@fe.up.pt> [Sun, 05 Mar 2017 00:38:25 +0000] rev 1910
Ignore bug report files.
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
Edouard Tisserant <edouard.tisserant@gmail.com> [Mon, 29 Jan 2018 13:31:14 +0100] rev 1908
merge
Edouard Tisserant [Wed, 24 Jan 2018 16:12:49 +0100] rev 1907
fixed erro introduced 2 commits ago (-e) : tuples have no reverse() method
Edouard Tisserant [Wed, 24 Jan 2018 15:44:36 +0100] rev 1906
Trying to get better logging/display of exceptions at runtime's startup
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.
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
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.
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
Edouard Tisserant [Thu, 11 Jan 2018 15:41:20 +0100] rev 1901
Enforced check_source.sh pep8 and pylint rules.
Edouard Tisserant [Thu, 11 Jan 2018 15:39:58 +0100] rev 1900
runtime/WAMP: Fixed secret loading into configuration. Fixed secret commandline switch handling.
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
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.
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
Edouard Tisserant [Wed, 10 Jan 2018 14:35:04 +0100] rev 1896
update tests/wamp README file, based on changes from dporopat.
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)
Edouard Tisserant [Wed, 10 Jan 2018 13:21:42 +0100] rev 1894
Fixed changes from dporopat and agregorcic about WAMP CRA and config.
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.
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).
Edouard Tisserant [Tue, 09 Jan 2018 14:50:41 +0100] rev 1891
More canonical overload of ReconnectingClientFactory (according twisted doc)
Edouard Tisserant [Tue, 09 Jan 2018 14:42:23 +0100] rev 1890
non significant print syntax change. ready for py3.
Edouard Tisserant [Tue, 09 Jan 2018 14:38:45 +0100] rev 1889
whitespace cosmetic for pep8
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.
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...
Edouard Tisserant [Thu, 04 Jan 2018 16:00:35 +0100] rev 1886
enforce PEP8 in previous commit
dporopat <denis.poropat@smarteh.si> [Fri, 20 Jan 2017 13:22:31 +0100] rev 1885
replaced normal panel with scrolled panel under project properties
Surkov Sergey <surkovsv93@gmail.com> [Tue, 05 Dec 2017 12:38:04 +0300] rev 1884
fix missing root in empty search results panel
Surkov Sergey <surkovsv93@gmail.com> [Mon, 04 Dec 2017 19:35:31 +0300] rev 1883
add possibility to specify subprocess stdout encoding
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
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`"
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
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'
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'
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
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'
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'
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
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'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 16 Oct 2017 17:20:31 +0300] rev 1872
fix pylint error "(undefined-variable) Undefined variable 'X'"
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
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'
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'
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'
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'"
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)'
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"
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
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'
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'
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'
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'
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'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 10 Oct 2017 13:21:48 +0300] rev 1858
fix pylint warning '(import-self) Module import itself'
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"
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'
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'"
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'
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'"
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'
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.
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 06 Oct 2017 17:52:34 +0300] rev 1850
fix pylint warning '(unused-import), Unused import connectors'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 05 Oct 2017 16:46:29 +0300] rev 1849
fix typos
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Thu, 05 Oct 2017 16:41:31 +0300] rev 1848
comment out unused code SFC_Step.RefreshBoundingBox()
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'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 03 Oct 2017 16:31:31 +0300] rev 1846
remove unused variables found by pylint
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 03 Oct 2017 16:12:55 +0300] rev 1845
update .PHONE target in Makefile for mki18n.py
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 03 Oct 2017 16:08:40 +0300] rev 1844
make mki18n return 0 on success
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Tue, 03 Oct 2017 16:08:00 +0300] rev 1843
update list with files for internatialization, app.fil
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'.
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'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Mon, 02 Oct 2017 12:43:01 +0300] rev 1840
fix pylint error '(function-redefined) method already defined'
Andrey Skvortsov <andrej.skvortzov@gmail.com> [Fri, 29 Sep 2017 16:48:42 +0300] rev 1839
fix pylint warning '(unreachable) Unreachable code'
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