139 for col, colname in enumerate(colnames): |
139 for col, colname in enumerate(colnames): |
140 if col == 0: |
140 if col == 0: |
141 self.VariablesGrid.SetItemText(item, str(idx), 0) |
141 self.VariablesGrid.SetItemText(item, str(idx), 0) |
142 else: |
142 else: |
143 value = entry.get(colname, "") |
143 value = entry.get(colname, "") |
|
144 # add jblee |
|
145 if value is None: |
|
146 value = "" |
144 if colname == "Access": |
147 if colname == "Access": |
145 value = GetAccessValue(value, entry.get("PDOMapping", "")) |
148 value = GetAccessValue(value, entry.get("PDOMapping", "")) |
146 self.VariablesGrid.SetItemText(item, value, col) |
149 self.VariablesGrid.SetItemText(item, value, col) |
147 if entry["PDOMapping"] == "": |
150 if entry["PDOMapping"] == "": |
148 self.VariablesGrid.SetItemBackgroundColour(item, wx.LIGHT_GREY) |
151 self.VariablesGrid.SetItemBackgroundColour(item, wx.LIGHT_GREY) |
282 def __init__(self, parent, controler, window): |
285 def __init__(self, parent, controler, window): |
283 ConfTreeNodeEditor.__init__(self, parent, controler, window) |
286 ConfTreeNodeEditor.__init__(self, parent, controler, window) |
284 |
287 |
285 # add Contoler for use EthercatSlave.py Method |
288 # add Contoler for use EthercatSlave.py Method |
286 self.Controler = controler |
289 self.Controler = controler |
287 |
290 |
288 def GetBufferState(self): |
291 def GetBufferState(self): |
289 return False, False |
292 return False, False |
290 |
293 |
291 def RefreshView(self): |
294 def RefreshView(self): |
292 ConfTreeNodeEditor.RefreshView(self) |
295 ConfTreeNodeEditor.RefreshView(self) |
297 def _create_EtherCATManagementEditor(self, prnt): |
300 def _create_EtherCATManagementEditor(self, prnt): |
298 self.EtherCATManagementEditor = wx.ScrolledWindow(prnt, |
301 self.EtherCATManagementEditor = wx.ScrolledWindow(prnt, |
299 style=wx.TAB_TRAVERSAL|wx.HSCROLL|wx.VSCROLL) |
302 style=wx.TAB_TRAVERSAL|wx.HSCROLL|wx.VSCROLL) |
300 self.EtherCATManagementEditor.Bind(wx.EVT_SIZE, self.OnResize) |
303 self.EtherCATManagementEditor.Bind(wx.EVT_SIZE, self.OnResize) |
301 |
304 |
|
305 #self.Bind(wx.EVT_NOTEBOOK_PAGE_CHANGED, self.OnPageChanged) |
|
306 |
302 self.EtherCATManagermentEditor_Main_Sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=5) |
307 self.EtherCATManagermentEditor_Main_Sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=5) |
303 self.EtherCATManagermentEditor_Main_Sizer.AddGrowableCol(0) |
308 self.EtherCATManagermentEditor_Main_Sizer.AddGrowableCol(0) |
304 self.EtherCATManagermentEditor_Main_Sizer.AddGrowableRow(0) |
309 self.EtherCATManagermentEditor_Main_Sizer.AddGrowableRow(0) |
305 |
310 |
306 self.EtherCATManagementTreebook = EtherCATManagementTreebook(self.EtherCATManagementEditor, self.Controler, self) |
311 self.EtherCATManagementTreebook = EtherCATManagementTreebook(self.EtherCATManagementEditor, self.Controler, self) |
307 |
312 #except: |
|
313 #try: |
|
314 # self.EtherCATManagementTreebook = EtherCATManagementTreebook(self.EtherCATManagementEditor, self.Controler, self) |
|
315 #except: |
|
316 # self.EtherCATManagementTreebook = wx.Treebook(self.EtherCATManagementEditor, -1) |
|
317 # self.Controler.CommonMethod.CreateErrorDialog(\ |
|
318 # "failed to open EtherCAT Management.\nplease remove the slave and try it again.") |
|
319 |
308 self.EtherCATManagermentEditor_Main_Sizer.AddSizer(self.EtherCATManagementTreebook, border=10, flag=wx.GROW) |
320 self.EtherCATManagermentEditor_Main_Sizer.AddSizer(self.EtherCATManagementTreebook, border=10, flag=wx.GROW) |
309 |
321 |
310 self.EtherCATManagementEditor.SetSizer(self.EtherCATManagermentEditor_Main_Sizer) |
322 self.EtherCATManagementEditor.SetSizer(self.EtherCATManagermentEditor_Main_Sizer) |
311 return self.EtherCATManagementEditor |
323 return self.EtherCATManagementEditor |
312 |
324 |
|
325 """ |
|
326 def OnPageChanged(self, event): |
|
327 try: |
|
328 print "OnPageChanged" |
|
329 self.EtherCATManagementTreebook.SDOPanel.SDOMonitorThread.Stop(); |
|
330 except: |
|
331 pass |
|
332 """ |
|
333 |
313 def OnResize(self, event): |
334 def OnResize(self, event): |
314 self.EtherCATManagementEditor.GetBestSize() |
335 self.EtherCATManagementEditor.GetBestSize() |
315 xstart, ystart = self.EtherCATManagementEditor.GetViewStart() |
336 xstart, ystart = self.EtherCATManagementEditor.GetViewStart() |
316 window_size = self.EtherCATManagementEditor.GetClientSize() |
337 window_size = self.EtherCATManagementEditor.GetClientSize() |
317 maxx, maxy = self.EtherCATManagementEditor.GetMinSize() |
338 maxx, maxy = self.EtherCATManagementEditor.GetMinSize() |
593 (_("Master State"), "_create_MasterStateEditor") |
614 (_("Master State"), "_create_MasterStateEditor") |
594 ] |
615 ] |
595 |
616 |
596 def _create_MasterStateEditor(self, prnt): |
617 def _create_MasterStateEditor(self, prnt): |
597 self.MasterStateEditor = wx.ScrolledWindow(prnt, style=wx.TAB_TRAVERSAL|wx.HSCROLL|wx.VSCROLL) |
618 self.MasterStateEditor = wx.ScrolledWindow(prnt, style=wx.TAB_TRAVERSAL|wx.HSCROLL|wx.VSCROLL) |
598 self.MasterStateEditor.Bind(wx.EVT_SIZE, self.OnResize) |
619 self.MasterStateEditor.Bind(wx.EVT_SIZE, self.OnResize2) |
599 |
620 |
600 self.MasterStateEditor_Panel_Main_Sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=5) |
621 self.MasterStateEditor_Panel_Main_Sizer = wx.BoxSizer(wx.VERTICAL) |
601 self.MasterStateEditor_Panel_Main_Sizer.AddGrowableCol(0) |
622 |
602 self.MasterStateEditor_Panel_Main_Sizer.AddGrowableRow(0) |
|
603 |
|
604 self.MasterStateEditor_Panel = MasterStatePanelClass(self.MasterStateEditor, self.Controler) |
623 self.MasterStateEditor_Panel = MasterStatePanelClass(self.MasterStateEditor, self.Controler) |
605 |
624 |
606 self.MasterStateEditor_Panel_Main_Sizer.AddSizer(self.MasterStateEditor_Panel, border=10, flag=wx.GROW) |
625 self.MasterStateEditor_Panel_Main_Sizer.AddSizer(self.MasterStateEditor_Panel, border=10, flag=wx.EXPAND) |
607 |
626 |
608 self.MasterStateEditor.SetSizer(self.MasterStateEditor_Panel_Main_Sizer) |
627 self.MasterStateEditor.SetSizer(self.MasterStateEditor_Panel_Main_Sizer) |
609 return self.MasterStateEditor |
628 return self.MasterStateEditor |
610 |
629 |
611 def OnResize(self, event): |
630 def OnResize2(self, event): |
612 self.MasterStateEditor.GetBestSize() |
631 self.MasterStateEditor.GetBestSize() |
613 xstart, ystart = self.MasterStateEditor.GetViewStart() |
632 xstart, ystart = self.MasterStateEditor.GetViewStart() |
614 window_size = self.MasterStateEditor.GetClientSize() |
633 window_size = self.MasterStateEditor.GetClientSize() |
615 maxx, maxy = self.MasterStateEditor.GetMinSize() |
634 maxx, maxy = self.MasterStateEditor.GetMinSize() |
616 posx = max(0, min(xstart, (maxx - window_size[0]) / SCROLLBAR_UNIT)) |
635 posx = max(0, min(xstart, (maxx - window_size[0]) / SCROLLBAR_UNIT)) |
1017 message = None |
1036 message = None |
1018 if colname == "Position": |
1037 if colname == "Position": |
1019 if value not in self.Controler.GetSlaves(): |
1038 if value not in self.Controler.GetSlaves(): |
1020 message = _("No slave defined at position %d!") % value |
1039 message = _("No slave defined at position %d!") % value |
1021 old_value = self.StartupCommandsTable.GetOldValue() |
1040 old_value = self.StartupCommandsTable.GetOldValue() |
|
1041 |
1022 command = self.StartupCommandsTable.GetRow(row) |
1042 command = self.StartupCommandsTable.GetRow(row) |
1023 if message is None and old_value != command["Position"]: |
1043 if message is None and old_value != command["Position"]: |
1024 self.Controler.RemoveStartupCommand( |
1044 self.Controler.RemoveStartupCommand( |
1025 self.StartupCommandsTable.GetOldValue(), |
1045 self.StartupCommandsTable.GetOldValue(), |
1026 command["command_idx"], False) |
1046 command["command_idx"], False) |
1052 self.EthercatMasterEditor.Scroll(posx, posy) |
1072 self.EthercatMasterEditor.Scroll(posx, posy) |
1053 self.EthercatMasterEditor.SetScrollbars(SCROLLBAR_UNIT, SCROLLBAR_UNIT, |
1073 self.EthercatMasterEditor.SetScrollbars(SCROLLBAR_UNIT, SCROLLBAR_UNIT, |
1054 maxx / SCROLLBAR_UNIT, maxy / SCROLLBAR_UNIT, posx, posy) |
1074 maxx / SCROLLBAR_UNIT, maxy / SCROLLBAR_UNIT, posx, posy) |
1055 event.Skip() |
1075 event.Skip() |
1056 |
1076 |
1057 #def OnButtonClick(self, event): |
|
1058 # self.MasterState = self.Controler.getMasterState() |
|
1059 # if self.MasterState: |
|
1060 # self.Phase.SetValue(self.MasterState["phase"]) |
|
1061 # self.Active.SetValue(self.MasterState["active"]) |
|
1062 # self.SlaveCount.SetValue(self.MasterState["slave"]) |
|
1063 # self.MacAddress.SetValue(self.MasterState["MAC"]) |
|
1064 # self.LinkState.SetValue(self.MasterState["link"]) |
|
1065 # self.TxFrames.SetValue(self.MasterState["TXframe"]) |
|
1066 # self.RxFrames.SetValue(self.MasterState["RXframe"]) |
|
1067 # self.TxByte.SetValue(self.MasterState["TXbyte"]) |
|
1068 # self.TxError.SetValue(self.MasterState["TXerror"]) |
|
1069 # self.LostFrames.SetValue(self.MasterState["lost"]) |
|
1070 |
|
1071 # self.TxFrameRate1.SetValue(self.MasterState["TXframerate1"]) |
|
1072 # self.TxFrameRate2.SetValue(self.MasterState["TXframerate2"]) |
|
1073 # self.TxFrameRate3.SetValue(self.MasterState["TXframerate3"]) |
|
1074 # self.TxRate1.SetValue(self.MasterState["TXrate1"]) |
|
1075 # self.TxRate2.SetValue(self.MasterState["TXrate2"]) |
|
1076 # self.TxRate3.SetValue(self.MasterState["TXrate3"]) |
|
1077 # self.LossRate1.SetValue(self.MasterState["loss1"]) |
|
1078 # self.LossRate2.SetValue(self.MasterState["loss2"]) |
|
1079 # self.LossRate3.SetValue(self.MasterState["loss3"]) |
|
1080 # self.FrameLoss1.SetValue(self.MasterState["frameloss1"]) |
|
1081 # self.FrameLoss2.SetValue(self.MasterState["frameloss2"]) |
|
1082 # self.FrameLoss3.SetValue(self.MasterState["frameloss3"]) |
|
1083 |
|
1084 class LibraryEditorSizer(wx.FlexGridSizer): |
1077 class LibraryEditorSizer(wx.FlexGridSizer): |
1085 |
1078 |
1086 def __init__(self, parent, module_library, buttons): |
1079 def __init__(self, parent, module_library, buttons): |
1087 wx.FlexGridSizer.__init__(self, cols=1, hgap=0, rows=4, vgap=5) |
1080 wx.FlexGridSizer.__init__(self, cols=1, hgap=0, rows=4, vgap=5) |
1088 |
1081 |