beremiz

Fix wxHMI example after upgrading wxGlade

2018-08-13, Andrey Skvortsov
64bb520009f3
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 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
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.plcopen.org/xml/tc6.xsd"
xmlns:xhtml="http://www.w3.org/1999/xhtml"
xsi:schemaLocation="http://www.plcopen.org/xml/tc6.xsd">
<fileHeader companyName="beremiz"
productName="beremiz"
productVersion="1"
creationDateTime="2008-06-24T18:44:00"/>
<contentHeader name="canopen_master"
modificationDateTime="2009-10-07T18:45:11"
language="en-US">
<coordinateInfo>
<fbd>
<scaling x="0" y="0"/>
</fbd>
<ld>
<scaling x="0" y="0"/>
</ld>
<sfc>
<scaling x="0" y="0"/>
</sfc>
</coordinateInfo>
</contentHeader>
<types>
<dataTypes/>
<pous>
<pou name="test_main" pouType="program">
<interface>
<localVars>
<variable name="PLC_OUT" address="%QW0.0.2.8193.0">
<type>
<INT/>
</type>
</variable>
<variable name="PLC_IN" address="%IW0.0.2.8192.0">
<type>
<INT/>
</type>
</variable>
</localVars>
</interface>
<body>
<FBD>
<outVariable localId="1" height="29" width="80">
<position x="362" y="140"/>
<connectionPointIn>
<relPosition x="0" y="14"/>
<connection refLocalId="4" formalParameter="OUT">
<position x="362" y="154"/>
<position x="330" y="154"/>
<position x="330" y="153"/>
<position x="299" y="153"/>
</connection>
</connectionPointIn>
<expression>PLC_OUT</expression>
</outVariable>
<inVariable localId="2" height="29" width="20">
<position x="100" y="115"/>
<connectionPointOut>
<relPosition x="20" y="14"/>
</connectionPointOut>
<expression>1</expression>
</inVariable>
<block localId="4" width="75" height="60" typeName="ADD">
<position x="224" y="123"/>
<inputVariables>
<variable formalParameter="IN1">
<connectionPointIn>
<relPosition x="0" y="30"/>
<connection refLocalId="2">
<position x="224" y="153"/>
<position x="183" y="153"/>
<position x="183" y="129"/>
<position x="120" y="129"/>
</connection>
</connectionPointIn>
</variable>
<variable formalParameter="IN2">
<connectionPointIn>
<relPosition x="0" y="50"/>
<connection refLocalId="5">
<position x="224" y="173"/>
<position x="199" y="173"/>
<position x="199" y="201"/>
<position x="174" y="201"/>
</connection>
</connectionPointIn>
</variable>
</inputVariables>
<inOutVariables/>
<outputVariables>
<variable formalParameter="OUT">
<connectionPointOut>
<relPosition x="75" y="30"/>
</connectionPointOut>
</variable>
</outputVariables>
</block>
<inVariable localId="5" height="29" width="70">
<position x="104" y="187"/>
<connectionPointOut>
<relPosition x="70" y="14"/>
</connectionPointOut>
<expression>PLC_IN</expression>
</inVariable>
</FBD>
</body>
</pou>
</pous>
</types>
<instances>
<configurations>
<configuration name="conf">
<resource name="res">
<task name="tache" interval="t#50ms" priority="0">
<pouInstance name="toto" typeName="test_main"/>
</task>
</resource>
</configuration>
</configurations>
</instances>
</project>