etherlab/EtherCATManagementEditor.py
changeset 2381 1c40e3976cc2
parent 2380 b35bce45bc5a
child 2382 e783c6beacf1
equal deleted inserted replaced
2380:b35bce45bc5a 2381:1c40e3976cc2
   142                 ("RevisionnumberLabel", "Slave Count:", "revision_number"),
   142                 ("RevisionnumberLabel", "Slave Count:", "revision_number"),
   143                 ("PhysicsLabel", "Physics:", "physics")]:
   143                 ("PhysicsLabel", "Physics:", "physics")]:
   144             self.StaticTextDic[statictext_name] = wx.StaticText(self, label=_(statictext_label))
   144             self.StaticTextDic[statictext_name] = wx.StaticText(self, label=_(statictext_label))
   145             self.TextCtrlDic[textctrl_name] = wx.TextCtrl(self, size=wx.Size(130, 24), style=wx.TE_READONLY)
   145             self.TextCtrlDic[textctrl_name] = wx.TextCtrl(self, size=wx.Size(130, 24), style=wx.TE_READONLY)
   146             self.SizerDic["SlaveInfosDetailsInnerSizer"].AddMany([self.StaticTextDic[statictext_name],
   146             self.SizerDic["SlaveInfosDetailsInnerSizer"].AddMany([self.StaticTextDic[statictext_name],
   147                                                                self.TextCtrlDic[textctrl_name]])
   147                                                                   self.TextCtrlDic[textctrl_name]])
   148 
   148 
   149         self.SizerDic["SlaveInfosDetailsBox"].AddSizer(self.SizerDic["SlaveInfosDetailsInnerSizer"])
   149         self.SizerDic["SlaveInfosDetailsBox"].AddSizer(self.SizerDic["SlaveInfosDetailsInnerSizer"])
   150 
   150 
   151         self.SyncManagersGrid = CustomGrid(self, size=wx.Size(605, 155), style=wx.VSCROLL)
   151         self.SyncManagersGrid = CustomGrid(self, size=wx.Size(605, 155), style=wx.VSCROLL)
   152 
   152 
   179             self.ButtonDic[button_name].Bind(wx.EVT_BUTTON, event_method)
   179             self.ButtonDic[button_name].Bind(wx.EVT_BUTTON, event_method)
   180             self.ButtonDic[button_name].SetToolTipString(button_tooltipstring)
   180             self.ButtonDic[button_name].SetToolTipString(button_tooltipstring)
   181             self.SizerDic["SlaveState_down_sizer"].Add(self.ButtonDic[button_name])
   181             self.SizerDic["SlaveState_down_sizer"].Add(self.ButtonDic[button_name])
   182 
   182 
   183         self.SizerDic["SlaveState_sizer"].AddMany([self.SizerDic["SlaveState_up_sizer"],
   183         self.SizerDic["SlaveState_sizer"].AddMany([self.SizerDic["SlaveState_up_sizer"],
   184             self.SizerDic["SlaveState_down_sizer"]])
   184                                                    self.SizerDic["SlaveState_down_sizer"]])
   185 
   185 
   186         self.SizerDic["SlaveStateBox"].Add(self.SizerDic["SlaveState_sizer"])
   186         self.SizerDic["SlaveStateBox"].Add(self.SizerDic["SlaveState_sizer"])
   187 
   187 
   188         self.SizerDic["SlaveState_inner_main_sizer"].AddMany([
   188         self.SizerDic["SlaveState_inner_main_sizer"].AddMany([
   189             self.SizerDic["SlaveInfosDetailsBox"], self.SizerDic["SyncManagerBox"],
   189             self.SizerDic["SlaveInfosDetailsBox"], self.SizerDic["SyncManagerBox"],
   373         Parse SDO data set that obtain "SDOInfoUpdate" Method
   373         Parse SDO data set that obtain "SDOInfoUpdate" Method
   374         @return True or False
   374         @return True or False
   375         """
   375         """
   376 
   376 
   377         slaveSDO_progress = wx.ProgressDialog("Slave SDO Monitoring", "Now Uploading...",
   377         slaveSDO_progress = wx.ProgressDialog("Slave SDO Monitoring", "Now Uploading...",
   378                                maximum=len(self.SDOs.splitlines()), parent=self,
   378                                               maximum=len(self.SDOs.splitlines()),
   379                                style=wx.PD_CAN_ABORT | wx.PD_APP_MODAL | wx.PD_ELAPSED_TIME |
   379                                               parent=self,
   380                                      wx.PD_ESTIMATED_TIME | wx.PD_REMAINING_TIME |
   380                                               style=wx.PD_CAN_ABORT | wx.PD_APP_MODAL | wx.PD_ELAPSED_TIME |
   381                                      wx.PD_AUTO_HIDE | wx.PD_SMOOTH)
   381                                               wx.PD_ESTIMATED_TIME | wx.PD_REMAINING_TIME |
       
   382                                               wx.PD_AUTO_HIDE | wx.PD_SMOOTH)
   382 
   383 
   383         # If keep_going flag is False, SDOParser method is stop and return "False".
   384         # If keep_going flag is False, SDOParser method is stop and return "False".
   384         keep_going = True
   385         keep_going = True
   385         count = 0
   386         count = 0
   386 
   387 
   494         """
   495         """
   495         self.Data = []
   496         self.Data = []
   496         count = 1
   497         count = 1
   497 
   498 
   498         page_texts = [("all", self.parent.AllSDOData),
   499         page_texts = [("all", self.parent.AllSDOData),
   499                      ("0x0000 - 0x0ff", self.parent.DatatypeDescription),
   500                       ("0x0000 - 0x0ff", self.parent.DatatypeDescription),
   500                      ("0x1000 - 0x1fff", self.parent.CommunicationObject),
   501                       ("0x1000 - 0x1fff", self.parent.CommunicationObject),
   501                      ("0x2000 - 0x5fff", self.parent.ManufacturerSpecific),
   502                       ("0x2000 - 0x5fff", self.parent.ManufacturerSpecific),
   502                      ("0x6000 - 0x9fff", self.parent.ProfileSpecific),
   503                       ("0x6000 - 0x9fff", self.parent.ProfileSpecific),
   503                      ("0xa000 - 0xffff", self.parent.Reserved)]
   504                       ("0xa000 - 0xffff", self.parent.Reserved)]
   504 
   505 
   505         page_tooltip_string = ["SDO Index 0x0000 - 0x0fff : Data Type Description",
   506         page_tooltip_string = ["SDO Index 0x0000 - 0x0fff : Data Type Description",
   506                                "SDO Index 0x1000 - 0x1fff : Communication object",
   507                                "SDO Index 0x1000 - 0x1fff : Communication object",
   507                                "SDO Index 0x2000 - 0x5fff : Manufacturer specific",
   508                                "SDO Index 0x2000 - 0x5fff : Manufacturer specific",
   508                                "SDO Index 0x6000 - 0x9fff : Profile specific",
   509                                "SDO Index 0x6000 - 0x9fff : Profile specific",
   662                 try:
   663                 try:
   663                     int(dlg.GetValue(), 0)
   664                     int(dlg.GetValue(), 0)
   664                     # check "Access" field
   665                     # check "Access" field
   665                     if self.DecideSDODownload(self.Controler.CommonMethod.SlaveState[self.Controler.GetSlavePos()]):
   666                     if self.DecideSDODownload(self.Controler.CommonMethod.SlaveState[self.Controler.GetSlavePos()]):
   666                         # Request "SDODownload"
   667                         # Request "SDODownload"
   667                         self.Controler.CommonMethod.SDODownload(self.SDOs[event.GetRow()]['type'], self.SDOs[event.GetRow()]['idx'],
   668                         self.Controler.CommonMethod.SDODownload(
   668                                                    self.SDOs[event.GetRow()]['subIdx'], dlg.GetValue())
   669                             self.SDOs[event.GetRow()]['type'],
       
   670                             self.SDOs[event.GetRow()]['idx'],
       
   671                             self.SDOs[event.GetRow()]['subIdx'],
       
   672                             dlg.GetValue())
       
   673 
   669                         self.SetCellValue(event.GetRow(), event.GetCol(), hex(int(dlg.GetValue(), 0)))
   674                         self.SetCellValue(event.GetRow(), event.GetCol(), hex(int(dlg.GetValue(), 0)))
   670                     else:
   675                     else:
   671                         self.Controler.CommonMethod.CreateErrorDialog('You cannot SDO download this state')
   676                         self.Controler.CommonMethod.CreateErrorDialog('You cannot SDO download this state')
   672                 # Error occured process of "int(variable)"
   677                 # Error occured process of "int(variable)"
   673                 # User input is not hex, dec value
   678                 # User input is not hex, dec value
  1265 
  1270 
  1266         self.HexViewSizer = {"view": wx.FlexGridSizer(cols=1, hgap=10, rows=2, vgap=10),
  1271         self.HexViewSizer = {"view": wx.FlexGridSizer(cols=1, hgap=10, rows=2, vgap=10),
  1267                              "siiButton": wx.BoxSizer()}
  1272                              "siiButton": wx.BoxSizer()}
  1268         self.HexViewButton = {}
  1273         self.HexViewButton = {}
  1269 
  1274 
  1270         for key, evt_handler in [("Sii Upload", self.OnButtonSiiUpload),
  1275         for key, evt_handler in [
  1271                                 ("Sii Download", self.OnButtonSiiDownload),
  1276                 ("Sii Upload", self.OnButtonSiiUpload),
  1272                                 ("Write to File", self.OnButtonWriteToBinFile),
  1277                 ("Sii Download", self.OnButtonSiiDownload),
  1273                                 ("Read from File", self.OnButtonReadFromBinFile),
  1278                 ("Write to File", self.OnButtonWriteToBinFile),
  1274                                 ("XML to EEPROM Image", self.OnButtonXmlToEEPROMImg)]:
  1279                 ("Read from File", self.OnButtonReadFromBinFile),
       
  1280                 ("XML to EEPROM Image", self.OnButtonXmlToEEPROMImg)]:
  1275             self.HexViewButton[key] = wx.Button(self, -1, key)
  1281             self.HexViewButton[key] = wx.Button(self, -1, key)
  1276             self.HexViewButton[key].Bind(wx.EVT_BUTTON, evt_handler)
  1282             self.HexViewButton[key].Bind(wx.EVT_BUTTON, evt_handler)
  1277             self.HexViewSizer["siiButton"].Add(self.HexViewButton[key])
  1283             self.HexViewSizer["siiButton"].Add(self.HexViewButton[key])
  1278 
  1284 
  1279         self.SiiBinary = self.Controler.CommonMethod.XmlToEeprom()
  1285         self.SiiBinary = self.Controler.CommonMethod.XmlToEeprom()
  1826         for iter in range(4):
  1832         for iter in range(4):
  1827             self.RegPage.append(None)
  1833             self.RegPage.append(None)
  1828 
  1834 
  1829         for index in range(4):
  1835         for index in range(4):
  1830             self.RegPage[index] = RegisterNotebookPanel(self, self.Controler,
  1836             self.RegPage[index] = RegisterNotebookPanel(self, self.Controler,
  1831                                                     parent.MainRow[index], parent.MainCol)
  1837                                                         parent.MainRow[index], parent.MainCol)
  1832             self.AddPage(self.RegPage[index],
  1838             self.AddPage(self.RegPage[index],
  1833                          "0x"+"{:0>4x}".format(index*1024)+" - 0x"+"{:0>4x}".format((index+1)*1024-1))
  1839                          "0x"+"{:0>4x}".format(index*1024)+" - 0x"+"{:0>4x}".format((index+1)*1024-1))
  1834 
  1840 
  1835         self.Bind(wx.EVT_NOTEBOOK_PAGE_CHANGED, self.OnPageChanged)
  1841         self.Bind(wx.EVT_NOTEBOOK_PAGE_CHANGED, self.OnPageChanged)
  1836         self.Bind(wx.EVT_NOTEBOOK_PAGE_CHANGING, self.OnPageChanging)
  1842         self.Bind(wx.EVT_NOTEBOOK_PAGE_CHANGING, self.OnPageChanging)