@@ -549,6 +549,7 class JRODataReader(JRODataIO): | |||||
549 | Si un determinado file no puede ser abierto |
|
549 | Si un determinado file no puede ser abierto | |
550 | """ |
|
550 | """ | |
551 | idFile = self.fileIndex |
|
551 | idFile = self.fileIndex | |
|
552 | ||||
552 | while(True): |
|
553 | while(True): | |
553 |
|
554 | |||
554 | idFile += 1 |
|
555 | idFile += 1 | |
@@ -559,20 +560,12 class JRODataReader(JRODataIO): | |||||
559 | return 0 |
|
560 | return 0 | |
560 |
|
561 | |||
561 | filename = self.filenameList[idFile] |
|
562 | filename = self.filenameList[idFile] | |
562 | fileSize = os.path.getsize(filename) |
|
|||
563 |
|
563 | |||
564 | try: |
|
564 | if not(self.__verifyFile(filename)): | |
565 | fp = open(filename,'rb') |
|
|||
566 | except: |
|
|||
567 | raise IOError, "The file %s can't be opened" %filename |
|
|||
568 |
|
||||
569 | currentSize = fileSize - fp.tell() |
|
|||
570 | neededSize = self.m_ProcessingHeader.blockSize + self.firstHeaderSize |
|
|||
571 |
|
||||
572 | if (currentSize < neededSize): |
|
|||
573 | print "Skipping the file %s due to it hasn't enough data" %filename |
|
|||
574 | continue |
|
565 | continue | |
575 |
|
566 | |||
|
567 | fileSize = os.path.getsize(filename) | |||
|
568 | fp = open(filename,'rb') | |||
576 | break |
|
569 | break | |
577 |
|
570 | |||
578 | self.flagIsNewFile = 1 |
|
571 | self.flagIsNewFile = 1 | |
@@ -780,7 +773,6 class JRODataReader(JRODataIO): | |||||
780 |
|
773 | |||
781 | return pathList, filenameList |
|
774 | return pathList, filenameList | |
782 |
|
775 | |||
783 |
|
||||
784 | def __verifyFile(self, filename, msgFlag=True): |
|
776 | def __verifyFile(self, filename, msgFlag=True): | |
785 | """ |
|
777 | """ | |
786 | Verifica que el filename tenga data valida, para ello leo el FirstHeader del file |
|
778 | Verifica que el filename tenga data valida, para ello leo el FirstHeader del file | |
@@ -789,17 +781,24 class JRODataReader(JRODataIO): | |||||
789 | 0 : file no valido para ser leido |
|
781 | 0 : file no valido para ser leido | |
790 | 1 : file valido para ser leido |
|
782 | 1 : file valido para ser leido | |
791 | """ |
|
783 | """ | |
792 | m_BasicHeader = BasicHeader() |
|
784 | msg = None | |
793 | m_SystemHeader = SystemHeader() |
|
|||
794 | m_RadarControllerHeader = RadarControllerHeader() |
|
|||
795 | m_ProcessingHeader = ProcessingHeader() |
|
|||
796 | flagFileOK = False |
|
|||
797 |
|
785 | |||
798 | try: |
|
786 | try: | |
799 | fp = open( filename,'rb' ) #lectura binaria |
|
787 | fp = open( filename,'rb' ) #lectura binaria | |
|
788 | currentPosition = fp.tell() | |||
800 | except: |
|
789 | except: | |
801 | if msgFlag: |
|
790 | if msgFlag: | |
802 | print "The file %s can't be opened" % (filename) |
|
791 | print "The file %s can't be opened" % (filename) | |
|
792 | return False | |||
|
793 | ||||
|
794 | neededSize = self.m_ProcessingHeader.blockSize + self.firstHeaderSize | |||
|
795 | ||||
|
796 | if neededSize == 0: | |||
|
797 | ||||
|
798 | m_BasicHeader = BasicHeader() | |||
|
799 | m_SystemHeader = SystemHeader() | |||
|
800 | m_RadarControllerHeader = RadarControllerHeader() | |||
|
801 | m_ProcessingHeader = ProcessingHeader() | |||
803 |
|
802 | |||
804 | try: |
|
803 | try: | |
805 | if not( m_BasicHeader.read(fp) ): raise ValueError |
|
804 | if not( m_BasicHeader.read(fp) ): raise ValueError | |
@@ -807,18 +806,29 class JRODataReader(JRODataIO): | |||||
807 | if not( m_RadarControllerHeader.read(fp) ): raise ValueError |
|
806 | if not( m_RadarControllerHeader.read(fp) ): raise ValueError | |
808 | if not( m_ProcessingHeader.read(fp) ): raise ValueError |
|
807 | if not( m_ProcessingHeader.read(fp) ): raise ValueError | |
809 | data_type = int(numpy.log2((m_ProcessingHeader.processFlags & PROCFLAG.DATATYPE_MASK))-numpy.log2(PROCFLAG.DATATYPE_CHAR)) |
|
808 | data_type = int(numpy.log2((m_ProcessingHeader.processFlags & PROCFLAG.DATATYPE_MASK))-numpy.log2(PROCFLAG.DATATYPE_CHAR)) | |
810 | if m_BasicHeader.size > self.basicHeaderSize: |
|
809 | ||
811 | flagFileOK = True |
|
810 | neededSize = m_ProcessingHeader.blockSize + m_BasicHeader.size | |
|
811 | ||||
812 | except: |
|
812 | except: | |
813 | if msgFlag: |
|
813 | if msgFlag: | |
814 | print "\tThe file %s is empty or it hasn't enough data" % filename |
|
814 | print "\tThe file %s is empty or it hasn't enough data" % filename | |
815 |
|
815 | |||
816 | fp.close() |
|
816 | fp.close() | |
|
817 | return False | |||
|
818 | ||||
|
819 | else: | |||
|
820 | msg = "\tSkipping the file %s due to it hasn't enough data" %filename | |||
|
821 | ||||
|
822 | fp.close() | |||
|
823 | fileSize = os.path.getsize(filename) | |||
|
824 | currentSize = fileSize - currentPosition | |||
817 |
|
825 | |||
818 | if not(flagFileOK): |
|
826 | if currentSize < neededSize: | |
819 | return 0 |
|
827 | if msgFlag and (msg != None): | |
|
828 | print msg #print"\tSkipping the file %s due to it hasn't enough data" %filename | |||
|
829 | return False | |||
820 |
|
830 | |||
821 |
return |
|
831 | return True | |
822 |
|
832 | |||
823 | def updateDataHeader(self): |
|
833 | def updateDataHeader(self): | |
824 |
|
834 |
General Comments 0
You need to be logged in to leave comments.
Login now