##// END OF EJS Templates
Se agrego el ID de identificacion para cada clase del controlador....
Se agrego el ID de identificacion para cada clase del controlador. Se agrego el parametro inputId a la Unidad de Procesamiento (UP)

File last commit:

r195:7a77d1c4b33f
r195:7a77d1c4b33f
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