##// END OF EJS Templates
Adicion de la carpeta test donde se encuentra la aplicacion de prueba para los experimentos EWDrifts y Faraday...
Adicion de la carpeta test donde se encuentra la aplicacion de prueba para los experimentos EWDrifts y Faraday Se modifica la clase RTIFromNoise en jroplot y se agregan nuevos metodos en figure.py y mpldriver.py, este tipo de grafico aun no se ha finalizado.

File last commit:

r195:7a77d1c4b33f
r240:87d92e5aecc6
Show More
controller.py
478 lines | 14.0 KiB | text/x-python | PythonLexer
'''
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
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 Controller():
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=''):
id = self.getNewId()
readBranchObj = ReadBranch()
readBranchObj.setup(id, dpath, dataformat, readMode, startDate, endDate, startTime, endTime)
self.readBranchObjList.append(readBranchObj)
return readBranchObj
def addProcBranch(self, name):
id = self.getNewId()
procBranchObj = ProcBranch()
procBranchObj.setup(id, name)
self.procBranchObjList.append(procBranchObj)
return procBranchObj
def getNewId(self):
id = int(self.id)*10 + len(self.readBranchObjList) + len(self.procBranchObjList) + 1
return id
def makeXml(self):
projectElement = Element('Controller')
projectElement.set('id', str(self.id))
projectElement.set('name', self.name)
projectElement.set('description', self.description)
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)
def readXml(self, filename):
#tree = ET.parse(filename)
self.projectElement = None
self.readBranchObjList = None
self.procBranchObjList = None
self.projectElement = ElementTree().parse(filename)
self.project = self.projectElement.tag
self.id = self.projectElement.get('id')
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)
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()
class ReadBranch():
id = None
name = None
# dpath = None
# dataformat = None
# readMode = None
# startDate = None
# endDate = None
# startTime = None
# endTime = None
parmObjList = []
def __init__(self):
self.parmObjList = []
def setup(self, id, dpath, dataformat, readMode, startDate, endDate, startTime, endTime):
self.id = id
self.dpath = dpath
self.dataformat = dataformat
self.readMode = readMode
self.startDate = startDate
self.endDate = endDate
self.startTime = startTime
self.endTime = endTime
def addParameter(self, name, value):
id = int(self.id)*10 + len(self.parmObjList) + 1
parmObj = ParameterConf()
parmObj.setup(id, name, value)
self.parmObjList.append(parmObj)
return parmObj
def makeXml(self, projectElement):
readBranchElement = SubElement(projectElement, 'readBranch')
readBranchElement.set('id', str(self.id))
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:
parmObj = ParameterConf()
parmObj.readXml(parmElement)
self.parmObjList.append(parmObj)
def printattr(self):
print "ReadBranch[%s]: name = %s" %(self.id,
self.name)
for parmObj in self.parmObjList:
parmObj.printattr()
class ProcBranch():
id = None
name = None
upObjList = None
def __init__(self):
pass
def setup(self, id, name):
self.id = id
self.name = name
self.upObjList = []
def addUP(self, name, type, inputId):
id = int(self.id)*10 + len(self.upObjList) + 1
upObj = UPConf()
upObj.setup(id, name, type, inputId)
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)
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()
upObj.readXml(upElement)
self.upObjList.append(upObj)
def printattr(self):
print "ProcBranch[%s]: name = %s" %(self.id,
self.name)
for upObj in self.upObjList:
upObj.printattr()
class UPConf():
id = None
name = None
type = None
inputId = None
opObjList = []
def __init__(self):
pass
def setup(self, id, name, type, inputId):
self.id = id
self.name = name
self.type = type
self.inputId = inputId
self.opObjList = []
def addOperation(self, name, priority, type='self'):
id = int(self.id)*10 + len(self.opObjList) + 1
opObj = OperationConf()
opObj.setup(id, name, priority, type)
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)
upElement.set('inputId', str(self.inputId))
for opObj in self.opObjList:
opObj.makeXml(upElement)
def readXml(self, upElement):
self.id = upElement.get('id')
self.name = upElement.get('name')
self.type = upElement.get('type')
self.inputId = upElement.get('inputId')
self.opObjList = []
opElementList = upElement.getiterator('Operation')
for opElement in opElementList:
opObj = OperationConf()
opObj.readXml(opElement)
self.opObjList.append(opObj)
def getOperationObjList(self):
return self.opObjList
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()
class OperationConf():
id = 0
name = None
priority = None
type = 'self'
parmObjList = []
def __init__(self):
pass
def setup(self, id, name, priority, type):
self.id = id
self.name = name
self.priority = priority
self.type = type
self.parmObjList = []
def addParameter(self, name, value):
id = int(self.id)*10 + len(self.parmObjList) + 1
parmObj = ParameterConf()
parmObj.setup(id, name, value)
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)
def readXml(self, opElement):
self.id = opElement.get('id')
self.name = opElement.get('name')
self.type = opElement.get('type')
self.parmObjList = []
parmElementList = opElement.getiterator('Parameter')
for parmElement in parmElementList:
parmObj = ParameterConf()
parmObj.readXml(parmElement)
self.parmObjList.append(parmObj)
def getParameterObjList(self):
return self.parmObjList
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()
class ParameterConf():
id = None
name = None
value = None
def __init__(self):
pass
def setup(self, id, name, value):
self.id = id
self.name = name
self.value = value
def makeXml(self, opElement):
parmElement = SubElement(opElement, 'Parameter')
parmElement.set('id', str(self.id))
parmElement.set('name', self.name)
parmElement.set('value', self.value)
def readXml(self, parmElement):
self.id = parmElement.get('id')
self.name = parmElement.get('name')
self.value = parmElement.get('value')
def printattr(self):
print "Parameter[%s]: name = %s, value = %s" %(self.id, self.name, self.value)
if __name__ == '__main__':
desc = "Este es un test"
filename = "test.xml"
projectObj = Controller()
projectObj.setParms(id = '191', name='test01', description=desc)
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')
upObj1 = procBranchObj.addUP(name='UP1', type='Voltage', inputId=readBranchObj.id)
upObj2 = procBranchObj.addUP(name='UP2', type='Voltage', inputId=upObj1.id)
opObj11 = upObj1.addOperation(name='removeDC', priority=1)
opObj11.addParameter(name='type', value='1')
opObj12 = upObj1.addOperation(name='decoder', priority=2)
opObj12.addParameter(name='ncode', value='2')
opObj12.addParameter(name='nbauds', value='8')
opObj12.addParameter(name='code0', value='001110011')
opObj12.addParameter(name='code1', value='001110011')
print "Escribiendo el archivo XML"
projectObj.writeXml(filename)
print "Leyendo el archivo XML"
projectObj.readXml(filename)
projectObj.printattr()