##// END OF EJS Templates
Adicion del metodo filterByHeights en la clase VoltageProc....
Adicion del metodo filterByHeights en la clase VoltageProc. Adicion de las clases ProfileSelector y Decoder

File last commit:

r195:7a77d1c4b33f
r223:413a7765ec9f
Show More
controller.py
478 lines | 14.0 KiB | text/x-python | PythonLexer
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174 '''
Created on September , 2012
@author:
'''
from xml.etree.ElementTree import Element, SubElement, ElementTree
from xml.etree import ElementTree as ET
Miguel Valdez
-Estandarizacion de los nombres de paquetes y modulos escritos en minusculas...
r175 from xml.dom import minidom
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174 import sys
Miguel Valdez
-Estandarizacion de los nombres de paquetes y modulos escritos en minusculas...
r175 def prettify(elem):
"""Return a pretty-printed XML string for the Element.
"""
rough_string = ET.tostring(elem, 'utf-8')
reparsed = minidom.parseString(rough_string)
return reparsed.toprettyxml(indent=" ")
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174
Miguel Valdez
Se cambio los nombres a las clases para la configuracion "+Conf"
r180 class Controller():
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174
id = None
name = None
description = None
readBranchObjList = None
procBranchObjList = None
def __init__(self):
# self.id = id
# self.name = name
# self.description = description
self.readBranchObjList = []
self.procBranchObjList = []
def setParms(self, id, name, description):
self.id = id
self.name = name
self.description = description
def addReadBranch(self, dpath, dataformat, readMode, startDate='', endDate='', startTime='', endTime=''):
Miguel Valdez
Se agrego el ID de identificacion para cada clase del controlador....
r195 id = self.getNewId()
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174
Miguel Valdez
r193 readBranchObj = ReadBranch()
readBranchObj.setup(id, dpath, dataformat, readMode, startDate, endDate, startTime, endTime)
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174
self.readBranchObjList.append(readBranchObj)
return readBranchObj
def addProcBranch(self, name):
Miguel Valdez
Se agrego el ID de identificacion para cada clase del controlador....
r195 id = self.getNewId()
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174
Miguel Valdez
r193 procBranchObj = ProcBranch()
procBranchObj.setup(id, name)
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174
self.procBranchObjList.append(procBranchObj)
return procBranchObj
Miguel Valdez
Se agrego el ID de identificacion para cada clase del controlador....
r195 def getNewId(self):
id = int(self.id)*10 + len(self.readBranchObjList) + len(self.procBranchObjList) + 1
return id
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174 def makeXml(self):
Miguel Valdez
Se cambio los nombres a las clases para la configuracion "+Conf"
r180 projectElement = Element('Controller')
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174 projectElement.set('id', str(self.id))
projectElement.set('name', self.name)
Miguel Valdez
Actualizacion del controlador:...
r194 projectElement.set('description', self.description)
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174
for readBranchObj in self.readBranchObjList:
readBranchObj.makeXml(projectElement)
for procBranchObj in self.procBranchObjList:
procBranchObj.makeXml(projectElement)
self.projectElement = projectElement
def writeXml(self, filename):
self.makeXml()
ElementTree(self.projectElement).write(filename, method='xml')
print prettify(self.projectElement)
Miguel Valdez
-Estandarizacion de los nombres de paquetes y modulos escritos en minusculas...
r175 def readXml(self, filename):
#tree = ET.parse(filename)
self.projectElement = None
Miguel Valdez
r193 self.readBranchObjList = None
self.procBranchObjList = None
self.projectElement = ElementTree().parse(filename)
Miguel Valdez
-Estandarizacion de los nombres de paquetes y modulos escritos en minusculas...
r175
self.project = self.projectElement.tag
self.id = self.projectElement.get('id')
Miguel Valdez
r193 self.name = self.projectElement.get('name')
self.readBranchObjList = []
readBranchElementList = self.projectElement.getiterator('readBranch')
for readBranchElement in readBranchElementList:
readBrachObj = ReadBranch()
readBrachObj.readXml(readBranchElement)
self.readBranchObjList.append(readBranchObj)
self.procBranchObjList = []
procBranchElementList = self.projectElement.getiterator('procBranch')
for procBranchElement in procBranchElementList:
procBranchObj = ProcBranch()
procBranchObj.readXml(procBranchElement)
self.procBranchObjList.append(procBranchObj)
Miguel Valdez
Actualizacion del controlador:...
r194
def printattr(self):
print "Controller[%s]: name = %s, description = %s" %(self.id,
self.name,
self.description)
for readBranchObj in self.readBranchObjList:
readBranchObj.printattr()
for procBranchObj in self.procBranchObjList:
procBranchObj.printattr()
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174 class ReadBranch():
id = None
Miguel Valdez
Actualizacion del controlador:...
r194 name = None
Miguel Valdez
r193 # dpath = None
# dataformat = None
# readMode = None
# startDate = None
# endDate = None
# startTime = None
# endTime = None
parmObjList = []
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174
Miguel Valdez
r193 def __init__(self):
self.parmObjList = []
def setup(self, id, dpath, dataformat, readMode, startDate, endDate, startTime, endTime):
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174
self.id = id
self.dpath = dpath
self.dataformat = dataformat
self.readMode = readMode
self.startDate = startDate
self.endDate = endDate
self.startTime = startTime
self.endTime = endTime
Miguel Valdez
r193 def addParameter(self, name, value):
Miguel Valdez
Se agrego el ID de identificacion para cada clase del controlador....
r195 id = int(self.id)*10 + len(self.parmObjList) + 1
Miguel Valdez
r193
parmObj = ParameterConf()
parmObj.setup(id, name, value)
self.parmObjList.append(parmObj)
return parmObj
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174 def makeXml(self, projectElement):
readBranchElement = SubElement(projectElement, 'readBranch')
readBranchElement.set('id', str(self.id))
Miguel Valdez
r193
self.addParameter(name='dpath' , value=self.dpath)
self.addParameter(name='dataformat', value=self.dataformat)
self.addParameter(name='startDate' , value=self.startDate)
self.addParameter(name='endDate' , value=self.endDate)
self.addParameter(name='startTime' , value=self.startTime)
self.addParameter(name='endTime' , value=self.endTime)
self.addParameter(name='readMode' , value=str(self.readMode))
for parmObj in self.parmObjList:
parmObj.makeXml(readBranchElement)
def readXml(self, readBranchElement):
self.id = readBranchElement.get('id')
self.parmObjList = []
parmElementList = readBranchElement.getiterator('Parameter')
for parmElement in parmElementList:
Miguel Valdez
Actualizacion del controlador:...
r194 parmObj = ParameterConf()
Miguel Valdez
r193 parmObj.readXml(parmElement)
self.parmObjList.append(parmObj)
Miguel Valdez
Actualizacion del controlador:...
r194
def printattr(self):
print "ReadBranch[%s]: name = %s" %(self.id,
self.name)
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174
Miguel Valdez
Actualizacion del controlador:...
r194 for parmObj in self.parmObjList:
parmObj.printattr()
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174
class ProcBranch():
id = None
name = None
upObjList = None
Miguel Valdez
r193 def __init__(self):
pass
def setup(self, id, name):
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174
self.id = id
self.name = name
self.upObjList = []
Miguel Valdez
Se agrego el ID de identificacion para cada clase del controlador....
r195 def addUP(self, name, type, inputId):
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174
Miguel Valdez
Se agrego el ID de identificacion para cada clase del controlador....
r195 id = int(self.id)*10 + len(self.upObjList) + 1
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174
Miguel Valdez
r193 upObj = UPConf()
Miguel Valdez
Se agrego el ID de identificacion para cada clase del controlador....
r195 upObj.setup(id, name, type, inputId)
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174
self.upObjList.append(upObj)
return upObj
def makeXml(self, projectElement):
procBranchElement = SubElement(projectElement, 'procBranch')
procBranchElement.set('id', str(self.id))
procBranchElement.set('name', self.name)
for upObj in self.upObjList:
upObj.makeXml(procBranchElement)
Miguel Valdez
r193 def readXml(self, procBranchElement):
self.id = procBranchElement.get('id')
self.name = procBranchElement.get('name')
self.upObjList = []
upElementList = procBranchElement.getiterator('UP')
for upElement in upElementList:
upObj = UPConf()
Miguel Valdez
Actualizacion del controlador:...
r194 upObj.readXml(upElement)
Miguel Valdez
r193 self.upObjList.append(upObj)
Miguel Valdez
Actualizacion del controlador:...
r194 def printattr(self):
print "ProcBranch[%s]: name = %s" %(self.id,
self.name)
for upObj in self.upObjList:
upObj.printattr()
Miguel Valdez
Se cambio los nombres a las clases para la configuracion "+Conf"
r180 class UPConf():
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174
id = None
name = None
type = None
Miguel Valdez
Actualizacion del controlador:...
r194 inputId = None
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174
opObjList = []
Miguel Valdez
r193 def __init__(self):
pass
Miguel Valdez
Se agrego el ID de identificacion para cada clase del controlador....
r195 def setup(self, id, name, type, inputId):
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174
self.id = id
self.name = name
self.type = type
Miguel Valdez
Actualizacion del controlador:...
r194 self.inputId = inputId
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174
self.opObjList = []
Miguel Valdez
r181 def addOperation(self, name, priority, type='self'):
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174
Miguel Valdez
Se agrego el ID de identificacion para cada clase del controlador....
r195 id = int(self.id)*10 + len(self.opObjList) + 1
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174
Miguel Valdez
r193 opObj = OperationConf()
opObj.setup(id, name, priority, type)
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174
self.opObjList.append(opObj)
return opObj
def makeXml(self, procBranchElement):
upElement = SubElement(procBranchElement, 'UP')
upElement.set('id', str(self.id))
upElement.set('name', self.name)
upElement.set('type', self.type)
Miguel Valdez
Actualizacion del controlador:...
r194 upElement.set('inputId', str(self.inputId))
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174
for opObj in self.opObjList:
opObj.makeXml(upElement)
Miguel Valdez
r193 def readXml(self, upElement):
self.id = upElement.get('id')
self.name = upElement.get('name')
self.type = upElement.get('type')
Miguel Valdez
Actualizacion del controlador:...
r194 self.inputId = upElement.get('inputId')
self.opObjList = []
Miguel Valdez
r193
opElementList = upElement.getiterator('Operation')
for opElement in opElementList:
Miguel Valdez
Actualizacion del controlador:...
r194 opObj = OperationConf()
opObj.readXml(opElement)
self.opObjList.append(opObj)
Miguel Valdez
r193
Miguel Valdez
r184 def getOperationObjList(self):
Miguel Valdez
Los metodos getOperationList y getParameterList han sido añadidos
r182
return self.opObjList
Miguel Valdez
Actualizacion del controlador:...
r194 def printattr(self):
print "UP[%s]: name = %s, type = %s, inputId = %s" %(self.id,
self.name,
self.type,
self.inputId)
for opObj in self.opObjList:
opObj.printattr()
Miguel Valdez
Se cambio los nombres a las clases para la configuracion "+Conf"
r180 class OperationConf():
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174
id = 0
name = None
priority = None
Miguel Valdez
r181 type = 'self'
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174 parmObjList = []
Miguel Valdez
r193 def __init__(self):
pass
def setup(self, id, name, priority, type):
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174
self.id = id
self.name = name
self.priority = priority
Miguel Valdez
r181 self.type = type
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174
self.parmObjList = []
def addParameter(self, name, value):
Miguel Valdez
Se agrego el ID de identificacion para cada clase del controlador....
r195 id = int(self.id)*10 + len(self.parmObjList) + 1
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174
Miguel Valdez
r193 parmObj = ParameterConf()
parmObj.setup(id, name, value)
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174
self.parmObjList.append(parmObj)
return parmObj
def makeXml(self, upElement):
opElement = SubElement(upElement, 'Operation')
opElement.set('id', str(self.id))
opElement.set('name', self.name)
opElement.set('priority', str(self.priority))
for parmObj in self.parmObjList:
parmObj.makeXml(opElement)
Miguel Valdez
r193
def readXml(self, opElement):
self.id = opElement.get('id')
self.name = opElement.get('name')
self.type = opElement.get('type')
Miguel Valdez
Actualizacion del controlador:...
r194 self.parmObjList = []
Miguel Valdez
r193 parmElementList = opElement.getiterator('Parameter')
for parmElement in parmElementList:
Miguel Valdez
Actualizacion del controlador:...
r194 parmObj = ParameterConf()
parmObj.readXml(parmElement)
self.parmObjList.append(parmObj)
Miguel Valdez
r184 def getParameterObjList(self):
Miguel Valdez
Los metodos getOperationList y getParameterList han sido añadidos
r182
return self.parmObjList
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174
Miguel Valdez
Actualizacion del controlador:...
r194 def printattr(self):
print "Operation[%s]: name = %s, type = %s, priority = %s" %(self.id,
self.name,
self.type,
self.priority)
for parmObj in self.parmObjList:
parmObj.printattr()
Miguel Valdez
Se cambio los nombres a las clases para la configuracion "+Conf"
r180 class ParameterConf():
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174
id = None
name = None
value = None
Miguel Valdez
r193 def __init__(self):
pass
def setup(self, id, name, value):
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174
self.id = id
self.name = name
self.value = value
def makeXml(self, opElement):
parmElement = SubElement(opElement, 'Parameter')
Miguel Valdez
Actualizacion del controlador:...
r194 parmElement.set('id', str(self.id))
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174 parmElement.set('name', self.name)
parmElement.set('value', self.value)
Miguel Valdez
-Estandarizacion de los nombres de paquetes y modulos escritos en minusculas...
r175
Miguel Valdez
r193 def readXml(self, parmElement):
Miguel Valdez
-Estandarizacion de los nombres de paquetes y modulos escritos en minusculas...
r175
Miguel Valdez
r193 self.id = parmElement.get('id')
self.name = parmElement.get('name')
self.value = parmElement.get('value')
Miguel Valdez
Actualizacion del controlador:...
r194
def printattr(self):
print "Parameter[%s]: name = %s, value = %s" %(self.id, self.name, self.value)
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174
if __name__ == '__main__':
desc = "Este es un test"
filename = "test.xml"
Miguel Valdez
Se cambio los nombres a las clases para la configuracion "+Conf"
r180 projectObj = Controller()
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174
Miguel Valdez
Actualizacion del controlador:...
r194 projectObj.setParms(id = '191', name='test01', description=desc)
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174
readBranchObj = projectObj.addReadBranch(dpath='mydata', dataformat='rawdata', readMode=0, startDate='1', endDate='3', startTime='4', endTime='5')
procBranchObj = projectObj.addProcBranch(name='Branch1')
procBranchObj1 = projectObj.addProcBranch(name='Branch2')
Miguel Valdez
Se agrego el ID de identificacion para cada clase del controlador....
r195
upObj1 = procBranchObj.addUP(name='UP1', type='Voltage', inputId=readBranchObj.id)
upObj2 = procBranchObj.addUP(name='UP2', type='Voltage', inputId=upObj1.id)
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174
opObj11 = upObj1.addOperation(name='removeDC', priority=1)
opObj11.addParameter(name='type', value='1')
Miguel Valdez
Actualizacion del controlador:...
r194 opObj12 = upObj1.addOperation(name='decoder', priority=2)
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174 opObj12.addParameter(name='ncode', value='2')
opObj12.addParameter(name='nbauds', value='8')
Miguel Valdez
Actualizacion del controlador:...
r194 opObj12.addParameter(name='code0', value='001110011')
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174 opObj12.addParameter(name='code1', value='001110011')
Miguel Valdez
Actualizacion del controlador:...
r194 print "Escribiendo el archivo XML"
Miguel Valdez
-Estandarizacion de los nombres de paquetes y modulos escritos en minusculas...
r175
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174 projectObj.writeXml(filename)
Miguel Valdez
Actualizacion del controlador:...
r194 print "Leyendo el archivo XML"
Miguel Valdez
-Estandarizacion de los nombres de paquetes y modulos escritos en minusculas...
r175 projectObj.readXml(filename)
Miguel Valdez
Actualizacion del controlador:...
r194 projectObj.printattr()
Miguel Valdez
-Optimizacion de los modulos de Signal Chain....
r174