etherlab/ConfigEditor.py
branchethercat_from_kosmos
changeset 2641 c9deff128c37
parent 2165 02a2b5dee5e3
child 2643 b98d9e08231f
equal deleted inserted replaced
2192:09d5d1456616 2641:c9deff128c37
   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