etherlab/EthercatMaster.py
changeset 2160 75349c51a34b
parent 2157 a2385e535cf5
child 2165 02a2b5dee5e3
equal deleted inserted replaced
2159:93797d4303a3 2160:75349c51a34b
   217     EditorType = MasterEditor
   217     EditorType = MasterEditor
   218     
   218     
   219     def __init__(self):
   219     def __init__(self):
   220         config_filepath = self.ConfigFileName()
   220         config_filepath = self.ConfigFileName()
   221         config_is_saved = False
   221         config_is_saved = False
       
   222         self.Config = None
   222         if os.path.isfile(config_filepath):
   223         if os.path.isfile(config_filepath):
   223             config_xmlfile = open(config_filepath, 'r')
   224             config_xmlfile = open(config_filepath, 'r')
   224             self.Config = etree.fromstring(
   225             try:
   225                 config_xmlfile.read(), EtherCATConfigParser)
   226                 self.Config, error = \
   226             config_is_saved = True
   227                     EtherCATConfigParser.LoadXMLString(config_xmlfile.read())
       
   228                 if error is None:
       
   229                     config_is_saved = True
       
   230             except Exception, e:
       
   231                 error = e.message
   227             config_xmlfile.close()
   232             config_xmlfile.close()
   228         
   233             
   229         else:
   234             if error is not None:
       
   235                 self.GetCTRoot().logger.write_error(
       
   236                     _("Couldn't load %s network configuration file.") % CTNName)    
       
   237             
       
   238         if self.Config is None:
   230             self.Config = EtherCATConfigParser.CreateElement("EtherCATConfig")
   239             self.Config = EtherCATConfigParser.CreateElement("EtherCATConfig")
   231         
   240         
   232         process_filepath = self.ProcessVariablesFileName()
   241         process_filepath = self.ProcessVariablesFileName()
   233         process_is_saved = False
   242         process_is_saved = False
       
   243         self.ProcessVariables = None
   234         if os.path.isfile(process_filepath):
   244         if os.path.isfile(process_filepath):
   235             process_xmlfile = open(process_filepath, 'r')
   245             process_xmlfile = open(process_filepath, 'r')
   236             self.ProcessVariables = etree.fromstring(
   246             try:
   237                 process_xmlfile.read(), ProcessVariablesParser)
   247                 self.ProcessVariables, error = \
   238             process_is_saved = True
   248                     ProcessVariablesParser.LoadXMLString(process_xmlfile.read())
       
   249                 if error is None:
       
   250                     process_is_saved = True
       
   251             except Exception, e:
       
   252                 error = e.message
   239             process_xmlfile.close()
   253             process_xmlfile.close()
   240             
   254             
   241         else:
   255             if error is not None:
       
   256                 self.GetCTRoot().logger.write_error(
       
   257                     _("Couldn't load %s network process variables file.") % CTNName)    
       
   258             
       
   259         if self.ProcessVariables is None:
   242             self.ProcessVariables = ProcessVariablesParser.CreateElement("ProcessVariables")
   260             self.ProcessVariables = ProcessVariablesParser.CreateElement("ProcessVariables")
   243         
   261         
   244         if config_is_saved and process_is_saved:
   262         if config_is_saved and process_is_saved:
   245             self.CreateBuffer(True)
   263             self.CreateBuffer(True)
   246         else:
   264         else:
   539             slave = self.GetSlave(slave_pos)
   557             slave = self.GetSlave(slave_pos)
   540             if slave is not None:
   558             if slave is not None:
   541                 type_infos = slave.getType()
   559                 type_infos = slave.getType()
   542                 device, module_extra_params = self.GetModuleInfos(type_infos)
   560                 device, module_extra_params = self.GetModuleInfos(type_infos)
   543         if device is not None:
   561         if device is not None:
   544             print "Get Entries List", limits
       
   545             entries = device.GetEntriesList(limits)
   562             entries = device.GetEntriesList(limits)
   546             #print entries
   563             #print entries
   547             entries_list = entries.items()
   564             entries_list = entries.items()
   548             entries_list.sort()
   565             entries_list.sort()
   549             entries = []
   566             entries = []