andrej@1691: <?xml version='1.0' encoding='utf-8'?> andrej@1691: <PyFile xmlns:xhtml="http://www.w3.org/1999/xhtml"> andrej@1691: <variables> andrej@1691: <variable name="Power_ON" type="BOOL"/> andrej@1691: <variable name="Power_OFF" type="BOOL"/> andrej@1691: <variable name="DrawTest" type="BOOL"/> andrej@1691: <variable name="DrawLogo" type="BOOL"/> andrej@1691: <variable name="DrawEscher" type="BOOL"/> andrej@1691: <variable name="Detect_Circle" type="BOOL"/> andrej@1691: <variable name="XaxisPos" type="INT"/> andrej@1691: <variable name="YaxisPos" type="INT"/> andrej@1691: <variable name="ZaxisPos" type="INT"/> andrej@1691: <variable name="TaxisPos" type="INT"/> andrej@1691: <variable name="XaxisMinus" type="BOOL"/> andrej@1691: <variable name="YaxisMinus" type="BOOL"/> andrej@1691: <variable name="ZaxisMinus" type="BOOL"/> andrej@1691: <variable name="TaxisMinus" type="BOOL"/> andrej@1691: <variable name="XaxisPlus" type="BOOL"/> andrej@1691: <variable name="YaxisPlus" type="BOOL"/> andrej@1691: <variable name="ZaxisPlus" type="BOOL"/> andrej@1691: <variable name="TaxisPlus" type="BOOL"/> andrej@1691: <variable name="DrawTestBtn" type="BOOL"/> andrej@1691: <variable name="DrawTestBtn2" type="BOOL"/> andrej@1691: </variables> andrej@1691: <globals> andrej@1691: <xhtml:p><![CDATA[ andrej@1691: import ctypes andrej@1691: import wx, sys andrej@1691: andrej@1691: AxisList = ["X","Y","Z","T"] andrej@1691: andrej@1691: PwrButtons = ['Power_ON', andrej@1691: 'Power_OFF'] andrej@1691: andrej@1691: ActionButtons = ['Detect_Circle', andrej@1691: 'DrawTest', andrej@1691: 'DrawLogo', andrej@1691: 'DrawEscher'] andrej@1691: andrej@1691: class ThreeDee(wx.StaticText): andrej@1691: def __init__(self, *args, **kwargs): andrej@1691: self.initialized = False andrej@1691: kwargs["style"] = wx.ALIGN_CENTRE_HORIZONTAL andrej@1691: super(ThreeDee, self).__init__(*args, **kwargs) andrej@1691: andrej@1691: self.SetFont(wx.Font(24, wx.SWISS, wx.NORMAL, wx.BOLD)) andrej@1691: andrej@1691: self.positions = [0.]*4 andrej@1691: andrej@1691: self.Message = None andrej@1691: self.NegLimits = None andrej@1691: self.Disk = None andrej@1691: andrej@1691: andrej@1691: def UpdatePositions(self, positions): andrej@1691: # get globals from PLC andrej@1691: self.positions = positions andrej@1691: self.SetLabel( andrej@1691: ((self.Message +'\n\n') if self.Message else '' )+ andrej@1691: " ".join(["%s %+.2f"%(axis,self.positions[i]) andrej@1691: for i,axis in enumerate(AxisList)])) andrej@1691: andrej@1691: def MakeButtonFunc(window, sizer, btname): andrej@1691: def ButtonDown(event): andrej@1691: setattr(PLCGlobals,btname,1) andrej@1691: event.Skip() andrej@1691: def ButtonUp(event): andrej@1691: setattr(PLCGlobals,btname,0) andrej@1691: event.Skip() andrej@1691: obj = wx.BitmapButton(window, -1, wx.Bitmap('%s.png'%btname)) andrej@1691: sizer.Add(obj, 2, wx.EXPAND, 0) andrej@1691: obj.Bind(wx.EVT_LEFT_DOWN, ButtonDown) andrej@1691: obj.Bind(wx.EVT_LEFT_UP, ButtonUp) andrej@1691: return obj andrej@1691: andrej@1691: def UpdPos(self): andrej@1691: positions = [getattr(PLCGlobals,axname+"axisPos") for axname in AxisList] andrej@1691: andrej@1691: self.window_1.UpdatePositions(positions) andrej@1691: andrej@1691: Class_wxglade_hmi.UpdPos = UpdPos andrej@1691: andrej@1691: andrej@1691: #def UpdatePositions(self, event): andrej@1691: # andrej@1691: # positions = [getattr(PLCGlobals,axname+"axisPos") for axname in AxisList] andrej@1691: # andrej@1691: # self.window_1.UpdatePositions(positions) andrej@1691: # andrej@1691: # event.Skip() andrej@1691: andrej@1691: #Class_wxglade_hmi.UpdatePositions = UpdatePositions andrej@1691: andrej@1691: initorig = Class_wxglade_hmi.__init__ andrej@1691: def Init(self,*args,**kargs): andrej@1691: initorig(self,*args,**kargs) andrej@1691: sizer = self.GetSizer().GetItem(1).GetSizer().GetItem(0).GetSizer() andrej@1691: self.main_buttons = map( andrej@1691: lambda btname: MakeButtonFunc(self, sizer, btname), PwrButtons) andrej@1691: sizer = self.GetSizer().GetItem(1).GetSizer().GetItem(1).GetSizer() andrej@1691: self.main_buttons = map( andrej@1691: lambda btname: MakeButtonFunc(self, sizer, btname), ActionButtons) andrej@1691: self.axis_buttons = map( andrej@1691: lambda axis:( MakeButtonFunc(self, sizer, axis+"axisMinus"), andrej@1691: MakeButtonFunc(self, sizer, axis+"axisPlus")), andrej@1691: AxisList) andrej@1691: andrej@1691: andrej@1691: # self.timer = wx.Timer(self, -1) andrej@1691: # self.Bind(wx.EVT_TIMER, self.UpdatePositions, self.timer) andrej@1691: # self.ShowFullScreen(True,wx.FULLSCREEN_ALL) andrej@1691: # wx.CallAfter(self.timer.Start,200) andrej@1691: andrej@1691: Class_wxglade_hmi.__init__ = Init andrej@1691: andrej@1691: def SetPLCTestBtnGlobalVar(self, evt): andrej@1691: setattr(PLCGlobals, "DrawTestBtn", evt.GetEventObject().GetValue()) andrej@1691: andrej@1691: def SetPLCTestBtn2GlobalVar(self, evt): andrej@1691: setattr(PLCGlobals, "DrawTestBtn2", evt.GetEventObject().GetValue()) andrej@1691: andrej@1691: ]]></xhtml:p> andrej@1691: </globals> andrej@1691: <init> andrej@1691: <xhtml:p><![CDATA[ andrej@1691: ]]></xhtml:p> andrej@1691: </init> andrej@1691: <cleanup> andrej@1691: <xhtml:p><![CDATA[ andrej@1691: ]]></xhtml:p> andrej@1691: </cleanup> andrej@1691: <start> andrej@1691: <xhtml:p><![CDATA[ andrej@1691: ]]></xhtml:p> andrej@1691: </start> andrej@1691: <stop> andrej@1691: <xhtml:p><![CDATA[ andrej@1691: ]]></xhtml:p> andrej@1691: </stop> andrej@1691: </PyFile>