| 1 | 
 /** @file | 
 /** @file | 
| 2 | 
  * $Source: /home/cvsmanager/yoda/techmodel/TmtcReader.cpp,v $ | 
  * $Source: /afs/ba.infn.it/user/pamela/src/CVS/yoda/techmodel/TmtcReader.cpp,v $ | 
| 3 | 
  * $Id: TmtcReader.cpp,v 6.2 2006/05/30 19:10:02 kusanagi Exp $ | 
  * $Id: TmtcReader.cpp,v 6.3 2006/05/30 19:10:03 kusanagi Exp $ | 
| 4 | 
  * $Author: kusanagi $ | 
  * $Author: kusanagi $ | 
| 5 | 
  *  | 
  *  | 
| 6 | 
  * Implementation of the TmtcReader class. | 
  * Implementation of the TmtcReader class. | 
| 30 | 
  */ | 
  */ | 
| 31 | 
 std::string TmtcReader::GetVersionInfo(void) const { | 
 std::string TmtcReader::GetVersionInfo(void) const { | 
| 32 | 
   return  | 
   return  | 
| 33 | 
     "$Header: /home/cvsmanager/yoda/techmodel/TmtcReader.cpp,v 6.2 2006/05/30 19:10:02 kusanagi Exp $\n"; | 
     "$Header: /afs/ba.infn.it/user/pamela/src/CVS/yoda/techmodel/TmtcReader.cpp,v 6.3 2006/05/30 19:10:03 kusanagi Exp $\n"; | 
| 34 | 
 } | 
 } | 
| 35 | 
  | 
  | 
| 36 | 
 /** | 
 /** | 
| 66 | 
     UINT16    readCRC = 0;    //partial CRC updated as mcmd packet is read (to compare with the last two bytes of this event) | 
     UINT16    readCRC = 0;    //partial CRC updated as mcmd packet is read (to compare with the last two bytes of this event) | 
| 67 | 
     for(int i = 0; i < numRecords; i++) { | 
     for(int i = 0; i < numRecords; i++) { | 
| 68 | 
         start = InputFile->tellg(); | 
         start = InputFile->tellg(); | 
| 69 | 
  | 
         memset(subData,  0, sizeof(subData)); | 
| 70 | 
         InputFile->read(subData, sizeof(subData)); | 
         InputFile->read(subData, sizeof(subData)); | 
| 71 | 
  | 
         memset(CRCbuff,  0, sizeof(CRCbuff)); | 
| 72 | 
         InputFile->read(CRCbuff, sizeof(CRCbuff)); | 
         InputFile->read(CRCbuff, sizeof(CRCbuff)); | 
| 73 | 
          | 
          | 
| 74 | 
         partialCRC = CM_Compute_CRC16(partialCRC, (UINT8*)&subData, TMTC_SUB_LENGTH); | 
         partialCRC = CM_Compute_CRC16(partialCRC, (UINT8*)&subData, TMTC_SUB_LENGTH); | 
| 96 | 
             logger->warn(oss.str().c_str()); | 
             logger->warn(oss.str().c_str()); | 
| 97 | 
         } | 
         } | 
| 98 | 
     }     | 
     }     | 
| 99 | 
  | 
     memset(eventCRC,  0, sizeof(eventCRC)); | 
| 100 | 
     InputFile->read(eventCRC, sizeof(eventCRC)); | 
     InputFile->read(eventCRC, sizeof(eventCRC)); | 
| 101 | 
     readCRC = (((UINT16)(eventCRC[0]<<8))&0xFF00) + (((UINT16)eventCRC[1])&0x00FF); | 
     readCRC = (((UINT16)(eventCRC[0]<<8))&0xFF00) + (((UINT16)eventCRC[1])&0x00FF); | 
| 102 | 
     if(partialCRC != readCRC) throw WrongCRCException(" Wrong Global CRC for TMTC Packet "); | 
     if(partialCRC != readCRC) throw WrongCRCException(" Wrong Global CRC for TMTC Packet "); |