##// END OF EJS Templates
Problems setting and reading Header size
Miguel Valdez -
r728:e878c6835775
parent child
Show More
@@ -88,9 +88,18 class Header(object):
88 message += self.__class__.__name__.upper() + "\n"
88 message += self.__class__.__name__.upper() + "\n"
89 message += "#"*50 + "\n"
89 message += "#"*50 + "\n"
90
90
91 for key in self.__dict__.keys():
91 keyList = self.__dict__.keys()
92 keyList.sort()
93
94 for key in keyList:
92 message += "%s = %s" %(key, self.__dict__[key]) + "\n"
95 message += "%s = %s" %(key, self.__dict__[key]) + "\n"
96
97 if "size" not in keyList:
98 attr = getattr(self, "size")
93
99
100 if attr:
101 message += "%s = %s" %("size", attr) + "\n"
102
94 print message
103 print message
95
104
96 class BasicHeader(Header):
105 class BasicHeader(Header):
@@ -190,7 +199,7 class SystemHeader(Header):
190 try:
199 try:
191 header = numpy.fromfile(fp,SYSTEM_STRUCTURE,1)
200 header = numpy.fromfile(fp,SYSTEM_STRUCTURE,1)
192 except Exception, e:
201 except Exception, e:
193 print "SystemHeader: " + e
202 print "System Header: " + e
194 return 0
203 return 0
195
204
196 self.size = header['nSize'][0]
205 self.size = header['nSize'][0]
@@ -202,10 +211,13 class SystemHeader(Header):
202
211
203 endFp = self.size + startFp
212 endFp = self.size + startFp
204
213
205 if fp.tell() != endFp:
214 if fp.tell() > endFp:
206 print "System Header is not consistent"
215 sys.stderr.write("Warning: System header size is lower than it has to be")
207 return 0
216 return 0
208
217
218 if fp.tell() < endFp:
219 sys.stderr.write("Warning: System header size is greater than it is considered")
220
209 return 1
221 return 1
210
222
211 def write(self, fp):
223 def write(self, fp):
@@ -218,7 +230,6 class SystemHeader(Header):
218
230
219 class RadarControllerHeader(Header):
231 class RadarControllerHeader(Header):
220
232
221 size = None
222 expType = None
233 expType = None
223 nTx = None
234 nTx = None
224 ipp = None
235 ipp = None
@@ -246,7 +257,7 class RadarControllerHeader(Header):
246 codeType=0, nCode=0, nBaud=0, code=None,
257 codeType=0, nCode=0, nBaud=0, code=None,
247 flip1=0, flip2=0):
258 flip1=0, flip2=0):
248
259
249 self.size = 116
260 # self.size = 116
250 self.expType = expType
261 self.expType = expType
251 self.nTx = nTx
262 self.nTx = nTx
252 self.ipp = ippKm
263 self.ipp = ippKm
@@ -346,7 +357,15 class RadarControllerHeader(Header):
346 # fp.seek(endFp)
357 # fp.seek(endFp)
347 print "Radar Controller Header is not consistent read[%d] != header[%d]" %(fp.tell()-startFp,endFp)
358 print "Radar Controller Header is not consistent read[%d] != header[%d]" %(fp.tell()-startFp,endFp)
348 # return 0
359 # return 0
349
360
361 if fp.tell() > endFp:
362 sys.stderr.write("Warning: Radar Controller header size is lower than it has to be")
363 # return 0
364
365 if fp.tell() < endFp:
366 sys.stderr.write("Warning: Radar Controller header size is greater than it is considered")
367
368
350 return 1
369 return 1
351
370
352 def write(self, fp):
371 def write(self, fp):
@@ -435,7 +454,7 class RadarControllerHeader(Header):
435
454
436 def set_size(self, value):
455 def set_size(self, value):
437
456
438 self.__size = value
457 raise IOError, "size is a property and it cannot be set, just read"
439
458
440 return
459 return
441
460
@@ -562,9 +581,12 class ProcessingHeader(Header):
562
581
563 endFp = size + startFp
582 endFp = size + startFp
564
583
565 if fp.tell() != endFp:
584 if fp.tell() > endFp:
566 print "Processing Header is not consistent"
585 sys.stderr.write("Warning: Processing header size is lower than it has to be")
567 return 0
586 return 0
587
588 if fp.tell() < endFp:
589 sys.stderr.write("Warning: Processing header size is greater than it is considered")
568
590
569 return 1
591 return 1
570
592
@@ -621,7 +643,7 class ProcessingHeader(Header):
621
643
622 def set_size(self, value):
644 def set_size(self, value):
623
645
624 self.__size = value
646 raise IOError, "size is a property and it cannot be set, just read"
625
647
626 return
648 return
627
649
General Comments 0
You need to be logged in to leave comments. Login now