tests/wxHMI/HMI@wxglade_hmi/pyfile.xml
author Edouard Tisserant
Thu, 18 Jun 2015 15:22:43 +0200
changeset 1462 9ee3a2dea7e8
parent 1461 954d1f42d42d
child 1465 9011e2ceea85
permissions -rw-r--r--
Extended wxHMI test
1461
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
     1
<?xml version='1.0' encoding='utf-8'?>
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
     2
<PyFile xmlns:xhtml="http://www.w3.org/1999/xhtml">
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
     3
  <variables>
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
     4
    <variable name="Power_ON" type="BOOL"/>
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
     5
    <variable name="Power_OFF" type="BOOL"/>
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
     6
    <variable name="DrawTest" type="BOOL"/>
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
     7
    <variable name="DrawLogo" type="BOOL"/>
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
     8
    <variable name="DrawEscher" type="BOOL"/>
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
     9
    <variable name="Detect_Circle" type="BOOL"/>
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    10
    <variable name="XaxisPos" type="INT"/>
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    11
    <variable name="YaxisPos" type="INT"/>
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    12
    <variable name="ZaxisPos" type="INT"/>
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    13
    <variable name="TaxisPos" type="INT"/>
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    14
    <variable name="XaxisMinus" type="BOOL"/>
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    15
    <variable name="YaxisMinus" type="BOOL"/>
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    16
    <variable name="ZaxisMinus" type="BOOL"/>
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    17
    <variable name="TaxisMinus" type="BOOL"/>
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    18
    <variable name="XaxisPlus" type="BOOL"/>
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    19
    <variable name="YaxisPlus" type="BOOL"/>
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    20
    <variable name="ZaxisPlus" type="BOOL"/>
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    21
    <variable name="TaxisPlus" type="BOOL"/>
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    22
  </variables>
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    23
  <globals>
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    24
    <xhtml:p><![CDATA[
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    25
import ctypes
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    26
import Image
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    27
import wx, sys
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    28
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    29
AxisList = ["X","Y","Z","T"]
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    30
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    31
PwrButtons = ['Power_ON',
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    32
              'Power_OFF']
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    33
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    34
ActionButtons = ['Detect_Circle',
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    35
                 'DrawTest',
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    36
                 'DrawLogo',
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    37
                 'DrawEscher']
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    38
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    39
class ThreeDee(wx.StaticText):
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    40
    def __init__(self, *args, **kwargs):
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    41
        self.initialized = False
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    42
        kwargs["style"] = wx.ALIGN_CENTRE_HORIZONTAL
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    43
        super(ThreeDee, self).__init__(*args, **kwargs)
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    44
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    45
        self.SetFont(wx.Font(24, wx.SWISS, wx.NORMAL, wx.BOLD))
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    46
        
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    47
        self.positions = [0.]*4
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    48
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    49
        self.Message = None
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    50
        self.NegLimits = None
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    51
        self.Disk = None
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    52
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    53
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    54
    def UpdatePositions(self, positions):
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    55
        # get globals from PLC
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    56
        self.positions = positions
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    57
        self.SetLabel(
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    58
            ((self.Message  +'\n\n') if self.Message else '' )+
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    59
            " ".join(["%s %+.2f"%(axis,self.positions[i])
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    60
                          for i,axis in enumerate(AxisList)]))
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    61
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    62
def MakeButtonFunc(window, sizer, btname):
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    63
    def ButtonDown(event):
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    64
        setattr(PLCGlobals,btname,1)
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    65
        event.Skip()
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    66
    def ButtonUp(event):
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    67
        setattr(PLCGlobals,btname,0)
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    68
        event.Skip()
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    69
    obj = wx.BitmapButton(window, -1, wx.Bitmap('%s.png'%btname))
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    70
    sizer.Add(obj, 2, wx.EXPAND, 0)
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    71
    obj.Bind(wx.EVT_LEFT_DOWN, ButtonDown)
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    72
    obj.Bind(wx.EVT_LEFT_UP, ButtonUp)
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    73
    return obj
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    74
1462
9ee3a2dea7e8 Extended wxHMI test
Edouard Tisserant
parents: 1461
diff changeset
    75
def UpdPos(self):
1461
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    76
    positions = [getattr(PLCGlobals,axname+"axisPos") for axname in AxisList]
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    77
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    78
    self.window_1.UpdatePositions(positions)
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    79
1462
9ee3a2dea7e8 Extended wxHMI test
Edouard Tisserant
parents: 1461
diff changeset
    80
Class_wxglade_hmi.UpdPos = UpdPos
1461
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    81
1462
9ee3a2dea7e8 Extended wxHMI test
Edouard Tisserant
parents: 1461
diff changeset
    82
9ee3a2dea7e8 Extended wxHMI test
Edouard Tisserant
parents: 1461
diff changeset
    83
#def UpdatePositions(self, event):
9ee3a2dea7e8 Extended wxHMI test
Edouard Tisserant
parents: 1461
diff changeset
    84
#
9ee3a2dea7e8 Extended wxHMI test
Edouard Tisserant
parents: 1461
diff changeset
    85
#    positions = [getattr(PLCGlobals,axname+"axisPos") for axname in AxisList]
9ee3a2dea7e8 Extended wxHMI test
Edouard Tisserant
parents: 1461
diff changeset
    86
#
9ee3a2dea7e8 Extended wxHMI test
Edouard Tisserant
parents: 1461
diff changeset
    87
#    self.window_1.UpdatePositions(positions)
9ee3a2dea7e8 Extended wxHMI test
Edouard Tisserant
parents: 1461
diff changeset
    88
#
9ee3a2dea7e8 Extended wxHMI test
Edouard Tisserant
parents: 1461
diff changeset
    89
#    event.Skip()
9ee3a2dea7e8 Extended wxHMI test
Edouard Tisserant
parents: 1461
diff changeset
    90
9ee3a2dea7e8 Extended wxHMI test
Edouard Tisserant
parents: 1461
diff changeset
    91
#Class_wxglade_hmi.UpdatePositions = UpdatePositions
1461
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    92
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    93
initorig = Class_wxglade_hmi.__init__
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    94
def Init(self,*args,**kargs):
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    95
    initorig(self,*args,**kargs)
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    96
    sizer = self.GetSizer().GetItem(1).GetSizer().GetItem(0).GetSizer()
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    97
    self.main_buttons = map(
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    98
        lambda btname: MakeButtonFunc(self, sizer, btname), PwrButtons)
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
    99
    sizer = self.GetSizer().GetItem(1).GetSizer().GetItem(1).GetSizer()
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
   100
    self.main_buttons = map(
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
   101
        lambda btname: MakeButtonFunc(self, sizer, btname), ActionButtons)
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
   102
    self.axis_buttons = map(
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
   103
        lambda axis:( MakeButtonFunc(self, sizer, axis+"axisMinus"), 
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
   104
                        MakeButtonFunc(self, sizer, axis+"axisPlus")),
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
   105
        AxisList)
1462
9ee3a2dea7e8 Extended wxHMI test
Edouard Tisserant
parents: 1461
diff changeset
   106
    # self.timer = wx.Timer(self, -1)
9ee3a2dea7e8 Extended wxHMI test
Edouard Tisserant
parents: 1461
diff changeset
   107
    # self.Bind(wx.EVT_TIMER, self.UpdatePositions, self.timer)
1461
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
   108
    self.ShowFullScreen(True,wx.FULLSCREEN_ALL)
1462
9ee3a2dea7e8 Extended wxHMI test
Edouard Tisserant
parents: 1461
diff changeset
   109
    # wx.CallAfter(self.timer.Start,200)
1461
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
   110
    
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
   111
Class_wxglade_hmi.__init__ = Init
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
   112
1462
9ee3a2dea7e8 Extended wxHMI test
Edouard Tisserant
parents: 1461
diff changeset
   113
def SetPLCGlobalVar(self, evt):
9ee3a2dea7e8 Extended wxHMI test
Edouard Tisserant
parents: 1461
diff changeset
   114
    tglbtname = evt.GetEventObject().GetName()
9ee3a2dea7e8 Extended wxHMI test
Edouard Tisserant
parents: 1461
diff changeset
   115
    setattr(PLCGlobals, tglbtname, evt.GetEventObject().GetValue())
1461
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
   116
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
   117
]]></xhtml:p>
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
   118
  </globals>
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
   119
  <init>
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
   120
    <xhtml:p><![CDATA[
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
   121
]]></xhtml:p>
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
   122
  </init>
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
   123
  <cleanup>
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
   124
    <xhtml:p><![CDATA[
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
   125
]]></xhtml:p>
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
   126
  </cleanup>
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
   127
  <start>
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
   128
    <xhtml:p><![CDATA[
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
   129
]]></xhtml:p>
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
   130
  </start>
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
   131
  <stop>
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
   132
    <xhtml:p><![CDATA[
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
   133
]]></xhtml:p>
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
   134
  </stop>
954d1f42d42d Added wxHMI test
Edouard Tisserant
parents:
diff changeset
   135
</PyFile>