diff -r 015dab6a915f -r e6946c298a42 etherlab/ConfigEditor.py --- a/etherlab/ConfigEditor.py Mon Jun 03 08:24:08 2013 +0200 +++ b/etherlab/ConfigEditor.py Wed Apr 02 15:03:32 2014 +0200 @@ -13,6 +13,10 @@ from util.BitmapLibrary import GetBitmap from controls.CustomStyledTextCtrl import NAVIGATION_KEYS +# ----------------------------------------------------------------------- +from EtherCATManagementEditor import EtherCATManagementTreebook, MasterStatePanelClass +# ----------------------------------------------------------------------- + [ETHERCAT_VENDOR, ETHERCAT_GROUP, ETHERCAT_DEVICE] = range(3) def AppendMenu(parent, help, id, kind, text): @@ -240,7 +244,10 @@ class NodeEditor(ConfTreeNodeEditor): CONFNODEEDITOR_TABS = [ - (_("Ethercat node"), "_create_EthercatNodeEditor")] + (_("Ethercat node"), "_create_EthercatNodeEditor"), + # Add Notebook Tab for EtherCAT Management Treebook + (_("EtherCAT Management"), "_create_EtherCATManagementEditor") + ] def _create_EthercatNodeEditor(self, prnt): self.EthercatNodeEditor = wx.Panel(prnt, style=wx.TAB_TRAVERSAL) @@ -264,6 +271,9 @@ def __init__(self, parent, controler, window): ConfTreeNodeEditor.__init__(self, parent, controler, window) + # add Contoler for use EthercatSlave.py Method + self.Controler = controler + def GetBufferState(self): return False, False @@ -272,8 +282,39 @@ self.NodeVariables.RefreshView() + # -------------------For EtherCAT Management ---------------------------------------------- + def _create_EtherCATManagementEditor(self, prnt): + self.EtherCATManagementEditor = wx.ScrolledWindow(prnt, + style=wx.TAB_TRAVERSAL|wx.HSCROLL|wx.VSCROLL) + self.EtherCATManagementEditor.Bind(wx.EVT_SIZE, self.OnResize) + + self.EtherCATManagermentEditor_Main_Sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=5) + self.EtherCATManagermentEditor_Main_Sizer.AddGrowableCol(0) + self.EtherCATManagermentEditor_Main_Sizer.AddGrowableRow(0) + + self.EtherCATManagementTreebook = EtherCATManagementTreebook(self.EtherCATManagementEditor, self.Controler, self) + + self.EtherCATManagermentEditor_Main_Sizer.AddSizer(self.EtherCATManagementTreebook, border=10, flag=wx.GROW) + + self.EtherCATManagementEditor.SetSizer(self.EtherCATManagermentEditor_Main_Sizer) + return self.EtherCATManagementEditor + + def OnResize(self, event): + self.EtherCATManagementEditor.GetBestSize() + xstart, ystart = self.EtherCATManagementEditor.GetViewStart() + window_size = self.EtherCATManagementEditor.GetClientSize() + maxx, maxy = self.EtherCATManagementEditor.GetMinSize() + posx = max(0, min(xstart, (maxx - window_size[0]) / SCROLLBAR_UNIT)) + posy = max(0, min(ystart, (maxy - window_size[1]) / SCROLLBAR_UNIT)) + self.EtherCATManagementEditor.Scroll(posx, posy) + self.EtherCATManagementEditor.SetScrollbars(SCROLLBAR_UNIT, SCROLLBAR_UNIT, + maxx / SCROLLBAR_UNIT, maxy / SCROLLBAR_UNIT, posx, posy) + event.Skip() + # ------------------------------------------------------------------------------------------------------- + CIA402NodeEditor = NodeEditor + def GetProcessVariablesTableColnames(): _ = lambda x : x return ["#", _("Name"), @@ -537,7 +578,36 @@ class MasterEditor(ConfTreeNodeEditor): CONFNODEEDITOR_TABS = [ - (_("Network"), "_create_EthercatMasterEditor")] + (_("Network"), "_create_EthercatMasterEditor"), + (_("Master State"), "_create_MasterStateEditor") + ] + + def _create_MasterStateEditor(self, prnt): + self.MasterStateEditor = wx.ScrolledWindow(prnt, style=wx.TAB_TRAVERSAL|wx.HSCROLL|wx.VSCROLL) + self.MasterStateEditor.Bind(wx.EVT_SIZE, self.OnResize) + + self.MasterStateEditor_Panel_Main_Sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=5) + self.MasterStateEditor_Panel_Main_Sizer.AddGrowableCol(0) + self.MasterStateEditor_Panel_Main_Sizer.AddGrowableRow(0) + + self.MasterStateEditor_Panel = MasterStatePanelClass(self.MasterStateEditor, self.Controler) + + self.MasterStateEditor_Panel_Main_Sizer.AddSizer(self.MasterStateEditor_Panel, border=10, flag=wx.GROW) + + self.MasterStateEditor.SetSizer(self.MasterStateEditor_Panel_Main_Sizer) + return self.MasterStateEditor + + def OnResize(self, event): + self.MasterStateEditor.GetBestSize() + xstart, ystart = self.MasterStateEditor.GetViewStart() + window_size = self.MasterStateEditor.GetClientSize() + maxx, maxy = self.MasterStateEditor.GetMinSize() + posx = max(0, min(xstart, (maxx - window_size[0]) / SCROLLBAR_UNIT)) + posy = max(0, min(ystart, (maxy - window_size[1]) / SCROLLBAR_UNIT)) + self.MasterStateEditor.Scroll(posx, posy) + self.MasterStateEditor.SetScrollbars(SCROLLBAR_UNIT, SCROLLBAR_UNIT, + maxx / SCROLLBAR_UNIT, maxy / SCROLLBAR_UNIT, posx, posy) + event.Skip() def _create_EthercatMasterEditor(self, prnt): self.EthercatMasterEditor = wx.ScrolledWindow(prnt, @@ -639,6 +709,10 @@ def __init__(self, parent, controler, window): ConfTreeNodeEditor.__init__(self, parent, controler, window) + # ------------------------------------------------------------------ + self.Controler = controler + # ------------------------------------------------------------------ + self.ProcessVariables = [] self.CellShown = None self.NodesFilterFirstCharacter = True @@ -968,6 +1042,33 @@ self.EthercatMasterEditor.SetScrollbars(SCROLLBAR_UNIT, SCROLLBAR_UNIT, maxx / SCROLLBAR_UNIT, maxy / SCROLLBAR_UNIT, posx, posy) event.Skip() + + #def OnButtonClick(self, event): + # self.MasterState = self.Controler.getMasterState() + # if self.MasterState: + # self.Phase.SetValue(self.MasterState["phase"]) + # self.Active.SetValue(self.MasterState["active"]) + # self.SlaveCount.SetValue(self.MasterState["slave"]) + # self.MacAddress.SetValue(self.MasterState["MAC"]) + # self.LinkState.SetValue(self.MasterState["link"]) + # self.TxFrames.SetValue(self.MasterState["TXframe"]) + # self.RxFrames.SetValue(self.MasterState["RXframe"]) + # self.TxByte.SetValue(self.MasterState["TXbyte"]) + # self.TxError.SetValue(self.MasterState["TXerror"]) + # self.LostFrames.SetValue(self.MasterState["lost"]) + + # self.TxFrameRate1.SetValue(self.MasterState["TXframerate1"]) + # self.TxFrameRate2.SetValue(self.MasterState["TXframerate2"]) + # self.TxFrameRate3.SetValue(self.MasterState["TXframerate3"]) + # self.TxRate1.SetValue(self.MasterState["TXrate1"]) + # self.TxRate2.SetValue(self.MasterState["TXrate2"]) + # self.TxRate3.SetValue(self.MasterState["TXrate3"]) + # self.LossRate1.SetValue(self.MasterState["loss1"]) + # self.LossRate2.SetValue(self.MasterState["loss2"]) + # self.LossRate3.SetValue(self.MasterState["loss3"]) + # self.FrameLoss1.SetValue(self.MasterState["frameloss1"]) + # self.FrameLoss2.SetValue(self.MasterState["frameloss2"]) + # self.FrameLoss3.SetValue(self.MasterState["frameloss3"]) class LibraryEditorSizer(wx.FlexGridSizer): @@ -1289,5 +1390,4 @@ self.ModuleLibraryEditor.SetScrollbars(SCROLLBAR_UNIT, SCROLLBAR_UNIT, maxx / SCROLLBAR_UNIT, maxy / SCROLLBAR_UNIT, posx, posy) event.Skip() - - + \ No newline at end of file