etherlab/ConfigEditor.py
branchethercat_from_kosmos
changeset 2641 c9deff128c37
parent 2165 02a2b5dee5e3
child 2643 b98d9e08231f
--- a/etherlab/ConfigEditor.py	Sat Jun 23 09:17:20 2018 +0200
+++ b/etherlab/ConfigEditor.py	Wed Nov 20 16:57:15 2019 +0100
@@ -25,9 +25,9 @@
 from controls.CustomStyledTextCtrl import NAVIGATION_KEYS
 
 # -----------------------------------------------------------------------
-from EtherCATManagementEditor import EtherCATManagementTreebook, MasterStatePanelClass
-# -----------------------------------------------------------------------
-
+from EtherCATManagementEditor import EtherCATManagementTreebook, MasterStatePanelClass
+# -----------------------------------------------------------------------
+
 [ETHERCAT_VENDOR, ETHERCAT_GROUP, ETHERCAT_DEVICE] = range(3)
 
 def AppendMenu(parent, help, id, kind, text):
@@ -141,6 +141,9 @@
                     self.VariablesGrid.SetItemText(item, str(idx), 0)
                 else:
                     value = entry.get(colname, "")
+                    # add jblee
+                    if value is None:
+                        value = ""
                     if colname == "Access":
                         value = GetAccessValue(value, entry.get("PDOMapping", ""))
                     self.VariablesGrid.SetItemText(item, value, col)
@@ -284,7 +287,7 @@
         
         # add Contoler for use EthercatSlave.py Method
         self.Controler = controler
-        
+
     def GetBufferState(self):
         return False, False
         
@@ -299,17 +302,35 @@
             style=wx.TAB_TRAVERSAL|wx.HSCROLL|wx.VSCROLL)
         self.EtherCATManagementEditor.Bind(wx.EVT_SIZE, self.OnResize)
 
+        #self.Bind(wx.EVT_NOTEBOOK_PAGE_CHANGED, self.OnPageChanged)
+
         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)
-          
+        #except:
+        #try:
+        #    self.EtherCATManagementTreebook = EtherCATManagementTreebook(self.EtherCATManagementEditor, self.Controler, self)
+        #except:
+        #    self.EtherCATManagementTreebook = wx.Treebook(self.EtherCATManagementEditor, -1)
+        #    self.Controler.CommonMethod.CreateErrorDialog(\
+        #        "failed to open EtherCAT Management.\nplease remove the slave and try it again.")
+
         self.EtherCATManagermentEditor_Main_Sizer.AddSizer(self.EtherCATManagementTreebook, border=10, flag=wx.GROW)
 
         self.EtherCATManagementEditor.SetSizer(self.EtherCATManagermentEditor_Main_Sizer)
         return self.EtherCATManagementEditor
     
+    """
+    def OnPageChanged(self, event):
+        try:
+            print "OnPageChanged"
+            self.EtherCATManagementTreebook.SDOPanel.SDOMonitorThread.Stop();
+        except:
+            pass
+    """
+
     def OnResize(self, event):
         self.EtherCATManagementEditor.GetBestSize()
         xstart, ystart = self.EtherCATManagementEditor.GetViewStart()
@@ -595,20 +616,18 @@
     
     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.Bind(wx.EVT_SIZE, self.OnResize2)
+        
+        self.MasterStateEditor_Panel_Main_Sizer = wx.BoxSizer(wx.VERTICAL)
+
         self.MasterStateEditor_Panel = MasterStatePanelClass(self.MasterStateEditor, self.Controler)
         
-        self.MasterStateEditor_Panel_Main_Sizer.AddSizer(self.MasterStateEditor_Panel, border=10, flag=wx.GROW)
+        self.MasterStateEditor_Panel_Main_Sizer.AddSizer(self.MasterStateEditor_Panel, border=10, flag=wx.EXPAND)
          
         self.MasterStateEditor.SetSizer(self.MasterStateEditor_Panel_Main_Sizer)
         return self.MasterStateEditor
     
-    def OnResize(self, event):
+    def OnResize2(self, event):
         self.MasterStateEditor.GetBestSize()
         xstart, ystart = self.MasterStateEditor.GetViewStart()
         window_size = self.MasterStateEditor.GetClientSize()
@@ -1019,6 +1038,7 @@
                 if value not in self.Controler.GetSlaves():
                     message = _("No slave defined at position %d!") % value
                 old_value = self.StartupCommandsTable.GetOldValue()
+
                 command = self.StartupCommandsTable.GetRow(row)
                 if message is None and old_value != command["Position"]:
                     self.Controler.RemoveStartupCommand(
@@ -1054,33 +1074,6 @@
                 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):
     
     def __init__(self, parent, module_library, buttons):