##// END OF EJS Templates
Bux fixed: Se modifico el tipo de dato ainteger al leer el codigo en el RadarControllerHeader
Bux fixed: Se modifico el tipo de dato ainteger al leer el codigo en el RadarControllerHeader

File last commit:

r209:8c431837892b
r218:a84a1beaf0cb
Show More
controller.py
674 lines | 21.8 KiB | text/x-python | PythonLexer
Miguel Valdez
Controlador de Signal Chain finalizado....
r197 '''
Created on September , 2012
@author:
'''
from xml.etree.ElementTree import Element, SubElement, ElementTree
from xml.etree import ElementTree as ET
from xml.dom import minidom
import sys
import datetime
from model.jrodataIO import *
from model.jroprocessing import *
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 from model.jroplot import *
Miguel Valdez
Controlador de Signal Chain finalizado....
r197
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=" ")
class ParameterConf():
id = None
name = None
value = None
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 format = None
Miguel Valdez
Controlador de Signal Chain finalizado....
r197
ELEMENTNAME = 'Parameter'
def __init__(self):
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 self.format = 'str'
Miguel Valdez
Controlador de Signal Chain finalizado....
r197
def getElementName(self):
return self.ELEMENTNAME
def getValue(self):
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 if self.format == 'list':
Miguel Valdez
Controlador de Signal Chain finalizado....
r197 strList = self.value.split(',')
return strList
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 if self.format == 'intlist':
Miguel Valdez
Controlador de Signal Chain finalizado....
r197 strList = self.value.split(',')
intList = [int(x) for x in strList]
return intList
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 if self.format == 'floatlist':
Miguel Valdez
Controlador de Signal Chain finalizado....
r197 strList = self.value.split(',')
floatList = [float(x) for x in strList]
return floatList
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 if self.format == 'date':
Miguel Valdez
Controlador de Signal Chain finalizado....
r197 strList = self.value.split('/')
intList = [int(x) for x in strList]
date = datetime.date(intList[0], intList[1], intList[2])
return date
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 if self.format == 'time':
Miguel Valdez
Controlador de Signal Chain finalizado....
r197 strList = self.value.split(':')
intList = [int(x) for x in strList]
time = datetime.time(intList[0], intList[1], intList[2])
return time
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 func = eval(self.format)
Miguel Valdez
Controlador de Signal Chain finalizado....
r197
return func(self.value)
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 def setup(self, id, name, value, format='str'):
Miguel Valdez
Controlador de Signal Chain finalizado....
r197
self.id = id
self.name = name
self.value = str(value)
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 self.format = format
Miguel Valdez
Controlador de Signal Chain finalizado....
r197
def makeXml(self, opElement):
parmElement = SubElement(opElement, self.ELEMENTNAME)
parmElement.set('id', str(self.id))
parmElement.set('name', self.name)
parmElement.set('value', self.value)
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 parmElement.set('format', self.format)
Miguel Valdez
Controlador de Signal Chain finalizado....
r197
def readXml(self, parmElement):
self.id = parmElement.get('id')
self.name = parmElement.get('name')
self.value = parmElement.get('value')
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 self.format = parmElement.get('format')
Miguel Valdez
Controlador de Signal Chain finalizado....
r197
def printattr(self):
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 print "Parameter[%s]: name = %s, value = %s, format = %s" %(self.id, self.name, self.value, self.format)
Miguel Valdez
Controlador de Signal Chain finalizado....
r197
class OperationConf():
id = None
name = None
priority = None
type = None
parmConfObjList = []
ELEMENTNAME = 'Operation'
def __init__(self):
id = 0
name = None
priority = None
type = 'self'
def __getNewId(self):
return int(self.id)*10 + len(self.parmConfObjList) + 1
def getElementName(self):
return self.ELEMENTNAME
def getParameterObjList(self):
return self.parmConfObjList
def setup(self, id, name, priority, type):
self.id = id
self.name = name
self.type = type
self.priority = priority
self.parmConfObjList = []
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 def addParameter(self, name, value, format='str'):
Miguel Valdez
Controlador de Signal Chain finalizado....
r197
id = self.__getNewId()
parmConfObj = ParameterConf()
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 parmConfObj.setup(id, name, value, format)
Miguel Valdez
Controlador de Signal Chain finalizado....
r197
self.parmConfObjList.append(parmConfObj)
return parmConfObj
def makeXml(self, upElement):
opElement = SubElement(upElement, self.ELEMENTNAME)
opElement.set('id', str(self.id))
opElement.set('name', self.name)
opElement.set('type', self.type)
opElement.set('priority', str(self.priority))
for parmConfObj in self.parmConfObjList:
parmConfObj.makeXml(opElement)
def readXml(self, opElement):
self.id = opElement.get('id')
self.name = opElement.get('name')
self.type = opElement.get('type')
self.priority = opElement.get('priority')
self.parmConfObjList = []
parmElementList = opElement.getiterator(ParameterConf().getElementName())
for parmElement in parmElementList:
parmConfObj = ParameterConf()
parmConfObj.readXml(parmElement)
self.parmConfObjList.append(parmConfObj)
def printattr(self):
print "%s[%s]: name = %s, type = %s, priority = %s" %(self.ELEMENTNAME,
self.id,
self.name,
self.type,
self.priority)
for parmConfObj in self.parmConfObjList:
parmConfObj.printattr()
def createObject(self):
if self.type == 'self':
raise ValueError, "This operation type cannot be created"
if self.type == 'other':
className = eval(self.name)
opObj = className()
return opObj
class ProcUnitConf():
id = None
name = None
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 datatype = None
Miguel Valdez
Controlador de Signal Chain finalizado....
r197 inputId = None
opConfObjList = []
procUnitObj = None
opObjList = []
ELEMENTNAME = 'ProcUnit'
def __init__(self):
self.id = None
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 self.datatype = None
Miguel Valdez
Controlador de Signal Chain finalizado....
r197 self.name = None
self.inputId = None
self.opConfObjList = []
self.procUnitObj = None
self.opObjDict = {}
def __getPriority(self):
return len(self.opConfObjList)+1
def __getNewId(self):
return int(self.id)*10 + len(self.opConfObjList) + 1
def getElementName(self):
return self.ELEMENTNAME
def getId(self):
return str(self.id)
def getInputId(self):
return str(self.inputId)
def getOperationObjList(self):
return self.opConfObjList
def getProcUnitObj(self):
return self.procUnitObj
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 def setup(self, id, name, datatype, inputId):
Miguel Valdez
Controlador de Signal Chain finalizado....
r197
self.id = id
self.name = name
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 self.datatype = datatype
Miguel Valdez
Controlador de Signal Chain finalizado....
r197 self.inputId = inputId
self.opConfObjList = []
self.addOperation(name='init', optype='self')
def addOperation(self, name, optype='self'):
id = self.__getNewId()
priority = self.__getPriority()
opConfObj = OperationConf()
opConfObj.setup(id, name=name, priority=priority, type=optype)
self.opConfObjList.append(opConfObj)
return opConfObj
def makeXml(self, procUnitElement):
upElement = SubElement(procUnitElement, self.ELEMENTNAME)
upElement.set('id', str(self.id))
upElement.set('name', self.name)
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 upElement.set('datatype', self.datatype)
Miguel Valdez
Controlador de Signal Chain finalizado....
r197 upElement.set('inputId', str(self.inputId))
for opConfObj in self.opConfObjList:
opConfObj.makeXml(upElement)
def readXml(self, upElement):
self.id = upElement.get('id')
self.name = upElement.get('name')
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 self.datatype = upElement.get('datatype')
Miguel Valdez
Controlador de Signal Chain finalizado....
r197 self.inputId = upElement.get('inputId')
self.opConfObjList = []
opElementList = upElement.getiterator(OperationConf().getElementName())
for opElement in opElementList:
opConfObj = OperationConf()
opConfObj.readXml(opElement)
self.opConfObjList.append(opConfObj)
def printattr(self):
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 print "%s[%s]: name = %s, datatype = %s, inputId = %s" %(self.ELEMENTNAME,
Miguel Valdez
Controlador de Signal Chain finalizado....
r197 self.id,
self.name,
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 self.datatype,
Miguel Valdez
Controlador de Signal Chain finalizado....
r197 self.inputId)
for opConfObj in self.opConfObjList:
opConfObj.printattr()
def createObjects(self):
className = eval(self.name)
procUnitObj = className()
for opConfObj in self.opConfObjList:
if opConfObj.type == 'self':
continue
opObj = opConfObj.createObject()
self.opObjDict[opConfObj.id] = opObj
procUnitObj.addOperation(opObj, opConfObj.id)
self.procUnitObj = procUnitObj
return procUnitObj
def run(self):
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 finalSts = False
Miguel Valdez
Controlador de Signal Chain finalizado....
r197 for opConfObj in self.opConfObjList:
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199
Miguel Valdez
Controlador de Signal Chain finalizado....
r197 kwargs = {}
for parmConfObj in opConfObj.getParameterObjList():
kwargs[parmConfObj.name] = parmConfObj.getValue()
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 #print "\tRunning the '%s' operation with %s" %(opConfObj.name, opConfObj.id)
sts = self.procUnitObj.call(opConfObj, **kwargs)
finalSts = finalSts or sts
return finalSts
Miguel Valdez
Controlador de Signal Chain finalizado....
r197 class ReadUnitConf(ProcUnitConf):
path = None
startDate = None
endDate = None
startTime = None
endTime = None
online = None
expLabel = None
delay = None
ELEMENTNAME = 'ReadUnit'
def __init__(self):
self.id = None
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 self.datatype = None
Miguel Valdez
Controlador de Signal Chain finalizado....
r197 self.name = None
self.inputId = 0
self.opConfObjList = []
self.opObjList = []
def getElementName(self):
return self.ELEMENTNAME
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 def setup(self, id, name, datatype, path, startDate, endDate, startTime, endTime, online=0, expLabel='', delay=60):
Miguel Valdez
Controlador de Signal Chain finalizado....
r197
self.id = id
self.name = name
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 self.datatype = datatype
Miguel Valdez
Controlador de Signal Chain finalizado....
r197
self.path = path
self.startDate = startDate
self.endDate = endDate
self.startTime = startTime
self.endTime = endTime
self.online = online
self.expLabel = expLabel
self.delay = delay
self.addRunOperation()
def addRunOperation(self):
opObj = self.addOperation(name = 'run', optype = 'self')
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 opObj.addParameter(name='path' , value=self.path, format='str')
opObj.addParameter(name='startDate' , value=self.startDate, format='date')
opObj.addParameter(name='endDate' , value=self.endDate, format='date')
opObj.addParameter(name='startTime' , value=self.startTime, format='time')
opObj.addParameter(name='endTime' , value=self.endTime, format='time')
opObj.addParameter(name='expLabel' , value=self.expLabel, format='str')
opObj.addParameter(name='online' , value=self.online, format='int')
opObj.addParameter(name='delay' , value=self.delay, format='float')
Miguel Valdez
Controlador de Signal Chain finalizado....
r197
return opObj
class Controller():
id = None
name = None
description = None
# readUnitConfObjList = None
procUnitConfObjDict = None
ELEMENTNAME = 'Controller'
def __init__(self):
self.id = None
self.name = None
self.description = None
# self.readUnitConfObjList = []
self.procUnitConfObjDict = {}
def __getNewId(self):
id = int(self.id)*10 + len(self.procUnitConfObjDict) + 1
return str(id)
def getElementName(self):
return self.ELEMENTNAME
def setup(self, id, name, description):
self.id = id
self.name = name
self.description = description
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 def addReadUnit(self, datatype, path, startDate='', endDate='', startTime='', endTime='', online=0, expLabel='', delay=60):
Miguel Valdez
Controlador de Signal Chain finalizado....
r197
id = self.__getNewId()
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 name = '%sReader' %(datatype)
Miguel Valdez
Controlador de Signal Chain finalizado....
r197
readUnitConfObj = ReadUnitConf()
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 readUnitConfObj.setup(id, name, datatype, path, startDate, endDate, startTime, endTime, online, expLabel, delay)
Miguel Valdez
Controlador de Signal Chain finalizado....
r197
self.procUnitConfObjDict[readUnitConfObj.getId()] = readUnitConfObj
return readUnitConfObj
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 def addProcUnit(self, datatype, inputId):
Miguel Valdez
Controlador de Signal Chain finalizado....
r197
id = self.__getNewId()
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 name = '%sProc' %(datatype)
Miguel Valdez
Controlador de Signal Chain finalizado....
r197
procUnitConfObj = ProcUnitConf()
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 procUnitConfObj.setup(id, name, datatype, inputId)
Miguel Valdez
Controlador de Signal Chain finalizado....
r197
self.procUnitConfObjDict[procUnitConfObj.getId()] = procUnitConfObj
return procUnitConfObj
def makeXml(self):
projectElement = Element('Controller')
projectElement.set('id', str(self.id))
projectElement.set('name', self.name)
projectElement.set('description', self.description)
# for readUnitConfObj in self.readUnitConfObjList:
# readUnitConfObj.makeXml(projectElement)
for procUnitConfObj in self.procUnitConfObjDict.values():
procUnitConfObj.makeXml(projectElement)
self.projectElement = projectElement
def writeXml(self, filename):
self.makeXml()
print prettify(self.projectElement)
ElementTree(self.projectElement).write(filename, method='xml')
def readXml(self, filename):
#tree = ET.parse(filename)
self.projectElement = None
# self.readUnitConfObjList = []
self.procUnitConfObjDict = {}
self.projectElement = ElementTree().parse(filename)
self.project = self.projectElement.tag
self.id = self.projectElement.get('id')
self.name = self.projectElement.get('name')
self.description = self.projectElement.get('description')
readUnitElementList = self.projectElement.getiterator(ReadUnitConf().getElementName())
for readUnitElement in readUnitElementList:
readUnitConfObj = ReadUnitConf()
readUnitConfObj.readXml(readUnitElement)
self.procUnitConfObjDict[readUnitConfObj.getId()] = readUnitConfObj
procUnitElementList = self.projectElement.getiterator(ProcUnitConf().getElementName())
for procUnitElement in procUnitElementList:
procUnitConfObj = ProcUnitConf()
procUnitConfObj.readXml(procUnitElement)
self.procUnitConfObjDict[procUnitConfObj.getId()] = procUnitConfObj
def printattr(self):
print "Controller[%s]: name = %s, description = %s" %(self.id,
self.name,
self.description)
# for readUnitConfObj in self.readUnitConfObjList:
# readUnitConfObj.printattr()
for procUnitConfObj in self.procUnitConfObjDict.values():
procUnitConfObj.printattr()
def createObjects(self):
# for readUnitConfObj in self.readUnitConfObjList:
# readUnitConfObj.createObjects()
for procUnitConfObj in self.procUnitConfObjDict.values():
procUnitConfObj.createObjects()
def __connect(self, objIN, obj):
obj.setInput(objIN.getOutput())
def connectObjects(self):
for puConfObj in self.procUnitConfObjDict.values():
inputId = puConfObj.getInputId()
if int(inputId) == 0:
continue
puConfINObj = self.procUnitConfObjDict[inputId]
puObj = puConfObj.getProcUnitObj()
puINObj = puConfINObj.getProcUnitObj()
self.__connect(puINObj, puObj)
def run(self):
# for readUnitConfObj in self.readUnitConfObjList:
# readUnitConfObj.run()
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199
Miguel Valdez
Controlador de Signal Chain finalizado....
r197 while(True):
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199
finalSts = False
Miguel Valdez
Controlador de Signal Chain finalizado....
r197 for procUnitConfObj in self.procUnitConfObjDict.values():
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 #print "Running the '%s' process with %s" %(procUnitConfObj.name, procUnitConfObj.id)
sts = procUnitConfObj.run()
finalSts = finalSts or sts
#If every process unit finished so end process
if not(finalSts):
Miguel Valdez
-Se modificó el atributo nChannels de la clase JROData y derivadas por la propiedad nChannels (llamada a la funcion self.getNChannels)...
r200 print "Every process units have finished"
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 break
Miguel Valdez
Controlador de Signal Chain finalizado....
r197
if __name__ == '__main__':
desc = "Segundo Test"
filename = "schain.xml"
controllerObj = Controller()
controllerObj.setup(id = '191', name='test01', description=desc)
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 readUnitConfObj = controllerObj.addReadUnit(datatype='Spectra',
Daniel Valdez
Adicion de la clase RTIPlot
r207 path='/Users/dsuarez/Remote/IMAGING',
startDate='2011/03/20',
Miguel Valdez
Controlador de Signal Chain finalizado....
r197 endDate='2012/12/31',
Daniel Valdez
Adicion de la clase RTIPlot
r207 startTime='06:10:00',
Miguel Valdez
Controlador de Signal Chain finalizado....
r197 endTime='23:59:59',
online=0)
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 opObj00 = readUnitConfObj.addOperation(name='printTotalBlocks')
Miguel Valdez
Controlador de Signal Chain finalizado....
r197
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 procUnitConfObj1 = controllerObj.addProcUnit(datatype='Spectra', inputId=readUnitConfObj.getId())
Miguel Valdez
Controlador de Signal Chain finalizado....
r197
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 opObj10 = procUnitConfObj1.addOperation(name='selectChannels')
Miguel Valdez
-Se agrego el perfil de potencia al grafico de espectros
r204 opObj10.addParameter(name='channelList', value='0,1,2,4,6,7', format='intlist')
Miguel Valdez
Controlador de Signal Chain finalizado....
r197
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 opObj11 = procUnitConfObj1.addOperation(name='SpectraPlot', optype='other')
opObj11.addParameter(name='idfigure', value='1', format='int')
opObj11.addParameter(name='wintitle', value='SpectraPlot', format='str')
Miguel Valdez
-Se agrego el perfil de potencia al grafico de espectros
r204 # opObj11.addParameter(name='zmin', value='70', format='int')
# opObj11.addParameter(name='zmax', value='90', format='int')
Daniel Valdez
Adicion de la clase RTIPlot
r207 opObj11.addParameter(name='showprofile', value='0', format='int')
Daniel Valdez
Adicion del metodo saveFigure() para guardar archivos de imagen de la clase Figure(). Se modifica los xaxis se muestran en formato datetime, falta hacer ajustes en los ticks de acuerdo al intervalo [xmin, xmax]
r209 opObj11.addParameter(name='save', value='1', format='int')
opObj11.addParameter(name='filename', value='/Users/dsuarez/Pictures/SpectraPlot.png', format='str')
Miguel Valdez
-Se agrego el perfil de potencia al grafico de espectros
r204
Daniel Valdez
Adicion de la clase RTIPlot
r207 opObj11 = procUnitConfObj1.addOperation(name='RTIPlot', optype='other')
opObj11.addParameter(name='idfigure', value='10', format='int')
opObj11.addParameter(name='wintitle', value='RTI', format='str')
# opObj11.addParameter(name='zmin', value='70', format='int')
# opObj11.addParameter(name='zmax', value='90', format='int')
opObj11.addParameter(name='showprofile', value='0', format='int')
# opObj10 = procUnitConfObj1.addOperation(name='selectChannels')
# opObj10.addParameter(name='channelList', value='0,2,4,6', format='intlist')
#
# opObj12 = procUnitConfObj1.addOperation(name='IncohInt', optype='other')
# opObj12.addParameter(name='n', value='2', format='int')
#
# opObj11 = procUnitConfObj1.addOperation(name='SpectraPlot', optype='other')
# opObj11.addParameter(name='idfigure', value='2', format='int')
# opObj11.addParameter(name='wintitle', value='SpectraPlot10', format='str')
# opObj11.addParameter(name='zmin', value='70', format='int')
# opObj11.addParameter(name='zmax', value='90', format='int')
#
# opObj10 = procUnitConfObj1.addOperation(name='selectChannels')
# opObj10.addParameter(name='channelList', value='2,6', format='intlist')
#
# opObj12 = procUnitConfObj1.addOperation(name='IncohInt', optype='other')
# opObj12.addParameter(name='n', value='2', format='int')
#
# opObj11 = procUnitConfObj1.addOperation(name='SpectraPlot', optype='other')
# opObj11.addParameter(name='idfigure', value='3', format='int')
# opObj11.addParameter(name='wintitle', value='SpectraPlot10', format='str')
# opObj11.addParameter(name='zmin', value='70', format='int')
# opObj11.addParameter(name='zmax', value='90', format='int')
Miguel Valdez
-Se agrego el perfil de potencia al grafico de espectros
r204
Miguel Valdez
Controlador de Signal Chain finalizado....
r197 # opObj12 = procUnitConfObj1.addOperation(name='decoder')
Miguel Valdez
Primera version del controlador probada y testeada incluyendo graficos
r199 # opObj12.addParameter(name='ncode', value='2', format='int')
# opObj12.addParameter(name='nbauds', value='8', format='int')
# opObj12.addParameter(name='code0', value='001110011', format='int')
# opObj12.addParameter(name='code1', value='001110011', format='int')
Miguel Valdez
-Se agrego el perfil de potencia al grafico de espectros
r204
Daniel Valdez
Adicion de la clase RTIPlot
r207 # procUnitConfObj2 = controllerObj.addProcUnit(datatype='Spectra', inputId=procUnitConfObj1.getId())
#
# opObj21 = procUnitConfObj2.addOperation(name='IncohInt', optype='other')
# opObj21.addParameter(name='n', value='2', format='int')
#
# opObj11 = procUnitConfObj2.addOperation(name='SpectraPlot', optype='other')
# opObj11.addParameter(name='idfigure', value='4', format='int')
# opObj11.addParameter(name='wintitle', value='SpectraPlot OBJ 2', format='str')
# opObj11.addParameter(name='zmin', value='70', format='int')
# opObj11.addParameter(name='zmax', value='90', format='int')
Miguel Valdez
-Se agrego el perfil de potencia al grafico de espectros
r204
Miguel Valdez
Controlador de Signal Chain finalizado....
r197 print "Escribiendo el archivo XML"
controllerObj.writeXml(filename)
print "Leyendo el archivo XML"
controllerObj.readXml(filename)
#controllerObj.printattr()
controllerObj.createObjects()
controllerObj.connectObjects()
controllerObj.run()