##// END OF EJS Templates
Actualizacion del controlador:...
Miguel Valdez -
r194:4b9fb9ec446c
parent child
Show More
@@ -1,422 +1,474
1 '''
1 '''
2 Created on September , 2012
2 Created on September , 2012
3 @author:
3 @author:
4 '''
4 '''
5 from xml.etree.ElementTree import Element, SubElement, ElementTree
5 from xml.etree.ElementTree import Element, SubElement, ElementTree
6 from xml.etree import ElementTree as ET
6 from xml.etree import ElementTree as ET
7 from xml.dom import minidom
7 from xml.dom import minidom
8
8
9 import sys
9 import sys
10
10
11 def prettify(elem):
11 def prettify(elem):
12 """Return a pretty-printed XML string for the Element.
12 """Return a pretty-printed XML string for the Element.
13 """
13 """
14 rough_string = ET.tostring(elem, 'utf-8')
14 rough_string = ET.tostring(elem, 'utf-8')
15 reparsed = minidom.parseString(rough_string)
15 reparsed = minidom.parseString(rough_string)
16 return reparsed.toprettyxml(indent=" ")
16 return reparsed.toprettyxml(indent=" ")
17
17
18 #def save(a, b):
19 #
20 # nameP = "Alexnder"
21 # descripcion = self.projectWindow.Text()
22 # id = 1
23 # x = self.data.projectWindow.cmbbox.value()
24 #
25 # projectObj = Controller(id, name, description)
26 #
27 # projectObj.setup(id, name, description)
28
29 class Controller():
18 class Controller():
30
19
31 id = None
20 id = None
32 name = None
21 name = None
33 description = None
22 description = None
34 readBranchObjList = None
23 readBranchObjList = None
35 procBranchObjList = None
24 procBranchObjList = None
36
25
37 def __init__(self):
26 def __init__(self):
38
27
39 # self.id = id
28 # self.id = id
40 # self.name = name
29 # self.name = name
41 # self.description = description
30 # self.description = description
42
31
43 self.readBranchObjList = []
32 self.readBranchObjList = []
44 self.procBranchObjList = []
33 self.procBranchObjList = []
45
34
46 def setParms(self, id, name, description):
35 def setParms(self, id, name, description):
47
36
48 self.id = id
37 self.id = id
49 self.name = name
38 self.name = name
50 self.description = description
39 self.description = description
51
40
52 def addReadBranch(self, dpath, dataformat, readMode, startDate='', endDate='', startTime='', endTime=''):
41 def addReadBranch(self, dpath, dataformat, readMode, startDate='', endDate='', startTime='', endTime=''):
53
42
54 id = len(self.readBranchObjList) + 1
43 id = len(self.readBranchObjList) + 1
55
44
56 readBranchObj = ReadBranch()
45 readBranchObj = ReadBranch()
57 readBranchObj.setup(id, dpath, dataformat, readMode, startDate, endDate, startTime, endTime)
46 readBranchObj.setup(id, dpath, dataformat, readMode, startDate, endDate, startTime, endTime)
58
47
59 self.readBranchObjList.append(readBranchObj)
48 self.readBranchObjList.append(readBranchObj)
60
49
61 return readBranchObj
50 return readBranchObj
62
51
63 def addProcBranch(self, name):
52 def addProcBranch(self, name):
64
53
65 id = len(self.procBranchObjList) + 1
54 id = len(self.procBranchObjList) + 1
66
55
67 procBranchObj = ProcBranch()
56 procBranchObj = ProcBranch()
68 procBranchObj.setup(id, name)
57 procBranchObj.setup(id, name)
69
58
70 self.procBranchObjList.append(procBranchObj)
59 self.procBranchObjList.append(procBranchObj)
71
60
72 return procBranchObj
61 return procBranchObj
73
62
74 def makeXml(self):
63 def makeXml(self):
75
64
76 projectElement = Element('Controller')
65 projectElement = Element('Controller')
77 projectElement.set('id', str(self.id))
66 projectElement.set('id', str(self.id))
78 projectElement.set('name', self.name)
67 projectElement.set('name', self.name)
79 #projectElement.set('description', self.description)
68 projectElement.set('description', self.description)
80
81 se = SubElement(projectElement, 'description',description=self.description)#ESTO ES LO ULTIMO QUE SE TRABAJO
82 #se.text = self.description #ULTIMA MODIFICACION PARA SACAR UN SUB ELEMENT
83
69
84 for readBranchObj in self.readBranchObjList:
70 for readBranchObj in self.readBranchObjList:
85 readBranchObj.makeXml(projectElement)
71 readBranchObj.makeXml(projectElement)
86
72
87 for procBranchObj in self.procBranchObjList:
73 for procBranchObj in self.procBranchObjList:
88 procBranchObj.makeXml(projectElement)
74 procBranchObj.makeXml(projectElement)
89
75
90 self.projectElement = projectElement
76 self.projectElement = projectElement
91
77
92 def writeXml(self, filename):
78 def writeXml(self, filename):
93
79
94 self.makeXml()
80 self.makeXml()
95 ElementTree(self.projectElement).write(filename, method='xml')
81 ElementTree(self.projectElement).write(filename, method='xml')
96 print prettify(self.projectElement)
82 print prettify(self.projectElement)
97
83
98 def readXml(self, filename):
84 def readXml(self, filename):
99
85
100 #tree = ET.parse(filename)
86 #tree = ET.parse(filename)
101 self.projectElement = None
87 self.projectElement = None
102 self.readBranchObjList = None
88 self.readBranchObjList = None
103 self.procBranchObjList = None
89 self.procBranchObjList = None
104
90
105 self.projectElement = ElementTree().parse(filename)
91 self.projectElement = ElementTree().parse(filename)
106
92
107 self.project = self.projectElement.tag
93 self.project = self.projectElement.tag
108
94
109 self.id = self.projectElement.get('id')
95 self.id = self.projectElement.get('id')
110 self.name = self.projectElement.get('name')
96 self.name = self.projectElement.get('name')
111
97
112 self.readBranchObjList = []
98 self.readBranchObjList = []
113
99
114 readBranchElementList = self.projectElement.getiterator('readBranch')
100 readBranchElementList = self.projectElement.getiterator('readBranch')
115
101
116 for readBranchElement in readBranchElementList:
102 for readBranchElement in readBranchElementList:
117 readBrachObj = ReadBranch()
103 readBrachObj = ReadBranch()
118 readBrachObj.readXml(readBranchElement)
104 readBrachObj.readXml(readBranchElement)
119 self.readBranchObjList.append(readBranchObj)
105 self.readBranchObjList.append(readBranchObj)
120
106
121 self.procBranchObjList = []
107 self.procBranchObjList = []
122
108
123 procBranchElementList = self.projectElement.getiterator('procBranch')
109 procBranchElementList = self.projectElement.getiterator('procBranch')
124
110
125 for procBranchElement in procBranchElementList:
111 for procBranchElement in procBranchElementList:
126 procBranchObj = ProcBranch()
112 procBranchObj = ProcBranch()
127 procBranchObj.readXml(procBranchElement)
113 procBranchObj.readXml(procBranchElement)
128 self.procBranchObjList.append(procBranchObj)
114 self.procBranchObjList.append(procBranchObj)
129 #
115
116 def printattr(self):
117
118 print "Controller[%s]: name = %s, description = %s" %(self.id,
119 self.name,
120 self.description)
121
122 for readBranchObj in self.readBranchObjList:
123 readBranchObj.printattr()
124
125 for procBranchObj in self.procBranchObjList:
126 procBranchObj.printattr()
127
130 class ReadBranch():
128 class ReadBranch():
131
129
132 id = None
130 id = None
131 name = None
133 # dpath = None
132 # dpath = None
134 # dataformat = None
133 # dataformat = None
135 # readMode = None
134 # readMode = None
136 # startDate = None
135 # startDate = None
137 # endDate = None
136 # endDate = None
138 # startTime = None
137 # startTime = None
139 # endTime = None
138 # endTime = None
140
139
141 parmObjList = []
140 parmObjList = []
142
141
143 def __init__(self):
142 def __init__(self):
144
143
145 self.parmObjList = []
144 self.parmObjList = []
146
145
147 def setup(self, id, dpath, dataformat, readMode, startDate, endDate, startTime, endTime):
146 def setup(self, id, dpath, dataformat, readMode, startDate, endDate, startTime, endTime):
148
147
149 self.id = id
148 self.id = id
150 self.dpath = dpath
149 self.dpath = dpath
151 self.dataformat = dataformat
150 self.dataformat = dataformat
152 self.readMode = readMode
151 self.readMode = readMode
153 self.startDate = startDate
152 self.startDate = startDate
154 self.endDate = endDate
153 self.endDate = endDate
155 self.startTime = startTime
154 self.startTime = startTime
156 self.endTime = endTime
155 self.endTime = endTime
157
156
158 def addParameter(self, name, value):
157 def addParameter(self, name, value):
159
158
160 id = len(self.parmObjList) + 1
159 id = len(self.parmObjList) + 1
161
160
162 parmObj = ParameterConf()
161 parmObj = ParameterConf()
163 parmObj.setup(id, name, value)
162 parmObj.setup(id, name, value)
164
163
165 self.parmObjList.append(parmObj)
164 self.parmObjList.append(parmObj)
166
165
167 return parmObj
166 return parmObj
168
167
169 def makeXml(self, projectElement):
168 def makeXml(self, projectElement):
170
169
171 readBranchElement = SubElement(projectElement, 'readBranch')
170 readBranchElement = SubElement(projectElement, 'readBranch')
172 readBranchElement.set('id', str(self.id))
171 readBranchElement.set('id', str(self.id))
173
172
174 self.addParameter(name='dpath' , value=self.dpath)
173 self.addParameter(name='dpath' , value=self.dpath)
175 self.addParameter(name='dataformat', value=self.dataformat)
174 self.addParameter(name='dataformat', value=self.dataformat)
176 self.addParameter(name='startDate' , value=self.startDate)
175 self.addParameter(name='startDate' , value=self.startDate)
177 self.addParameter(name='endDate' , value=self.endDate)
176 self.addParameter(name='endDate' , value=self.endDate)
178 self.addParameter(name='startTime' , value=self.startTime)
177 self.addParameter(name='startTime' , value=self.startTime)
179 self.addParameter(name='endTime' , value=self.endTime)
178 self.addParameter(name='endTime' , value=self.endTime)
180 self.addParameter(name='readMode' , value=str(self.readMode))
179 self.addParameter(name='readMode' , value=str(self.readMode))
181
180
182 for parmObj in self.parmObjList:
181 for parmObj in self.parmObjList:
183 parmObj.makeXml(readBranchElement)
182 parmObj.makeXml(readBranchElement)
184
183
185 def readXml(self, readBranchElement):
184 def readXml(self, readBranchElement):
186
185
187 self.id = readBranchElement.get('id')
186 self.id = readBranchElement.get('id')
188
187
189 self.parmObjList = []
188 self.parmObjList = []
190
189
191 parmElementList = readBranchElement.getiterator('Parameter')
190 parmElementList = readBranchElement.getiterator('Parameter')
192
191
193 for parmElement in parmElementList:
192 for parmElement in parmElementList:
194 parmObj = Parameter()
193 parmObj = ParameterConf()
195 parmObj.readXml(parmElement)
194 parmObj.readXml(parmElement)
196 self.parmObjList.append(parmObj)
195 self.parmObjList.append(parmObj)
197
196
197 def printattr(self):
198
199 print "ReadBranch[%s]: name = %s" %(self.id,
200 self.name)
201
202 for parmObj in self.parmObjList:
203 parmObj.printattr()
198
204
199 class ProcBranch():
205 class ProcBranch():
200
206
201 id = None
207 id = None
202 name = None
208 name = None
203
209
204 upObjList = None
210 upObjList = None
205
211
206 def __init__(self):
212 def __init__(self):
207 pass
213 pass
208
214
209 def setup(self, id, name):
215 def setup(self, id, name):
210
216
211 self.id = id
217 self.id = id
212 self.name = name
218 self.name = name
213
219
214 self.upObjList = []
220 self.upObjList = []
215
221
216 def addUP(self, name, type):
222 def addUP(self, name, type):
217
223
218 id = len(self.upObjList) + 1
224 id = len(self.upObjList) + 1
219
225
220 upObj = UPConf()
226 upObj = UPConf()
221 upObj.setup(id, name, type)
227 upObj.setup(id, name, type)
222
228
223 self.upObjList.append(upObj)
229 self.upObjList.append(upObj)
224
230
225 return upObj
231 return upObj
226
232
227 def makeXml(self, projectElement):
233 def makeXml(self, projectElement):
228
234
229 procBranchElement = SubElement(projectElement, 'procBranch')
235 procBranchElement = SubElement(projectElement, 'procBranch')
230 procBranchElement.set('id', str(self.id))
236 procBranchElement.set('id', str(self.id))
231 procBranchElement.set('name', self.name)
237 procBranchElement.set('name', self.name)
232
238
233 for upObj in self.upObjList:
239 for upObj in self.upObjList:
234 upObj.makeXml(procBranchElement)
240 upObj.makeXml(procBranchElement)
235
241
236 def readXml(self, procBranchElement):
242 def readXml(self, procBranchElement):
237
243
238 self.id = procBranchElement.get('id')
244 self.id = procBranchElement.get('id')
239 self.name = procBranchElement.get('name')
245 self.name = procBranchElement.get('name')
240
246
241 self.upObjList = []
247 self.upObjList = []
242
248
243 upElementList = procBranchElement.getiterator('UP')
249 upElementList = procBranchElement.getiterator('UP')
244
250
245 for upElement in upElementList:
251 for upElement in upElementList:
246 upObj = UPConf()
252 upObj = UPConf()
247 #upObj.readXml(upElement)
253 upObj.readXml(upElement)
248 self.upObjList.append(upObj)
254 self.upObjList.append(upObj)
249
255
256 def printattr(self):
257
258 print "ProcBranch[%s]: name = %s" %(self.id,
259 self.name)
260
261 for upObj in self.upObjList:
262 upObj.printattr()
263
250 class UPConf():
264 class UPConf():
251
265
252 id = None
266 id = None
253 name = None
267 name = None
254 type = None
268 type = None
269 inputId = None
255
270
256 opObjList = []
271 opObjList = []
257
272
258 def __init__(self):
273 def __init__(self):
259 pass
274 pass
260
275
261 def setup(self, id, name, type):
276 def setup(self, id, name, type, inputId=0):
262
277
263 self.id = id
278 self.id = id
264 self.name = name
279 self.name = name
265 self.type = type
280 self.type = type
281 self.inputId = inputId
266
282
267 self.opObjList = []
283 self.opObjList = []
268
284
269 def addOperation(self, name, priority, type='self'):
285 def addOperation(self, name, priority, type='self'):
270
286
271 id = len(self.opObjList) + 1
287 id = len(self.opObjList) + 1
272
288
273 opObj = OperationConf()
289 opObj = OperationConf()
274 opObj.setup(id, name, priority, type)
290 opObj.setup(id, name, priority, type)
275
291
276 self.opObjList.append(opObj)
292 self.opObjList.append(opObj)
277
293
278 return opObj
294 return opObj
279
295
280 def makeXml(self, procBranchElement):
296 def makeXml(self, procBranchElement):
281
297
282 upElement = SubElement(procBranchElement, 'UP')
298 upElement = SubElement(procBranchElement, 'UP')
283 upElement.set('id', str(self.id))
299 upElement.set('id', str(self.id))
284 upElement.set('name', self.name)
300 upElement.set('name', self.name)
285 upElement.set('type', self.type)
301 upElement.set('type', self.type)
302 upElement.set('inputId', str(self.inputId))
286
303
287 for opObj in self.opObjList:
304 for opObj in self.opObjList:
288 opObj.makeXml(upElement)
305 opObj.makeXml(upElement)
289
306
290 def readXml(self, upElement):
307 def readXml(self, upElement):
291
308
292 self.id = upElement.get('id')
309 self.id = upElement.get('id')
293 self.name = upElement.get('name')
310 self.name = upElement.get('name')
294 self.type = upElement.get('type')
311 self.type = upElement.get('type')
312 self.inputId = upElement.get('inputId')
313
314 self.opObjList = []
295
315
296 opElementList = upElement.getiterator('Operation')
316 opElementList = upElement.getiterator('Operation')
297
317
298 for opElement in opElementList:
318 for opElement in opElementList:
299 pass
319 opObj = OperationConf()
320 opObj.readXml(opElement)
321 self.opObjList.append(opObj)
300
322
301 def getOperationObjList(self):
323 def getOperationObjList(self):
302
324
303 return self.opObjList
325 return self.opObjList
304
326
327 def printattr(self):
328
329 print "UP[%s]: name = %s, type = %s, inputId = %s" %(self.id,
330 self.name,
331 self.type,
332 self.inputId)
333
334 for opObj in self.opObjList:
335 opObj.printattr()
336
305 class OperationConf():
337 class OperationConf():
306
338
307 id = 0
339 id = 0
308 name = None
340 name = None
309 priority = None
341 priority = None
310 type = 'self'
342 type = 'self'
311
343
312 parmObjList = []
344 parmObjList = []
313
345
314 def __init__(self):
346 def __init__(self):
315 pass
347 pass
316
348
317 def setup(self, id, name, priority, type):
349 def setup(self, id, name, priority, type):
318
350
319 self.id = id
351 self.id = id
320 self.name = name
352 self.name = name
321 self.priority = priority
353 self.priority = priority
322 self.type = type
354 self.type = type
323
355
324 self.parmObjList = []
356 self.parmObjList = []
325
357
326 def addParameter(self, name, value):
358 def addParameter(self, name, value):
327
359
328 id = len(self.parmObjList) + 1
360 id = len(self.parmObjList) + 1
329
361
330 parmObj = ParameterConf()
362 parmObj = ParameterConf()
331 parmObj.setup(id, name, value)
363 parmObj.setup(id, name, value)
332
364
333 self.parmObjList.append(parmObj)
365 self.parmObjList.append(parmObj)
334
366
335 return parmObj
367 return parmObj
336
368
337 def makeXml(self, upElement):
369 def makeXml(self, upElement):
338
370
339 opElement = SubElement(upElement, 'Operation')
371 opElement = SubElement(upElement, 'Operation')
340 opElement.set('id', str(self.id))
372 opElement.set('id', str(self.id))
341 opElement.set('name', self.name)
373 opElement.set('name', self.name)
342 opElement.set('priority', str(self.priority))
374 opElement.set('priority', str(self.priority))
343
375
344 for parmObj in self.parmObjList:
376 for parmObj in self.parmObjList:
345 parmObj.makeXml(opElement)
377 parmObj.makeXml(opElement)
346
378
347 def readXml(self, opElement):
379 def readXml(self, opElement):
348
380
349 self.id = opElement.get('id')
381 self.id = opElement.get('id')
350 self.name = opElement.get('name')
382 self.name = opElement.get('name')
351 self.type = opElement.get('type')
383 self.type = opElement.get('type')
352
384
385 self.parmObjList = []
386
353 parmElementList = opElement.getiterator('Parameter')
387 parmElementList = opElement.getiterator('Parameter')
354
388
355 for parmElement in parmElementList:
389 for parmElement in parmElementList:
356 pass
390 parmObj = ParameterConf()
391 parmObj.readXml(parmElement)
392 self.parmObjList.append(parmObj)
357
393
358 def getParameterObjList(self):
394 def getParameterObjList(self):
359
395
360 return self.parmObjList
396 return self.parmObjList
361
397
398 def printattr(self):
399
400 print "Operation[%s]: name = %s, type = %s, priority = %s" %(self.id,
401 self.name,
402 self.type,
403 self.priority)
404
405 for parmObj in self.parmObjList:
406 parmObj.printattr()
407
362 class ParameterConf():
408 class ParameterConf():
363
409
364 id = None
410 id = None
365 name = None
411 name = None
366 value = None
412 value = None
367
413
368 def __init__(self):
414 def __init__(self):
369 pass
415 pass
370
416
371 def setup(self, id, name, value):
417 def setup(self, id, name, value):
372
418
373 self.id = id
419 self.id = id
374 self.name = name
420 self.name = name
375 self.value = value
421 self.value = value
376
422
377 def makeXml(self, opElement):
423 def makeXml(self, opElement):
378
424
379 parmElement = SubElement(opElement, 'Parameter')
425 parmElement = SubElement(opElement, 'Parameter')
426 parmElement.set('id', str(self.id))
380 parmElement.set('name', self.name)
427 parmElement.set('name', self.name)
381 parmElement.set('value', self.value)
428 parmElement.set('value', self.value)
382
429
383 def readXml(self, parmElement):
430 def readXml(self, parmElement):
384
431
385 self.id = parmElement.get('id')
432 self.id = parmElement.get('id')
386 self.name = parmElement.get('name')
433 self.name = parmElement.get('name')
387 self.value = parmElement.get('value')
434 self.value = parmElement.get('value')
388
435
436 def printattr(self):
437
438 print "Parameter[%s]: name = %s, value = %s" %(self.id, self.name, self.value)
439
389 if __name__ == '__main__':
440 if __name__ == '__main__':
390
441
391 desc = "Este es un test"
442 desc = "Este es un test"
392 filename = "test.xml"
443 filename = "test.xml"
393
444
394 projectObj = Controller()
445 projectObj = Controller()
395
446
396 projectObj.setParms(id = '11', name='test01', description=desc)
447 projectObj.setParms(id = '191', name='test01', description=desc)
397
448
398 readBranchObj = projectObj.addReadBranch(dpath='mydata', dataformat='rawdata', readMode=0, startDate='1', endDate='3', startTime='4', endTime='5')
449 readBranchObj = projectObj.addReadBranch(dpath='mydata', dataformat='rawdata', readMode=0, startDate='1', endDate='3', startTime='4', endTime='5')
399
450
400 procBranchObj = projectObj.addProcBranch(name='Branch1')
451 procBranchObj = projectObj.addProcBranch(name='Branch1')
401
452
402 procBranchObj1 = projectObj.addProcBranch(name='Branch2')
453 procBranchObj1 = projectObj.addProcBranch(name='Branch2')
403 upObj1 = procBranchObj.addUP(name='UP1', type='Voltage')
454 upObj1 = procBranchObj.addUP(name='UP1', type='Voltage')
404 upObj2 = procBranchObj.addUP(name='UP2', type='Voltage')
455 upObj2 = procBranchObj.addUP(name='UP2', type='Voltage')
405
456
406 opObj11 = upObj1.addOperation(name='removeDC', priority=1)
457 opObj11 = upObj1.addOperation(name='removeDC', priority=1)
407 opObj11.addParameter(name='type', value='1')
458 opObj11.addParameter(name='type', value='1')
408
459
409
460
410 opObj12 = upObj1.addOperation(name='decodification', priority=2)
461 opObj12 = upObj1.addOperation(name='decoder', priority=2)
411 opObj12.addParameter(name='ncode', value='2')
462 opObj12.addParameter(name='ncode', value='2')
412 opObj12.addParameter(name='nbauds', value='8')
463 opObj12.addParameter(name='nbauds', value='8')
464 opObj12.addParameter(name='code0', value='001110011')
413 opObj12.addParameter(name='code1', value='001110011')
465 opObj12.addParameter(name='code1', value='001110011')
414 opObj12.addParameter(name='code2', value='001110011')
415
466
416 print "Escribiendo el XML"
467 print "Escribiendo el archivo XML"
417
468
418 projectObj.writeXml(filename)
469 projectObj.writeXml(filename)
419
470
420 print "Leyendo el XML"
471 print "Leyendo el archivo XML"
421 projectObj.readXml(filename)
472 projectObj.readXml(filename)
473 projectObj.printattr()
422 No newline at end of file
474
General Comments 0
You need to be logged in to leave comments. Login now