##// END OF EJS Templates
Los metodos getOperationList y getParameterList han sido añadidos
Miguel Valdez -
r182:778d8f81dc2f
parent child
Show More
@@ -1,341 +1,349
1 1 '''
2 2 Created on September , 2012
3 3 @author:
4 4 '''
5 5 from xml.etree.ElementTree import Element, SubElement, ElementTree
6 6 from xml.etree import ElementTree as ET
7 7 from xml.dom import minidom
8 8
9 9 import sys
10 10
11 11 def prettify(elem):
12 12 """Return a pretty-printed XML string for the Element.
13 13 """
14 14 rough_string = ET.tostring(elem, 'utf-8')
15 15 reparsed = minidom.parseString(rough_string)
16 16 return reparsed.toprettyxml(indent=" ")
17 17
18 18 #def save(a, b):
19 19 #
20 20 # nameP = "Alexnder"
21 21 # descripcion = self.projectWindow.Text()
22 22 # id = 1
23 23 # x = self.data.projectWindow.cmbbox.value()
24 24 #
25 25 # projectObj = Controller(id, name, description)
26 26 #
27 27 # projectObj.setup(id, name, description)
28 28
29 29 class Controller():
30 30
31 31 id = None
32 32 name = None
33 33 description = None
34 34 readBranchObjList = None
35 35 procBranchObjList = None
36 36
37 37 def __init__(self):
38 38
39 39 # self.id = id
40 40 # self.name = name
41 41 # self.description = description
42 42
43 43 self.readBranchObjList = []
44 44 self.procBranchObjList = []
45 45
46 46 def setParms(self, id, name, description):
47 47
48 48 self.id = id
49 49 self.name = name
50 50 self.description = description
51 51
52 52 def addReadBranch(self, dpath, dataformat, readMode, startDate='', endDate='', startTime='', endTime=''):
53 53
54 54 id = len(self.readBranchObjList) + 1
55 55
56 56 readBranchObj = ReadBranch(id, dpath, dataformat, readMode, startDate, endDate, startTime, endTime)
57 57
58 58 self.readBranchObjList.append(readBranchObj)
59 59
60 60 return readBranchObj
61 61
62 62 def addProcBranch(self, name):
63 63
64 64 id = len(self.procBranchObjList) + 1
65 65
66 66 procBranchObj = ProcBranch(id, name)
67 67
68 68 self.procBranchObjList.append(procBranchObj)
69 69
70 70 return procBranchObj
71 71
72 72 def makeXml(self):
73 73
74 74 projectElement = Element('Controller')
75 75 projectElement.set('id', str(self.id))
76 76 projectElement.set('name', self.name)
77 77 #projectElement.set('description', self.description)
78 78
79 79 se = SubElement(projectElement, 'description',description=self.description)#ESTO ES LO ULTIMO QUE SE TRABAJO
80 80 #se.text = self.description #ULTIMA MODIFICACION PARA SACAR UN SUB ELEMENT
81 81
82 82 for readBranchObj in self.readBranchObjList:
83 83 readBranchObj.makeXml(projectElement)
84 84
85 85 for procBranchObj in self.procBranchObjList:
86 86 procBranchObj.makeXml(projectElement)
87 87
88 88 self.projectElement = projectElement
89 89
90 90 def writeXml(self, filename):
91 91
92 92 self.makeXml()
93 93 ElementTree(self.projectElement).write(filename, method='xml')
94 94 print prettify(self.projectElement)
95 95
96 96 def readXml(self, filename):
97 97
98 98 #tree = ET.parse(filename)
99 99 self.projectElement = None
100 100 tree = ElementTree(self.projectElement).parse(filename)
101 101
102 102 self.project = self.projectElement.tag
103 103
104 104 self.id = self.projectElement.get('id')
105 105 self.name = self.projectElement.get('name')
106 106
107 107 readElement = self.projectElement.getiterator('readBranch')
108 108
109 109 root = tree.getroot()
110 110 self.project = root.tag
111 111 self.id = root.attrib.get('id')
112 112 self.name = root.attrib.get('name')
113 113
114 114 for description in root.findall('description'):
115 115 description = description.get('description')
116 116
117 117 self.description= description
118 118
119 119 for readBranch in root.findall('readBranch'):
120 120 id = readBranch.get('id')
121 121 self.idrb=id
122 122
123 123 for procBranch in root.findall('procBranch'):
124 124 id = readBranch.get('id')
125 125 name = readBranch.get('name')
126 126 self.idpb=id
127 127 self.nameBranch=name
128 128
129 129 root=tree.getroot()
130 130 print root.tag , root.attrib
131 131 for child in root:
132 132 print child.tag ,child.attrib
133 133 for child in child:
134 134 print child.tag ,child.attrib
135 135 for child in child:
136 136 print child.tag ,child.attrib
137 137 for child in child:
138 138 print child.tag ,child.attrib
139 139 #
140 140 class ReadBranch():
141 141
142 142 id = None
143 143 dpath = None
144 144 dataformat = None
145 145 readMode = None
146 146 startDate = None
147 147 endDate = None
148 148 startTime = None
149 149 endTime = None
150 150
151 151 def __init__(self, id, dpath, dataformat, readMode, startDate, endDate, startTime, endTime):
152 152
153 153 self.id = id
154 154 self.dpath = dpath
155 155 self.dataformat = dataformat
156 156 self.readMode = readMode
157 157 self.startDate = startDate
158 158 self.endDate = endDate
159 159 self.startTime = startTime
160 160 self.endTime = endTime
161 161
162 162 def makeXml(self, projectElement):
163 163
164 164 readBranchElement = SubElement(projectElement, 'readBranch')
165 165 readBranchElement.set('id', str(self.id))
166 166
167 167 se = SubElement(readBranchElement, 'parameter', name='dpath' , value=self.dpath)
168 168 se = SubElement(readBranchElement, 'parameter', name='dataformat', value=self.dataformat)
169 169 se = SubElement(readBranchElement, 'parameter', name='startDate' , value=self.startDate)
170 170 se = SubElement(readBranchElement, 'parameter', name='endDate' , value=self.endDate)
171 171 se = SubElement(readBranchElement, 'parameter', name='startTime' , value=self.startTime)
172 172 se = SubElement(readBranchElement, 'parameter', name='endTime' , value=self.endTime)
173 173 se = SubElement(readBranchElement, 'parameter', name='readMode' , value=str(self.readMode))
174 174
175 175
176 176 class ProcBranch():
177 177
178 178 id = None
179 179 name = None
180 180
181 181 upObjList = None
182 182
183 183 def __init__(self, id, name):
184 184
185 185 self.id = id
186 186 self.name = name
187 187
188 188 self.upObjList = []
189 189
190 190 def addUP(self, name, type):
191 191
192 192 id = len(self.upObjList) + 1
193 193
194 194 upObj = UPConf(id, name, type)
195 195
196 196 self.upObjList.append(upObj)
197 197
198 198 return upObj
199 199
200 200 def makeXml(self, projectElement):
201 201
202 202 procBranchElement = SubElement(projectElement, 'procBranch')
203 203 procBranchElement.set('id', str(self.id))
204 204 procBranchElement.set('name', self.name)
205 205
206 206 for upObj in self.upObjList:
207 207 upObj.makeXml(procBranchElement)
208 208
209 209 class UPConf():
210 210
211 211 id = None
212 212 name = None
213 213 type = None
214 214
215 215 opObjList = []
216 216
217 217 def __init__(self, id, name, type):
218 218
219 219 self.id = id
220 220 self.name = name
221 221 self.type = type
222 222
223 223 self.opObjList = []
224 224
225 225 def addOperation(self, name, priority, type='self'):
226 226
227 227 id = len(self.opObjList) + 1
228 228
229 229 opObj = OperationConf(id, name, priority, type)
230 230
231 231 self.opObjList.append(opObj)
232 232
233 233 return opObj
234 234
235 235 def makeXml(self, procBranchElement):
236 236
237 237 upElement = SubElement(procBranchElement, 'UP')
238 238 upElement.set('id', str(self.id))
239 239 upElement.set('name', self.name)
240 240 upElement.set('type', self.type)
241 241
242 242 for opObj in self.opObjList:
243 243 opObj.makeXml(upElement)
244 244
245 def getOperationList(self):
246
247 return self.opObjList
248
245 249 class OperationConf():
246 250
247 251 id = 0
248 252 name = None
249 253 priority = None
250 254 type = 'self'
251 255
252 256 parmObjList = []
253 257
254 258 def __init__(self, id, name, priority, type):
255 259
256 260 self.id = id
257 261 self.name = name
258 262 self.priority = priority
259 263 self.type = type
260 264
261 265 self.parmObjList = []
262 266
263 267 def addParameter(self, name, value):
264 268
265 269 id = len(self.parmObjList) + 1
266 270
267 271 parmObj = ParameterConf(id, name, value)
268 272
269 273 self.parmObjList.append(parmObj)
270 274
271 275 return parmObj
272 276
273 277 def makeXml(self, upElement):
274 278
275 279 opElement = SubElement(upElement, 'Operation')
276 280 opElement.set('id', str(self.id))
277 281 opElement.set('name', self.name)
278 282 opElement.set('priority', str(self.priority))
279 283
280 284 for parmObj in self.parmObjList:
281 285 parmObj.makeXml(opElement)
286
287 def getParameterList(self):
288
289 return self.parmObjList
282 290
283 291 class ParameterConf():
284 292
285 293 id = None
286 294 name = None
287 295 value = None
288 296
289 297 def __init__(self, id, name, value):
290 298
291 299 self.id = id
292 300 self.name = name
293 301 self.value = value
294 302
295 303 def makeXml(self, opElement):
296 304
297 305 parmElement = SubElement(opElement, 'Parameter')
298 306 parmElement.set('name', self.name)
299 307 parmElement.set('value', self.value)
300 308
301 309 def readXml(self, opElement):
302 310
303 311
304 312 pass
305 313 # se = SubElement(parmElement, 'value')#ESTO ES LO ULTIMO QUE SE TRABAJO
306 314 # se.text = self.value
307 315
308 316 if __name__ == '__main__':
309 317
310 318 desc = "Este es un test"
311 319 filename = "test.xml"
312 320
313 321 projectObj = Controller()
314 322
315 323 projectObj.setParms(id = '11', name='test01', description=desc)
316 324
317 325 readBranchObj = projectObj.addReadBranch(dpath='mydata', dataformat='rawdata', readMode=0, startDate='1', endDate='3', startTime='4', endTime='5')
318 326
319 327 procBranchObj = projectObj.addProcBranch(name='Branch1')
320 328
321 329 procBranchObj1 = projectObj.addProcBranch(name='Branch2')
322 330 upObj1 = procBranchObj.addUP(name='UP1', type='Voltage')
323 331 upObj2 = procBranchObj.addUP(name='UP2', type='Voltage')
324 332
325 333 opObj11 = upObj1.addOperation(name='removeDC', priority=1)
326 334 opObj11.addParameter(name='type', value='1')
327 335
328 336
329 337 opObj12 = upObj1.addOperation(name='decodification', priority=2)
330 338 opObj12.addParameter(name='ncode', value='2')
331 339 opObj12.addParameter(name='nbauds', value='8')
332 340 opObj12.addParameter(name='code1', value='001110011')
333 341 opObj12.addParameter(name='code2', value='001110011')
334 342
335 343 print "Escribiendo el XML"
336 344
337 345 projectObj.writeXml(filename)
338 346
339 347 print "Leyendo el XML"
340 348 projectObj.readXml(filename)
341 349 No newline at end of file
General Comments 0
You need to be logged in to leave comments. Login now