objdictgen/nodelist.py
changeset 580 2ae92a99ac10
parent 505 88956169c8b5
child 740 b6646a975f23
equal deleted inserted replaced
577:0bb82be64630 580:2ae92a99ac10
    94         self.SlaveNodes = {}
    94         self.SlaveNodes = {}
    95         self.EDSNodes = {}
    95         self.EDSNodes = {}
    96         
    96         
    97         self.Root = root
    97         self.Root = root
    98         if not os.path.exists(self.Root):
    98         if not os.path.exists(self.Root):
    99             return "\"%s\" folder doesn't exist"%self.Root
    99             return _("\"%s\" folder doesn't exist")%self.Root
   100         
   100         
   101         self.EDSFolder = os.path.join(self.Root, "eds")
   101         self.EDSFolder = os.path.join(self.Root, "eds")
   102         if not os.path.exists(self.EDSFolder):
   102         if not os.path.exists(self.EDSFolder):
   103             os.mkdir(self.EDSFolder)
   103             os.mkdir(self.EDSFolder)
   104             #return "\"%s\" folder doesn't contain a \"eds\" folder"%self.Root
   104             #return "\"%s\" folder doesn't contain a \"eds\" folder"%self.Root
   132     
   132     
   133     def ImportEDSFile(self, edspath, force = False):
   133     def ImportEDSFile(self, edspath, force = False):
   134         dir, file = os.path.split(edspath)
   134         dir, file = os.path.split(edspath)
   135         eds = os.path.join(self.EDSFolder, file)
   135         eds = os.path.join(self.EDSFolder, file)
   136         if not force and os.path.isfile(eds):
   136         if not force and os.path.isfile(eds):
   137             return "EDS file already imported"
   137             return _("EDS file already imported")
   138         else:
   138         else:
   139             shutil.copy(edspath, self.EDSFolder)
   139             shutil.copy(edspath, self.EDSFolder)
   140             return self.LoadEDS(file)
   140             return self.LoadEDS(file)
   141     
   141     
   142     def LoadEDS(self, eds):
   142     def LoadEDS(self, eds):
   153             slave = {"Name" : nodeName, "EDS" : eds, "Node" : self.EDSNodes[eds]}
   153             slave = {"Name" : nodeName, "EDS" : eds, "Node" : self.EDSNodes[eds]}
   154             self.SlaveNodes[nodeID] = slave
   154             self.SlaveNodes[nodeID] = slave
   155             self.Changed = True
   155             self.Changed = True
   156             return None
   156             return None
   157         else:
   157         else:
   158             return "\"%s\" EDS file is not available"%eds
   158             return _("\"%s\" EDS file is not available")%eds
   159     
   159     
   160     def RemoveSlaveNode(self, index):
   160     def RemoveSlaveNode(self, index):
   161         if index in self.SlaveNodes.keys():
   161         if index in self.SlaveNodes.keys():
   162             self.SlaveNodes.pop(index)
   162             self.SlaveNodes.pop(index)
   163             return None
   163             return None
   164         else:
   164         else:
   165             return "Node with \"0x%2.2X\" ID doesn't exist"
   165             return _("Node with \"0x%2.2X\" ID doesn't exist")
   166     
   166     
   167     def LoadMasterNode(self, netname = None):
   167     def LoadMasterNode(self, netname = None):
   168         if netname:
   168         if netname:
   169             masterpath = os.path.join(self.Root, "%s_master.od"%netname)
   169             masterpath = os.path.join(self.Root, "%s_master.od"%netname)
   170         else:
   170         else:
   183         else:
   183         else:
   184             masterpath = os.path.join(self.Root, "master.od")
   184             masterpath = os.path.join(self.Root, "master.od")
   185         if self.Manager.SaveCurrentInFile(masterpath):
   185         if self.Manager.SaveCurrentInFile(masterpath):
   186             return None
   186             return None
   187         else:
   187         else:
   188             return "Fail to save Master Node"
   188             return _("Fail to save Master Node")
   189     
   189     
   190     def LoadSlaveNodes(self, netname = None):
   190     def LoadSlaveNodes(self, netname = None):
   191         cpjpath = os.path.join(self.Root, "nodelist.cpj")
   191         cpjpath = os.path.join(self.Root, "nodelist.cpj")
   192         if os.path.isfile(cpjpath):
   192         if os.path.isfile(cpjpath):
   193             try:
   193             try:
   207                             result = self.AddSlaveNode(node["Name"], nodeid, node["DCFName"])
   207                             result = self.AddSlaveNode(node["Name"], nodeid, node["DCFName"])
   208                             if result != None:
   208                             if result != None:
   209                                 return result        
   209                                 return result        
   210                 self.Changed = False
   210                 self.Changed = False
   211             except SyntaxError, message:
   211             except SyntaxError, message:
   212                 return "Unable to load CPJ file\n%s"%message
   212                 return _("Unable to load CPJ file\n%s")%message
   213         return None
   213         return None
   214     
   214     
   215     def SaveNodeList(self, netname = None):
   215     def SaveNodeList(self, netname = None):
   216         try:
   216         try:
   217             cpjpath = os.path.join(self.Root, "nodelist.cpj")
   217             cpjpath = os.path.join(self.Root, "nodelist.cpj")
   223             file.write(content)
   223             file.write(content)
   224             file.close()
   224             file.close()
   225             self.Changed = False
   225             self.Changed = False
   226             return None
   226             return None
   227         except:
   227         except:
   228             return "Fail to save node list"
   228             return _("Fail to save node list")
   229     
   229     
   230     def GetSlaveNodeEntry(self, nodeid, index, subindex = None):
   230     def GetSlaveNodeEntry(self, nodeid, index, subindex = None):
   231         if nodeid in self.SlaveNodes.keys():
   231         if nodeid in self.SlaveNodes.keys():
   232             self.SlaveNodes[nodeid]["Node"].SetNodeID(nodeid)
   232             self.SlaveNodes[nodeid]["Node"].SetNodeID(nodeid)
   233             return self.SlaveNodes[nodeid]["Node"].GetEntry(index, subindex)
   233             return self.SlaveNodes[nodeid]["Node"].GetEntry(index, subindex)
   234         else:
   234         else:
   235             return "Node 0x%2.2X doesn't exist"%nodeid
   235             return _("Node 0x%2.2X doesn't exist")%nodeid
   236 
   236 
   237     def GetMasterNodeEntry(self, index, subindex = None):
   237     def GetMasterNodeEntry(self, index, subindex = None):
   238         return self.Manager.GetCurrentEntry(index, subindex)
   238         return self.Manager.GetCurrentEntry(index, subindex)
   239         
   239         
   240     def SetMasterNodeEntry(self, index, subindex = None, value = None):
   240     def SetMasterNodeEntry(self, index, subindex = None, value = None):
   298                     for index in node.GetIndexes():
   298                     for index in node.GetIndexes():
   299                         if min <= index <= max:
   299                         if min <= index <= max:
   300                             validindexes.append((node.GetEntryName(index), index))
   300                             validindexes.append((node.GetEntryName(index), index))
   301                     return validindexes
   301                     return validindexes
   302                 else:
   302                 else:
   303                     print "Can't find node"
   303                     print _("Can't find node")
   304         return []
   304         return []
   305     
   305     
   306     def GetCurrentEntryValues(self, index):
   306     def GetCurrentEntryValues(self, index):
   307         if self.CurrentSelected != None:
   307         if self.CurrentSelected != None:
   308             node = self.SlaveNodes[self.CurrentSelected]["Node"]
   308             node = self.SlaveNodes[self.CurrentSelected]["Node"]
   309             if node:
   309             if node:
   310                 node.SetNodeID(self.CurrentSelected)
   310                 node.SetNodeID(self.CurrentSelected)
   311                 return self.Manager.GetNodeEntryValues(node, index)
   311                 return self.Manager.GetNodeEntryValues(node, index)
   312             else:
   312             else:
   313                 print "Can't find node"
   313                 print _("Can't find node")
   314         return [], []
   314         return [], []
   315     
   315     
   316     def AddToMasterDCF(self, node_id, index, subindex, size, value):
   316     def AddToMasterDCF(self, node_id, index, subindex, size, value):
   317         # Adding DCF entry into Master node
   317         # Adding DCF entry into Master node
   318         if not self.Manager.IsCurrentEntry(0x1F22):
   318         if not self.Manager.IsCurrentEntry(0x1F22):