/[PAMELA software]/chewbacca/PamOffLineSW/techmodel/InitTrailerReader.cpp
ViewVC logotype

Annotation of /chewbacca/PamOffLineSW/techmodel/InitTrailerReader.cpp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.2 - (hide annotations) (download)
Fri Jul 24 13:53:45 2009 UTC (15 years, 4 months ago) by mocchiut
Branch: MAIN
CVS Tags: v10RED, v9r00, v9r01, HEAD
Changes since 1.1: +4 -4 lines
Runtime error with ROOT 5.24 fixed, many small changes and warnings fixing

1 mocchiut 1.1 /** @file
2 mocchiut 1.2 * $Author: mocchiut $
3     * $Date: 2008/09/23 07:20:23 $
4     * $Revision: 1.1.1.1 $
5 mocchiut 1.1 *
6     * Implementation of the InitTrailerReader class.
7     */
8    
9     #include "ReaderAlgorithms.h"
10    
11     using namespace pamela::techmodel;
12    
13    
14     /**
15     * Constructor.
16     */
17     InitTrailerReader::InitTrailerReader(void):
18     TechmodelAlgorithm(PacketType::InitTrailer, "TechmodelInitTrailerReader") {
19     initTrailer = new InitTrailerEvent();
20     }
21    
22     /**
23     * Get a string with the version info of the algorithm.
24     */
25     std::string InitTrailerReader::GetVersionInfo(void) const {
26     return
27     "$Trailer: /home/cvsmanager/yoda/techmodel/InitTrailerReader.cpp,v 1.1.1.1 2004/07/06 12:20:23 Maurizio Nagni Exp $\n";
28     }
29    
30     /**
31     * Initialize the algorithm with a special run. This will initialize the
32     * event reader routines for all packet types.
33     */
34     void InitTrailerReader::Init(PamelaRun *run) {
35     run->WriteSubPacket(this, &initTrailer, initTrailer->Class());
36     }
37    
38     /**
39     * Unpack the InitTrailer event
40     */
41     void InitTrailerReader::PKT_RunEvent(char* subData, long int dataLength) throw (WrongCRCException){
42     std::stringstream oss;
43     string msg;
44    
45     UINT16 subCRC; //calculated CRC of the data
46     UINT16 readCRC; //CRC read from the end of the subpacket
47     long int length = dataLength - 2; //the block of data
48     subCRC = CM_Compute_CRC16(0, (UINT8*)subData, length);
49     readCRC = (((UINT16)(subData[dataLength - 2]<<8))&0xFF00) + (((UINT16)subData[dataLength - 1])&0x00FF);
50    
51     //if (subCRC != readCRC) throw WrongCRCException(" Wrong CRC for InitTrailer Packet ");
52     if (subCRC != readCRC)
53     {
54     oss.str("");
55     oss<<"Wrong CRC for InitTrailer Packet: "<<" CRC COMPUTED= "<< subCRC<<" CRC READ= "<< readCRC;
56     msg=oss.str();
57     PamOffLineSW::mainLogUtil->logError(msg);
58     throw WrongCRCException(" Wrong CRC for InitTrailer Packet. THE PACKET IS DISCARDED ");
59     }
60    
61     initTrailer->initTrailerData = new TArrayC(length, subData);
62    
63     /*
64     if (subCRC != readCRC)
65     {
66     oss.str("");
67     oss<<"Wrong CRC for InitHeader Packet: "<<" CRC COMPUTED= "<< subCRC<<" CRC READ= "<< readCRC;
68     msg=oss.str();
69     PamOffLineSW::mainLogUtil->logWarning(msg);
70     throw WrongCRCException_PKTUsed(" Wrong CRC for InitHeader Packet. ");
71     }
72     */
73    
74 mocchiut 1.2 }

  ViewVC Help
Powered by ViewVC 1.1.23