LDViewer.py
changeset 249 d8425712acef
parent 235 7b58a3b5b6ec
child 382 42a9b03bba82
equal deleted inserted replaced
248:f7df265edd54 249:d8425712acef
   164 Class derived from Viewer class that implements a Viewer of Ladder Diagram
   164 Class derived from Viewer class that implements a Viewer of Ladder Diagram
   165 """
   165 """
   166 
   166 
   167 class LD_Viewer(Viewer):
   167 class LD_Viewer(Viewer):
   168 
   168 
   169     def __init__(self, parent, tagname, window, controler):
   169     def __init__(self, parent, tagname, window, controler, debug = False, instancepath = ""):
   170         Viewer.__init__(self, parent, tagname, window, controler)
   170         Viewer.__init__(self, parent, tagname, window, controler, debug, instancepath)
   171         self.Rungs = []
   171         self.Rungs = []
   172         self.RungComments = []
   172         self.RungComments = []
   173         self.CurrentLanguage = "LD"
   173         self.CurrentLanguage = "LD"
   174 
   174 
   175 #-------------------------------------------------------------------------------
   175 #-------------------------------------------------------------------------------
   176 #                          Refresh functions
   176 #                          Refresh functions
   177 #-------------------------------------------------------------------------------
   177 #-------------------------------------------------------------------------------
       
   178 
       
   179     def ResetView(self):
       
   180         self.Rungs = []
       
   181         self.RungComments = []
       
   182         Viewer.ResetView(self)
   178 
   183 
   179     def RefreshView(self):
   184     def RefreshView(self):
   180         Viewer.RefreshView(self)
   185         Viewer.RefreshView(self)
   181         for i, rung in enumerate(self.Rungs):
   186         for i, rung in enumerate(self.Rungs):
   182             bbox = rung.GetBoundingBox()
   187             bbox = rung.GetBoundingBox()
   448 
   453 
   449     def AddLadderRung(self):
   454     def AddLadderRung(self):
   450         dialog = LDElementDialog(self.ParentWindow, "coil")
   455         dialog = LDElementDialog(self.ParentWindow, "coil")
   451         dialog.SetPreviewFont(self.GetFont())
   456         dialog.SetPreviewFont(self.GetFont())
   452         varlist = []
   457         varlist = []
   453         vars = self.Controler.GetEditedElementInterfaceVars(self.TagName)
   458         vars = self.Controler.GetEditedElementInterfaceVars(self.TagName, self.Debug)
   454         if vars:
   459         if vars:
   455             for var in vars:
   460             for var in vars:
   456                 if var["Class"] != "Input" and var["Type"] == "BOOL":
   461                 if var["Class"] != "Input" and var["Type"] == "BOOL":
   457                     varlist.append(var["Name"])
   462                     varlist.append(var["Name"])
   458         returntype = self.Controler.GetEditedElementInterfaceReturnType(self.TagName)
   463         returntype = self.Controler.GetEditedElementInterfaceReturnType(self.TagName, self.Debug)
   459         if returntype == "BOOL":
   464         if returntype == "BOOL":
   460             varlist.append(self.Controler.GetEditedElementName(self.TagName))
   465             varlist.append(self.Controler.GetEditedElementName(self.TagName))
   461         dialog.SetVariables(varlist)
   466         dialog.SetVariables(varlist)
   462         dialog.SetValues({"name":"","type":COIL_NORMAL})
   467         dialog.SetValues({"name":"","type":COIL_NORMAL})
   463         if dialog.ShowModal() == wx.ID_OK:
   468         if dialog.ShowModal() == wx.ID_OK:
   538                     wires.append(element)
   543                     wires.append(element)
   539         if len(wires) > 0:
   544         if len(wires) > 0:
   540             dialog = LDElementDialog(self.ParentWindow, "contact")
   545             dialog = LDElementDialog(self.ParentWindow, "contact")
   541             dialog.SetPreviewFont(self.GetFont())
   546             dialog.SetPreviewFont(self.GetFont())
   542             varlist = []
   547             varlist = []
   543             vars = self.Controler.GetEditedElementInterfaceVars(self.TagName)
   548             vars = self.Controler.GetEditedElementInterfaceVars(self.TagName, self.Debug)
   544             if vars:
   549             if vars:
   545                 for var in vars:
   550                 for var in vars:
   546                     if var["Class"] != "Output" and var["Type"] == "BOOL":
   551                     if var["Class"] != "Output" and var["Type"] == "BOOL":
   547                         varlist.append(var["Name"])
   552                         varlist.append(var["Name"])
   548             dialog.SetVariables(varlist)
   553             dialog.SetVariables(varlist)
   760                         right_elements.reverse()
   765                         right_elements.reverse()
   761                     elif right_powerrail:
   766                     elif right_powerrail:
   762                         dialog = LDElementDialog(self.ParentWindow, "coil")
   767                         dialog = LDElementDialog(self.ParentWindow, "coil")
   763                         dialog.SetPreviewFont(self.GetFont())
   768                         dialog.SetPreviewFont(self.GetFont())
   764                         varlist = []
   769                         varlist = []
   765                         vars = self.Controler.GetEditedElementInterfaceVars(self.TagName)
   770                         vars = self.Controler.GetEditedElementInterfaceVars(self.TagName, self.Debug)
   766                         if vars:
   771                         if vars:
   767                             for var in vars:
   772                             for var in vars:
   768                                 if var["Class"] != "Input" and var["Type"] == "BOOL":
   773                                 if var["Class"] != "Input" and var["Type"] == "BOOL":
   769                                     varlist.append(var["Name"])
   774                                     varlist.append(var["Name"])
   770                         returntype = self.Controler.GetEditedElementInterfaceReturnType(self.TagName)
   775                         returntype = self.Controler.GetEditedElementInterfaceReturnType(self.TagName, self.Debug)
   771                         if returntype == "BOOL":
   776                         if returntype == "BOOL":
   772                             varlist.append(self.Controler.GetEditedElementName(self.TagName))
   777                             varlist.append(self.Controler.GetEditedElementName(self.TagName))
   773                         dialog.SetVariables(varlist)
   778                         dialog.SetVariables(varlist)
   774                         dialog.SetValues({"name":"","type":COIL_NORMAL})
   779                         dialog.SetValues({"name":"","type":COIL_NORMAL})
   775                         if dialog.ShowModal() == wx.ID_OK:
   780                         if dialog.ShowModal() == wx.ID_OK:
  1182             Viewer.EditContactContent(self, contact)
  1187             Viewer.EditContactContent(self, contact)
  1183         else:
  1188         else:
  1184             dialog = LDElementDialog(self.ParentWindow, "contact")
  1189             dialog = LDElementDialog(self.ParentWindow, "contact")
  1185             dialog.SetPreviewFont(self.GetFont())
  1190             dialog.SetPreviewFont(self.GetFont())
  1186             varlist = []
  1191             varlist = []
  1187             vars = self.Controler.GetEditedElementInterfaceVars(self.TagName)
  1192             vars = self.Controler.GetEditedElementInterfaceVars(self.TagName, self.Debug)
  1188             if vars:
  1193             if vars:
  1189                 for var in vars:
  1194                 for var in vars:
  1190                     if var["Class"] != "Output" and var["Type"] == "BOOL":
  1195                     if var["Class"] != "Output" and var["Type"] == "BOOL":
  1191                         varlist.append(var["Name"])
  1196                         varlist.append(var["Name"])
  1192             dialog.SetVariables(varlist)
  1197             dialog.SetVariables(varlist)
  1206             Viewer.EditCoilContent(self, coil)
  1211             Viewer.EditCoilContent(self, coil)
  1207         else:
  1212         else:
  1208             dialog = LDElementDialog(self.ParentWindow, "coil")
  1213             dialog = LDElementDialog(self.ParentWindow, "coil")
  1209             dialog.SetPreviewFont(self.GetFont())
  1214             dialog.SetPreviewFont(self.GetFont())
  1210             varlist = []
  1215             varlist = []
  1211             vars = self.Controler.GetEditedElementInterfaceVars(self.TagName)
  1216             vars = self.Controler.GetEditedElementInterfaceVars(self.TagName, self.Debug)
  1212             if vars:
  1217             if vars:
  1213                 for var in vars:
  1218                 for var in vars:
  1214                     if var["Class"] != "Input" and var["Type"] == "BOOL":
  1219                     if var["Class"] != "Input" and var["Type"] == "BOOL":
  1215                         varlist.append(var["Name"])
  1220                         varlist.append(var["Name"])
  1216             returntype = self.Controler.GetEditedElementInterfaceReturnType(self.TagName)
  1221             returntype = self.Controler.GetEditedElementInterfaceReturnType(self.TagName, self.Debug)
  1217             if returntype == "BOOL":
  1222             if returntype == "BOOL":
  1218                 varlist.append(self.Controler.GetEditedElementName(self.TagName))
  1223                 varlist.append(self.Controler.GetEditedElementName(self.TagName))
  1219             dialog.SetVariables(varlist)
  1224             dialog.SetVariables(varlist)
  1220             dialog.SetValues({"name":coil.GetName(),"type":coil.GetType()})
  1225             dialog.SetValues({"name":coil.GetName(),"type":coil.GetType()})
  1221             if dialog.ShowModal() == wx.ID_OK:
  1226             if dialog.ShowModal() == wx.ID_OK: