/[PAMELA software]/yoda/techmodel/TrkAlarmReader.cpp
ViewVC logotype

Diff of /yoda/techmodel/TrkAlarmReader.cpp

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

revision 2.0 by kusanagi, Tue Sep 21 20:50:54 2004 UTC revision 6.3 by mocchiut, Fri Sep 29 10:19:29 2006 UTC
# Line 1  Line 1 
1    
2  // Implementation of the TrkAlarmReader class.  // Implementation of the TrkAlarmReader class.
   
3    
 #define UINT unsigned int  
 #define BYTE  unsigned char  
 #include <string>  
 #include <log4cxx/logger.h>  
 extern "C" {  
 #include "CRC.h"  
 }  
   
 #include <fstream>  
 #include "stdio.h"  
4  #include "ReaderAlgorithms.h"  #include "ReaderAlgorithms.h"
   
 using namespace pamela;  
5  using namespace pamela::techmodel;  using namespace pamela::techmodel;
6    
7  static log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger(_T("pamela.techmodel.TrkAlarmReader"));  static log4cxx::LoggerPtr logger = log4cxx::Logger::getLogger(_T("pamela.techmodel.TrkAlarmReader"));
# Line 33  TrkAlarmReader::TrkAlarmReader(void): Line 20  TrkAlarmReader::TrkAlarmReader(void):
20   */   */
21  std::string TrkAlarmReader::GetVersionInfo(void) const {  std::string TrkAlarmReader::GetVersionInfo(void) const {
22    return    return
23      "$Trailer: /home/cvsmanager/yoda/techmodel/TrkAlarmReader.cpp,v 1.1.1.1 2004/07/06 12:20:23 kusanagi Exp $\n";      "$Trailer: /home/cvsmanager/yoda/techmodel/TrkAlarmReader.cpp,v 1.1.1.1 2004/07/06 12:20:23 Maurizio Nagni Exp $\n";
24  }  }
25    
26  /**  /**
# Line 49  void TrkAlarmReader::Init(PamelaRun *run Line 36  void TrkAlarmReader::Init(PamelaRun *run
36  /**  /**
37   * Unpack the TrkAlarm event from an input file.   * Unpack the TrkAlarm event from an input file.
38   */   */
39  void TrkAlarmReader::RunEvent(int EventNumber, long int length) {  void TrkAlarmReader::RunEvent(int EventNumber, long int length) throw (WrongCRCException){
40        
41        char        subData[length];
42        memset(subData,  0, length*sizeof(char));
43        InputFile->read(subData, sizeof(subData));
44    
45        trkAlarm->TrigMask      = (subData[0]&0xc0) >> 6;
46        trkAlarm->DSPMask       = (subData[0]&0x3f);
47        
48    
49        trkAlarm->FlashShutdown = (subData[1]&0x80) >> 7;
50        trkAlarm->FlashOn       = (subData[1]&0x40) >> 6;
51        trkAlarm->DSPBusy       = (subData[1]&0x3f);
52        
53        trkAlarm->FlashUpset    = (subData[2]&0x80) >> 7;
54        trkAlarm->FlashData     = (subData[2]&0x40) >> 6;
55        trkAlarm->DSPSoft       = (subData[2]&0x3f);
56        
57        trkAlarm->InterCheck    = (subData[3]&0x80) >> 7;
58        trkAlarm->FinalCheck    = (subData[3]&0x40) >> 6;
59        trkAlarm->CmdIDMA       = (subData[3]&0x3f);
60            
61        trkAlarm->UnknownCmd    = (subData[4]&0x80) >> 7;
62        trkAlarm->CmdDuringTrig = (subData[4]&0x40) >> 6;
63        trkAlarm->TrigIDMA      = (subData[4]&0x3f);
64    
65        trkAlarm->PNum          = (subData[5]&0xf0) >> 4;
66        trkAlarm->CmdNum        = (subData[5]&0x0f);
67        
68        for(int i=0 ; i<4 ; i++){      
69            trkAlarm->BID[i]    = (subData[6]&(0x03<<i*2)) >> i*2;
70        };
71    
72        for(int i=1 ; i<4 ; i++){      
73            trkAlarm->BID[3+i]  = (subData[7]&(0x03<<i*2)) >> i*2;
74        };
75    
76        trkAlarm->ALARM[0]      = (subData[7]&0x02) >> 1;
77        trkAlarm->ALARM[1]      = (subData[7]&0x01);
78            
79        trkAlarm->Aswr          = (subData[8]&0xff) << 8;
80        trkAlarm->Aswr          = trkAlarm->Aswr | (subData[9]&0xff);
81  }  }
82    

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

  ViewVC Help
Powered by ViewVC 1.1.23