diff -r bf3eac08a96b -r 482ca562d414 plugins/canfestival/config_utils.py --- a/plugins/canfestival/config_utils.py Mon Jun 23 16:06:20 2008 +0200 +++ b/plugins/canfestival/config_utils.py Mon Jun 23 17:52:21 2008 +0200 @@ -138,6 +138,8 @@ self.SlavesPdoNumber = {} # Dictionary of mapping value where unexpected variables are stored self.TrashVariables = {} + # Dictionary of pointed variables + self.PointedVariables = {} self.NodeList = nodelist self.Manager = self.NodeList.Manager @@ -145,6 +147,8 @@ self.MasterNode.SetNodeName(nodename) self.PrepareMasterNode() + def GetPointedVariables(self): + return self.PointedVariables def RemoveUsedNodeCobId(self, node): """ @@ -515,17 +519,18 @@ VariableTypeOffset[variable_infos["sizelocation"]] * VariableIncrement + \ variable_infos["nodeid"] + # Generate entry name + indexname = "%s%s%s_%d"%(VariableDirText[variable_infos["pdotype"]], + variable_infos["sizelocation"], + '_'.join(map(str,current_location)), + variable_infos["nodeid"]) + # Search for an entry that has an empty subindex while mapvariableidx < VariableStartIndex[variable_infos["pdotype"]] + 0x2000: # Entry doesn't exist if not self.MasterNode.IsEntry(mapvariableidx): - # Generate entry name - indexname = "%s%s%s_%d"%(VariableDirText[variable_infos["pdotype"]], - variable_infos["sizelocation"], - '_'.join(map(str,current_location)), - variable_infos["nodeid"]) # Add entry to MasterNode - self.Manager.AddMapVariableToCurrent(mapvariableidx, indexname, 3, 1, self.MasterNode) + self.Manager.AddMapVariableToCurrent(mapvariableidx, "beremiz"+indexname, 3, 1, self.MasterNode) new_index = True nbsubentries = self.MasterNode.GetEntry(mapvariableidx, 0x00) else: @@ -557,6 +562,9 @@ if typeinfos != None: value = (mapvariableidx << 16) + ((nbsubentries) << 8) + typeinfos["size"] self.MasterNode.SetEntry(current_idx + 0x200, subindex, value) + + # Add variable to pointed variables + self.PointedVariables[(mapvariableidx, nbsubentries)] = "%s_%s"%(indexname, subindexname) def GenerateConciseDCF(locations, current_location, nodelist, sync_TPDOs, nodename): """ @@ -574,7 +582,7 @@ dcfgenerator = ConciseDCFGenerator(nodelist, nodename) dcfgenerator.GenerateDCF(locations, current_location, sync_TPDOs) - return dcfgenerator.GetMasterNode() + return dcfgenerator.GetMasterNode(), dcfgenerator.GetPointedVariables() if __name__ == "__main__": import os, sys, getopt