/[PAMELA software]/yoda/event/PscuHeader.h
ViewVC logotype

Diff of /yoda/event/PscuHeader.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2.0 by kusanagi, Tue Sep 21 20:49:57 2004 UTC revision 4.4 by kusanagi, Sat May 28 10:44:09 2005 UTC
# Line 1  Line 1 
1  /** @file  /** @file
2   * $Source: /home/cvsmanager/yoda/event/PscuHeader.h,v $   * $Source: /home/cvsmanager/yoda/event/PscuHeader.h,v $
3   * $Id: PscuHeader.h,v 1.2 2004/08/25 10:14:22 kusanagi Exp $   * $Id: PscuHeader.h,v 4.0 2005/03/06 04:33:01 kusanagi Exp $
4   * $Author: kusanagi $   * $Author: kusanagi $
5   *   *
6   * Header file for the PscuHeader class.   * Header file for the PscuHeader class.
7   */   */
8  #ifndef PSCU_HEADER_H  #ifndef PSCU_HEADER_H
9  #define PSCU_HEADER_H  #define PSCU_HEADER_H
 #define UINT32 unsigned int  
 #define UINT16 unsigned short  
 #define UINT8  unsigned char  
 #include <exception>  
10    
11  #include "PacketType.h"  #include "Exception.h"
12  #include "SubPacket.h"  #include "SubPacket.h"
13    
14  namespace pamela {  namespace pamela {
# Line 21  namespace pamela { Line 17  namespace pamela {
17     */     */
18    class PscuHeader: public pamela::SubPacket {    class PscuHeader: public pamela::SubPacket {
19    private:    private:
20    
21      public:
22      unsigned int Header;  /**< Packet type header (must be 0xFAFEDE) */      unsigned int Header;  /**< Packet type header (must be 0xFAFEDE) */
23      UINT8  PacketId1; /**< Packet type first  byte */      UINT8  PacketId1; /**< Packet type first  byte */
24      UINT8  PacketId2; /**< Packet type second byte */      UINT8  PacketId2; /**< Packet type second byte */
25      UINT32 Counter; /**< PSCU event counter */      UINT32 Counter; /**< PSCU event counter */
26      UINT32 OrbitalTime; /**< Raw Orbital time */      UINT32 OrbitalTime; /**< Raw Orbital time */
27      UINT32 PacketLenght;      UINT32 PacketLenght;
28      UINT8  CRC; /**< PSCU Header Checksum  */      UINT8  CRC; /**< PSCU Header Checksum  */ //!
29    
30      /* This parameter represent the offset of the header relative to the begin      /* This parameter represent the offset of the header relative to the begin
31       * of the file it has been extracted. It's purpose is to       * of the file it has been extracted. It's purpose is to
# Line 35  namespace pamela { Line 33  namespace pamela {
33       * It's not clear if it will be mantained or not in the definitive release.       * It's not clear if it will be mantained or not in the definitive release.
34      */      */
35      UINT32 FileOffset;      UINT32 FileOffset;
36    public:      
37      PscuHeader();      PscuHeader();
38      virtual ~PscuHeader();      virtual ~PscuHeader();
39      const pamela::PacketType* GetPacketType(void) const throw (std::exception);      const pamela::PacketType* GetPacketType(void) const throw(UnidentifiedPacketException);
40      /** Get the Header. */      /** Get the Header. */
41      int GetHeader(void) const { return Header; }      int GetHeader(void) const { return Header; }
42      /** Get packet id 1. */      /** Get packet id 1. */
# Line 70  namespace pamela { Line 68  namespace pamela {
68      void SetCRC(short var) { CRC = var; }      void SetCRC(short var) { CRC = var; }
69      /** Get the offset of the packet relative to the begin of the raw file. */      /** Get the offset of the packet relative to the begin of the raw file. */
70      int SetFileOffset(int var) { FileOffset = var; }      int SetFileOffset(int var) { FileOffset = var; }
     ClassDef(PscuHeader, 1)  
71    
72        const char* Print(){
73            oss.str("");
74            oss <<  "\n Packet Counter          : "  <<  hex << Counter
75                <<  "\n Id1 - Id2               : "  <<  hex << (UINT16)PacketId1 <<  " - " << hex << (UINT16)PacketId2
76                <<  "\n Orbital Time            : "  <<  hex << OrbitalTime
77                <<  "\n Lenght                  : "  <<  hex << PacketLenght
78                <<  "\n CRC                     : "  <<  hex << (UINT16)CRC
79                <<  "\n Header Start Position   : "  <<  hex << FileOffset;
80            return oss.str().c_str();
81        }
82    
83      static const char* Print(char* buff){
84      static stringstream out;
85        out.str("");
86        out <<  "\n Packet Counter          : "  <<  hex << (((UINT32)buff[5]<<16)&0x00FF0000) + (((UINT32)buff[6]<<8)&0x0000FF00) + (((UINT32)buff[7])&0x000000FF)
87            <<  "\n Id1 - Id2               : "  <<  hex << (UINT16)buff[3] <<  " - " << hex << (UINT16)buff[4]
88            <<  "\n Orbital Time            : "  <<  hex << (((UINT32)buff[8]<<24)&0xFF000000) + (((UINT32)buff[9]<<16)&0x00FF0000) +  (((UINT32)buff[10]<<8)&0x0000FF00) + (((UINT32)buff[11])&0x000000FF)
89            <<  "\n Lenght                  : "  <<  hex << (((UINT32)buff[12]<<16)&0x00FF0000) +  (((UINT32)buff[13]<<8)&0x0000FF00) + (((UINT32)buff[14])&0x000000FF)
90            <<  "\n CRC                     : "  <<  hex << (UINT16)buff[15];
91        return out.str().c_str();
92      }
93        
94        ClassDef(PscuHeader, 1)
95    };    };
96  }  }
97    

Legend:
Removed from v.2.0  
changed lines
  Added in v.4.4

  ViewVC Help
Powered by ViewVC 1.1.23