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: |