示例#1
0
    def __init__(self, _ini, _path, _name=""):
	self.ini = str(_ini)
	self.name= str(_name)
	self.path = str(_path)
	
	self.rootAnalisator = rootA.rootAnaliser(self.path+"/cps/")

	f=open(self.ini,"r")		
	
	self.content=f.read()
	
	f.close()
	
	if self.name=="":
	    self.name = self.getStationName()+".ini"
示例#2
0
    def __init__(self,resultFileName, path, _isEmptyGroupsRemove=True):
	print "Начало создания таблицы ТУ"	
    
	self.resultFileName = resultFileName
	self.path = path
	
	ra=rootA.rootAnaliser(self.path)

	# сохранить имеющийся файл resultFileName с расширением old
        try:
            f = open(resultFileName,'r')
            oldContent = f.read()
            f.close()

            f1 = open(resultFileName+".old",'w')
            f1.write(oldContent)
            f1.close()
        except:
            donothing=0

	#просмотреть данную директорию на наличие файлов impulses.<....>.xml
	for file in os.listdir(self.path):

	    #Требуется ли рассматривать этот файл (в качестве файла с ТУ)
            isRequired=True
            #проверяем на несоответствие образцу
            for pattern in self.notUsedPattern:
                if re.search(pattern,file):
                    isRequired=False
                    break
            # проверяем на несовпадение имени с запрещёнными файлами
            for one in self.notUsed:
                if file==one:
                    isRequired=False
                    break

            if isRequired and re.search(".xml$",file) :
		print "Найден файл "+str(file)
		
		try:
		#if True:
		    impDoc = FromXmlFile(self.path+"/"+file)
		    root = impDoc.documentElement
		    objs = root.getElementsByTagName("obj")
		    for obj in objs:
			# имя рассматриваемого объекта
			objName = obj.getAttribute("name")
			objTitle = obj.getAttribute("title")
			objClass = obj.getAttribute("class")
			sets = obj.getElementsByTagName("sets")
			for set in sets:
			    tuName=set.getAttribute("attr")
		    	    if set.firstChild.TEXT_NODE:
		    		ts = set.firstChild.data
				ts = ts.replace("\"","")
				ts = ts.replace("'","")
				ts = re.sub("\s$", "", ts, 10)
				ts = re.sub("^\s", "", ts, 10)
				
				if objClass!="signalImp":
                                    tsList = re.split("\s", ts)

                                    channel=0
                                    group=0
                                    imp=0
                                    #получить номера канала, группы и импульса
				    
                                    try:
                                        channel = string.atoi(tsList[1])
                                        group = string.atoi(tsList[2])
                                        imp = string.atoi(tsList[3])
                                    except:
                                        donothing=0
                                    # отправить на обработку объекту класса matrix.Matrix
                                    if not (imp==0 or group==0):
                                        self.channels.append(channel)
                                        self.groups.append(group)
                                        self.impulses.append(imp)
                                        p=""
                                        try:
                                            p=vocTU.voc[tuName]
                                        except:
                                            donothing=0
					
					if objTitle!="":
                                    	    if p!="":
                                        	self.names.append(str(objTitle.encode("utf-8"))+" ("+str(p)+")")
                                    	    else:
                                        	self.names.append(str(objTitle.encode("utf-8"))+" ("+str(tuName)+")")
					else:
                                    	    if p!="":
                                        	self.names.append(str(objName)+" ("+str(p)+")")
                                    	    else:
                                        	self.names.append(str(objName)+" ("+str(tuName)+")")
					    
				#except:
				#    donothing=0
													    
		    
		except:
		    print "Не получилось обработать файл "+str(self.path)+"/"+str(file)+" (пропущено)"
		    continue
		    

	fromRoots=ra.getRoots()
	for root in fromRoots:
	    self.channels.append(root[0])
	    self.groups.append(root[1])
	    self.impulses.append(root[2])
	    #self.names.append(vocTU.voc[root[3]])

	    try:
        	self.names.append(vocTU.voc[root[3]])
	    except:
	        self.names.append(root[3])
	    #try:
	    #    self.rusNames.append(vocTU.voc[root[3]])
	    #except:
	    #    self.rusNames.append(root[3])
												    

		    
	channelsReal = []
	#создать копию массива channels
	for i in self.channels:
	    channelsReal.append(i)    
			    
	    
	channelsReal.sort()
	
	self.ch = []
	for i in range(0, len(channelsReal)):
	    if i!=0:
		if channelsReal[i]!=channelsReal[i-1]:
		    self.ch.append(channelsReal[i])
	    else:
		self.ch.append(channelsReal[0])
	
	
	    
	for i in self.ch:
	
	    print "++++++ Канал = "+str(i)
	    
	    matr = matrix.Matrix()
	    
	    for j in range(0, len(self.groups)):
		if self.channels[j]==i:
	    	    matr.append(self.groups[j], self.impulses[j], self.names[j], self.names[j])
	    
	    self.matrixes.append( matr.getMatrix(_isEmptyGroupsRemove) )
	    self.XminLines.append( matr.getYmin() )
	    self.YminLines.append( matr.getXmin() )
	    self.Xs.append(matr.getXs())
	    matr = None