| 5 |
#include "CRC.h" |
#include "CRC.h" |
| 6 |
|
|
| 7 |
short int CRC_H(char [], char []); |
short int CRC_H(char [], char []); |
| 8 |
extern char MYSQL[80]; |
extern char MYSQL[120]; |
| 9 |
extern char database[80]; |
extern char database[120]; |
| 10 |
extern float YODA_flag; |
extern float YODA_flag; |
| 11 |
extern float transmit_flag; |
extern float transmit_flag; |
| 12 |
extern int print_flag; |
extern int print_flag; |
| 75 |
long int icount_int=0; /*Entire part of total file size in Kbytes*/ |
long int icount_int=0; /*Entire part of total file size in Kbytes*/ |
| 76 |
long int icount_frac=0; /*Fractional part of total file size*/ |
long int icount_frac=0; /*Fractional part of total file size*/ |
| 77 |
long int N1=0; /*Number of identified PAMELA packets*/ |
long int N1=0; /*Number of identified PAMELA packets*/ |
| 78 |
long int numP[3]; /*Packet numbers for previous packets*/ |
long int numP[3]; /*Packet numbers for previous packets*/ |
| 79 |
|
long int PackType[3]; /*Packet type for previous packets*/ |
| 80 |
long int LenP[3]; /*Packet length for previous packets*/ |
long int LenP[3]; /*Packet length for previous packets*/ |
| 81 |
unsigned long int time_p[3]; /*Packet time*/ |
unsigned long int time_p[3]; /*Packet time*/ |
| 82 |
unsigned long int time_max=0; |
unsigned long int time_max=0; |
| 83 |
unsigned long int time_min=0; |
unsigned long int time_min=0; |
| 84 |
|
int CLN2_END=0; |
| 85 |
long int pack_length=0; /*PAMELA packet length*/ |
long int pack_length=0; /*PAMELA packet length*/ |
| 86 |
long long int adr_first[3]; /*Start displacement from file begin*/ |
long long int adr_first[3]; /*Start displacement from file begin*/ |
| 87 |
long long int adr_last[3]; /*Finish displacement from file begin*/ |
long long int adr_last[3]; /*Finish displacement from file begin*/ |
| 100 |
strcpy(connection,MYSQL); |
strcpy(connection,MYSQL); |
| 101 |
strcat(connection,database); |
strcat(connection,database); |
| 102 |
TSQLServer *sqlServer = TSQLServer::Connect(connection, "pamelaprod", "rawprod"); |
TSQLServer *sqlServer = TSQLServer::Connect(connection, "pamelaprod", "rawprod"); |
| 103 |
|
if (sqlServer==0) {cerr<<"can not connect with MYSQL server\n"; exit(1);} |
| 104 |
oss.str(""); |
oss.str(""); |
| 105 |
oss<<"select * from FILES1"; |
oss<<"select * from FILES1"; |
| 106 |
TSQLResult *res1=sqlServer->Query(oss.str().c_str()); |
TSQLResult *res1=sqlServer->Query(oss.str().c_str()); |
| 134 |
{numP[i]=0; time_p[i]=0; CRC_Header[i]=0; CRC_bad_pack[i]=0; |
{numP[i]=0; time_p[i]=0; CRC_Header[i]=0; CRC_bad_pack[i]=0; |
| 135 |
flag_CRC_H[i]=0; flag_len[i]=0; flag_len_weak[i]=0; flag_pack[i]=0; flag_CRC_cor[i]=0; |
flag_CRC_H[i]=0; flag_len[i]=0; flag_len_weak[i]=0; flag_pack[i]=0; flag_CRC_cor[i]=0; |
| 136 |
flag_name[i]=0; flag_type[i]=0; flag_time[i]=0; |
flag_name[i]=0; flag_type[i]=0; flag_time[i]=0; |
| 137 |
LenP[i]=0; |
LenP[i]=0; PackType[i]=0; |
| 138 |
adr_first[i]=0; adr_last[i]=0; |
adr_first[i]=0; adr_last[i]=0; |
| 139 |
Hex[i]=0;} |
Hex[i]=0;} |
| 140 |
for (i=0; i<4; i++) {Byte_adr1[i]=0; Byte_adr2[i]=0;} |
for (i=0; i<4; i++) {Byte_adr1[i]=0; Byte_adr2[i]=0;} |
| 141 |
for (i=0; i<2; i++) temp[i]=0; |
for (i=0; i<2; i++) temp[i]=0; |
| 142 |
|
|
| 143 |
ifstream fin; |
ifstream fin; |
| 144 |
ofstream fo_pam, fo_work; |
ofstream fo_pam, fo_work; |
| 145 |
/**********************OPEN NECESSARY FILES************************/ |
/**********************OPEN NECESSARY FILES************************/ |
| 146 |
/******************************************************************/ |
/******************************************************************/ |
| 147 |
fin.open(fni, ios::binary); // open input file "nnnnn_mmm_xxx_cln1.pam" |
fin.open(fni, ios::binary); // open input file "nnnnn_mmm_xxx_cln1.pam" |
| 148 |
if(fin.good()==0) {cerr<<"can not open input file "<<fni<<"\n"; exit(1);} |
if(fin.good()==0) {cerr<<"can not open input file (Verify.cpp) "<<fni<<"\n"; exit(1);} |
| 149 |
|
|
| 150 |
fo_work.open(fno, ios::out); //open output help file "work.dat" |
fo_work.open(fno, ios::out); //open output help file "work.dat" |
| 151 |
if(!fo_work) {cerr<<"can not open outputfile"; exit(1);} |
if(!fo_work) {cerr<<"can not open outputfile"; exit(1);} |
| 186 |
256*(long int)(unsigned char)(Name_Buf[6])+ |
256*(long int)(unsigned char)(Name_Buf[6])+ |
| 187 |
256*256*(long int)(unsigned char)(Name_Buf[5]); |
256*256*(long int)(unsigned char)(Name_Buf[5]); |
| 188 |
|
|
|
if (N1==0) numP[2]=tmpP-1; //initial packet identification |
|
| 189 |
|
|
| 190 |
/******************packet type identification**********************/ |
/******************packet type identification**********************/ |
| 191 |
for (i=0;i<NumberPack;i++) |
for (i=0;i<NumberPack;i++) |
| 197 |
if ((num_type1==0)&&(num_type2!=0)) num_type=num_type2; |
if ((num_type1==0)&&(num_type2!=0)) num_type=num_type2; |
| 198 |
if ((num_type1!=0)&&(num_type2==0)) num_type=num_type1; |
if ((num_type1!=0)&&(num_type2==0)) num_type=num_type1; |
| 199 |
|
|
| 200 |
|
if (N1==0) |
| 201 |
|
{numP[2]=tmpP-1; //initial packet identification |
| 202 |
|
PackType[2]=num_type-1;} //initial packet type identification |
| 203 |
/////////////////////////////////////////////////////////////////// |
/////////////////////////////////////////////////////////////////// |
| 204 |
////////////////// PAMELA PACKET IDENTIFICATION//////////////////// |
////////////////// PAMELA PACKET IDENTIFICATION//////////////////// |
| 205 |
/////////////////////////////////////////////////////////////////// |
/////////////////////////////////////////////////////////////////// |
| 206 |
if (((int)(unsigned char)Name_Buf[0]==CODE_BYTE1&& |
if (((int)(unsigned char)Name_Buf[0]==CODE_BYTE1&&(tmpP==numP[2]+1)&&num_type!=0&&N1!=0)|| |
| 207 |
(tmpP==numP[2]+1)&&num_type!=0&&N1!=0)|| |
((int)(unsigned char)Name_Buf[1]==CODE_BYTE2&&(tmpP==numP[2]+1)&&num_type!=0&&N1!=0)|| |
| 208 |
((int)(unsigned char)Name_Buf[1]==CODE_BYTE2&& |
((int)(unsigned char)Name_Buf[2]==CODE_BYTE3&&(tmpP==numP[2]+1)&&num_type!=0&&N1!=0)|| |
| 209 |
(tmpP==numP[2]+1)&&num_type!=0&&N1!=0)|| |
((int)(unsigned char)Name_Buf[0]==CODE_BYTE1&&(int)(unsigned char)Name_Buf[1]==CODE_BYTE2&& |
| 210 |
((int)(unsigned char)Name_Buf[2]==CODE_BYTE3&& |
(int)(unsigned char)Name_Buf[2]==CODE_BYTE3&&num_type1!=0&&num_type1==num_type2)|| |
| 211 |
(tmpP==numP[2]+1)&&num_type!=0&&N1!=0)|| |
((int)(unsigned char)Name_Buf[0]==CODE_BYTE1&&(int)(unsigned char)Name_Buf[1]==CODE_BYTE2&& |
| 212 |
((int)(unsigned char)Name_Buf[0]==CODE_BYTE1&& |
(int)(unsigned char)Name_Buf[2]==CODE_BYTE3&&(tmpP==numP[2]+1))) |
|
(int)(unsigned char)Name_Buf[1]==CODE_BYTE2&& |
|
|
(int)(unsigned char)Name_Buf[2]==CODE_BYTE3&&num_type1!=0&&num_type1==num_type2)|| |
|
|
((int)(unsigned char)Name_Buf[0]==CODE_BYTE1&& |
|
|
(int)(unsigned char)Name_Buf[1]==CODE_BYTE2&& |
|
|
(int)(unsigned char)Name_Buf[2]==CODE_BYTE3&& |
|
|
(tmpP==numP[2]+1))) |
|
| 213 |
{if (N1==0) {for (i=0;i<8;i++) buffer[i]=Name_Buf[i]; } |
{if (N1==0) {for (i=0;i<8;i++) buffer[i]=Name_Buf[i]; } |
| 214 |
N1+=1; FLAG_BIG=0; |
N1+=1; FLAG_BIG=0; |
| 215 |
if (N1==1) {icount+=8;} |
if (N1==1) {icount+=8;} |
| 216 |
|
|
| 217 |
packet_counter[num_type]+=1; //count packet number for each type |
packet_counter[num_type]+=1; //count packet number for each type |
| 218 |
if ((print_flag>0) && (fmod((float)(tmpP),(float)(1000.))==0.)&&(tmpP!=0)) cout<<"verifying "<<tmpP<<"\n"; |
if ((print_flag>0) && (fmod((float)(tmpP),(float)(1000.))==0.)&&(tmpP!=0)) cout<<"verifying "<<tmpP<<"\n"; |
| 219 |
if (N1!=1) |
if (N1!=1) |
| 227 |
{flag_len[2]=1; |
{flag_len[2]=1; |
| 228 |
er_pack_Len+=1; |
er_pack_Len+=1; |
| 229 |
if (print_flag>0) |
if (print_flag>0) |
| 230 |
{cout<<"pack num "<<numP[2]<<" len="<<LenP[2]<<" true len="<<adr_last[2]-adr_first[2]-16<<" Type="<<num_type<<"\n";} |
{cout<<"pack num "<<numP[2]<<" len="<<LenP[2]<<" true len="<<adr_last[2]-adr_first[2]-16<<" Type=" |
| 231 |
|
<<packet_type[PackType[2]]<<"\n";} |
| 232 |
fo_work<<"Length error : packet number="<<numP[2]<<" : length in header="<<LenP[2]<< |
fo_work<<"Length error : packet number="<<numP[2]<<" : length in header="<<LenP[2]<< |
| 233 |
" : length till next header="<<adr_last[2]-adr_first[2]-16<<" : packet type="<<hex<< |
" : length till next header="<<adr_last[2]-adr_first[2]-16<<" : packet type="<<hex<< |
| 234 |
packet_type[num_type]<<dec<<"\n"; |
packet_type[PackType[2]]<<dec<<"\n"; |
| 235 |
} |
} |
| 236 |
if ( (flag_CRC_H[2]==0)&&(GLOBAL_LEN_ER>0)&& |
if ( (flag_CRC_H[2]==0)&&(GLOBAL_LEN_ER>0)&& |
| 237 |
( ((adr_last[2]-adr_first[2]+1)<(LenP[2]+16))||((adr_last[2]-adr_first[2]+1-LenP[2]-16)>64) ) ) |
( ((adr_last[2]-adr_first[2]+1)<(LenP[2]+16))||((adr_last[2]-adr_first[2]+1-LenP[2]-16)>64) ) ) |
| 238 |
{flag_len_weak[2]=1; |
{flag_len_weak[2]=1; |
| 239 |
if (print_flag>0) |
if (print_flag>0) |
| 240 |
{cout<<"weak length error; pack num "<<numP[2]<<" len="<<LenP[2]<<" true len="<<adr_last[2]-adr_first[2]-16 |
{cout<<"weak length error; pack num "<<numP[2]<<" len="<<LenP[2]<<" true len="<<adr_last[2]-adr_first[2]-16 |
| 241 |
<<" Type="<<num_type<<"\n";} |
<<" Type="<<hex<<packet_type[PackType[2]]<<dec<<"\n";} |
| 242 |
fo_work<<"Weak length error : packet number="<<numP[2]<<" : length in header="<<LenP[2]<< |
fo_work<<"Weak length error : packet number="<<numP[2]<<" : length in header="<<LenP[2]<< |
| 243 |
" : length till next header="<<adr_last[2]-adr_first[2]-16<<" : packet type="<<num_type<<"\n"; |
" : length till next header="<<adr_last[2]-adr_first[2]-16<<" : packet type="<<hex<< |
| 244 |
|
packet_type[PackType[2]]<<dec<<"\n"; |
| 245 |
} |
} |
| 246 |
|
|
| 247 |
if ((GLOBAL_LEN_ER>0)&&(flag_len[2]==1)) |
if ((GLOBAL_LEN_ER>0)&&(flag_len[2]==1)) |
| 320 |
flag_time[2]=0; |
flag_time[2]=0; |
| 321 |
flag_CRC_cor[2]=0; |
flag_CRC_cor[2]=0; |
| 322 |
for (i=0; i<2; i++) |
for (i=0; i<2; i++) |
| 323 |
{numP[i]=numP[2]; time_p[i]=time_p[2]; |
{numP[i]=numP[2]; PackType[i]=PackType[2]; time_p[i]=time_p[2]; |
| 324 |
CRC_Header[i]=CRC_Header[2]; |
CRC_Header[i]=CRC_Header[2]; |
| 325 |
LenP[i]=LenP[2]; |
LenP[i]=LenP[2]; |
| 326 |
adr_first[i]=adr_first[2]; |
adr_first[i]=adr_first[2]; |
| 335 |
} |
} |
| 336 |
default:{ |
default:{ |
| 337 |
for (i=0; i<2; i++) |
for (i=0; i<2; i++) |
| 338 |
{numP[i]=numP[i+1]; |
{numP[i]=numP[i+1]; PackType[i]=PackType[i+1]; |
| 339 |
time_p[i]=time_p[i+1]; |
time_p[i]=time_p[i+1]; |
| 340 |
CRC_Header[i]=CRC_Header[i+1]; |
CRC_Header[i]=CRC_Header[i+1]; |
| 341 |
CRC_bad_pack[i]=CRC_bad_pack[i+1]; |
CRC_bad_pack[i]=CRC_bad_pack[i+1]; |
| 353 |
numP[2]=(long int)(unsigned char)(Name_Buf[7])+ |
numP[2]=(long int)(unsigned char)(Name_Buf[7])+ |
| 354 |
256*(long int)(unsigned char)(Name_Buf[6])+ |
256*(long int)(unsigned char)(Name_Buf[6])+ |
| 355 |
256*256*(long int)(unsigned char)(Name_Buf[5]); |
256*256*(long int)(unsigned char)(Name_Buf[5]); |
| 356 |
|
PackType[2]=num_type-1; |
| 357 |
time_p[2]=(long int)(unsigned char)(Name_Buf_add[3])+ |
time_p[2]=(long int)(unsigned char)(Name_Buf_add[3])+ |
| 358 |
256*(long int)(unsigned char)(Name_Buf_add[2])+ |
256*(long int)(unsigned char)(Name_Buf_add[2])+ |
| 359 |
256*256*(long int)(unsigned char)(Name_Buf_add[1])+ |
256*256*(long int)(unsigned char)(Name_Buf_add[1])+ |
| 388 |
fo_work<<"CRC error : PAMELA packet="<<numP[2]<<" : real CRC="<<bitset<8>(CRC_Header[2])<<"("<<CRC_Header[2]<< |
fo_work<<"CRC error : PAMELA packet="<<numP[2]<<" : real CRC="<<bitset<8>(CRC_Header[2])<<"("<<CRC_Header[2]<< |
| 389 |
") : calculated CRC="<<bitset<8>(CalcCheckSum)<<"("<<CalcCheckSum<<")\n"; |
") : calculated CRC="<<bitset<8>(CalcCheckSum)<<"("<<CalcCheckSum<<")\n"; |
| 390 |
} |
} |
| 391 |
if ((time_max<time_p[2])&&(flag_CRC_H[2]!=1)) time_max=time_p[2]; |
// TIme in the last new packet |
| 392 |
|
if ((time_max<=time_p[2])&&(flag_CRC_H[2]!=1)) |
| 393 |
|
{time_max=time_p[2];} |
| 394 |
|
else if ((time_max>time_p[2])&&(flag_CRC_H[2]!=1)&&(CLN2_FLAG==2)) |
| 395 |
|
{fin.seekg(0,ios::end); CLN2_END=1; goto END;} |
| 396 |
/*********packet counter error analysis****************************/ |
/*********packet counter error analysis****************************/ |
| 397 |
if ((numP[2]!=(numP[1]+1))&&(N1!=1)&&(flag_len[1]==0)&&(CRC_bad_pack[2]==numP[2])) |
if ((numP[2]!=(numP[1]+1))&&(N1!=1)&&(flag_len[1]==0)&&(CRC_bad_pack[2]==numP[2])) |
| 398 |
{ |
{ |
| 442 |
/***missed packets: 21 20 19 18 17 ******************************/ |
/***missed packets: 21 20 19 18 17 ******************************/ |
| 443 |
if ((numP[1]<numP[0])&&(numP[1]==numP[2]-1)&&(flag_pack[0]==0)&&(flag_pack[1]==0)&&(flag_pack[2]==0)) |
if ((numP[1]<numP[0])&&(numP[1]==numP[2]-1)&&(flag_pack[0]==0)&&(flag_pack[1]==0)&&(flag_pack[2]==0)) |
| 444 |
{Mis_group+=1; |
{Mis_group+=1; |
| 445 |
count_sec_miss+=numP[0]-1-numP[1]; |
count_sec_miss+=numP[0]-numP[1]; |
| 446 |
fprintf(fo_miss,"secondary transmitted packets may be %9i -%9i number of packets=%9i\n", |
fprintf(fo_miss,"secondary transmitted packets may be %9i -%9i number of packets=%9i\n", |
| 447 |
numP[1],numP[0],numP[0]-1-numP[1]); |
numP[1],numP[0],numP[0]-numP[1]); |
| 448 |
} |
} |
| 449 |
/**packet numbers: 10 11 (12 15 19) 20 ****************************/ |
/**packet numbers: 10 11 (12 15 19) 20 ****************************/ |
| 450 |
/***********missed packets: 16 17 18 ********************************/ |
/***********missed packets: 16 17 18 ********************************/ |
| 528 |
for (i=0;i<4;i++) Byte_adr1[i]=0; |
for (i=0;i<4;i++) Byte_adr1[i]=0; |
| 529 |
for (i=0;i<4;i++) |
for (i=0;i<4;i++) |
| 530 |
{if (temp[0]/(long int)(pow(256.,3-i))>=1) |
{if (temp[0]/(long int)(pow(256.,3-i))>=1) |
| 531 |
{Byte_adr1[3-i]=(int)(temp[0]/(long int)(pow(256.,3-i))); |
{Byte_adr1[3-i]=(int)(temp[0]/(long int)(pow(256.,3-i))); |
| 532 |
temp[0]=temp[0]-(long int)pow(256.,3-i)* |
temp[0]=temp[0]-(long int)pow(256.,3-i)*(int)(temp[0]/(long int)(pow(256.,3-i)));} |
|
(int)(temp[0]/(long int)(pow(256.,3-i)));} |
|
| 533 |
} |
} |
| 534 |
|
|
| 535 |
//Write packet type and begin displacement in log file |
//Write packet type and begin displacement in log file |
| 557 |
if ((print_flag>0) && fmod( double(icount_total), double(100000000.))==double(0.)) {cout<<"Mbytes="<<icount_total/1000000.<<"\n";} |
if ((print_flag>0) && fmod( double(icount_total), double(100000000.))==double(0.)) {cout<<"Mbytes="<<icount_total/1000000.<<"\n";} |
| 558 |
if ((N1>0)&&(FLAG_BIG==0)) icount+=1; |
if ((N1>0)&&(FLAG_BIG==0)) icount+=1; |
| 559 |
for (i=0;i<7;i++) Name_Buf[i]=Name_Buf[i+1]; |
for (i=0;i<7;i++) Name_Buf[i]=Name_Buf[i+1]; |
| 560 |
Name_Buf[7]=ch; /*for(i=0;i<8;i++) printf("%x",(int)(unsigned char)Name_Buf[i]); printf("\n");*/ |
Name_Buf[7]=ch; |
| 561 |
if ((icount-adr_first[2]-1)<Nmax) |
if ((icount-adr_first[2]-1)<Nmax) |
| 562 |
{buffer[icount-adr_first[2]]=ch;} |
{buffer[icount-adr_first[2]]=ch;} |
| 563 |
else |
else |
| 564 |
{flag_len[2]=1; |
{if (FLAG_BIG==0) |
| 565 |
er_pack_Len+=1; |
{flag_len[2]=1; |
| 566 |
fo_work<<"Length error (too long packet) : packet number="<<numP[2]<<" : length in header="<<LenP[2]<< |
er_pack_Len+=1; |
| 567 |
" : length (> Nmax="<<Nmax<<")="<<icount-adr_first[2]<<" : packet type="<<hex<< |
fo_work<<"Length error (too long packet) : packet number="<<numP[2]<<" : length in header="<<LenP[2]<< |
| 568 |
packet_type[num_type]<<dec<<"\n"; |
" : length (> Nmax="<<Nmax<<")="<<icount-adr_first[2]<<" : packet type="<<hex<< |
| 569 |
if (print_flag>0 && FLAG_BIG==0) {cout<<"too long packet "<<numP[2]<<"\n";} |
packet_type[PackType[2]]<<dec<<"\n"; |
| 570 |
FLAG_BIG=1; |
if (print_flag>0) {cout<<"too long packet "<<numP[2]<<"\n";} |
| 571 |
|
FLAG_BIG=1; |
| 572 |
|
} |
| 573 |
} |
} |
| 574 |
} |
} |
| 575 |
/******************************************************************/ |
/******************************************************************/ |
| 576 |
/********************MAIN READING CYCLE END************************/ |
/********************MAIN READING CYCLE END************************/ |
| 577 |
/******************************************************************/ |
/******************************************************************/ |
| 578 |
|
END: |
| 579 |
|
if (CLN2_END==0) |
| 580 |
|
{ |
| 581 |
/*************PAMELA LAST PACKET END DISPLACEMENT******************/ |
/*************PAMELA LAST PACKET END DISPLACEMENT******************/ |
| 582 |
if (FLAG_BIG==0) {adr_last[2]=icount;} |
if ((icount-adr_first[2]+1-LenP[2]-16)<=Limit) {adr_last[2]=icount;} //end byte for previous packet |
| 583 |
else {adr_last[2]=adr_first[2]+Limit;} |
else if ((icount-adr_first[2]+1-LenP[2]-16)>Limit) {adr_last[2]=adr_first[2]+Limit;} //end byte for previous packet |
| 584 |
|
|
| 585 |
if ((adr_last[2]-adr_first[2]+1-LenP[2]-16>64)||(adr_last[2]-adr_first[2]+1-LenP[2]-16<0)) |
if ((adr_last[2]-adr_first[2]+1-LenP[2]-16>64)||(adr_last[2]-adr_first[2]+1-LenP[2]-16<0)) |
| 586 |
{ |
{ |
| 587 |
flag_len[2]=1; |
flag_len[2]=1; |
| 588 |
er_pack_Len+=1; |
er_pack_Len+=1; |
| 589 |
fo_work<<"Length error : packet number="<<numP[2]<<" : length in header="<<LenP[2]<< |
fo_work<<"Length error : packet number="<<numP[2]<<" : length in header="<<LenP[2]<< |
| 590 |
" : length till next header="<<adr_last[2]-adr_first[2]-16<<" : packet type="<<hex<< |
" : length till next header="<<adr_last[2]-adr_first[2]-16<<" : packet type="<<hex<< |
| 591 |
packet_type[num_type]<<dec<<"\n"; |
packet_type[PackType[2]]<<dec<<"\n"; |
| 592 |
} |
} |
| 593 |
if ( (flag_len[2]!=1)&&(flag_CRC_H[2]!=1) ) |
if ( (flag_len[2]!=1)&&(flag_CRC_H[2]!=1) ) |
| 594 |
{adr_last[2]=adr_first[2]+LenP[2]+15;} |
{adr_last[2]=adr_first[2]+LenP[2]+15;} |
| 598 |
{if (temp[1]/(long int)(pow(256.,3-i))>=1) |
{if (temp[1]/(long int)(pow(256.,3-i))>=1) |
| 599 |
{Byte_adr2[3-i]=(int)(temp[1]/(long int)(pow(256.,3-i))); |
{Byte_adr2[3-i]=(int)(temp[1]/(long int)(pow(256.,3-i))); |
| 600 |
temp[1]=temp[1]-(long int)pow(256.,3-i)* |
temp[1]=temp[1]-(long int)pow(256.,3-i)* |
| 601 |
(int)(temp[1]/(long int)(pow(256.,3-i)));}} |
(int)(temp[1]/(long int)(pow(256.,3-i)));}} |
|
|
|
|
/*********PAMELA LAST PACKET LENGTH ERROR ANALYSIS*****************/ |
|
| 602 |
|
|
| 603 |
//Write last packet end displacement in log file |
//Write last packet end displacement in log file |
| 604 |
for (i=0;i<4;i++) fprintf(fo_log,"%1c",char(Byte_adr2[i])); |
for (i=0;i<4;i++) fprintf(fo_log,"%1c",char(Byte_adr2[i])); |
| 605 |
|
|
| 606 |
//Write error number in log and work.dat files |
//Write error number in log and work.dat files |
| 607 |
flags=(short int)(pow((float)(2*flag_CRC_H[2]),1)+ |
flags=(short int)(pow((float)(2*flag_CRC_H[2]),1)+ |
| 608 |
pow((float)(2*flag_len[2]),2)+ |
pow((float)(2*flag_len[2]),2)+ |
| 609 |
pow((float)(2*flag_pack[2]),3)+ |
pow((float)(2*flag_pack[2]),3)+ |
| 610 |
pow((float)(2*flag_name[2]),4)+ |
pow((float)(2*flag_name[2]),4)+ |
| 611 |
pow((float)(2*flag_type[2]),5)+ |
pow((float)(2*flag_type[2]),5)+ |
| 612 |
pow((float)(2*flag_time[2]),6)+ |
pow((float)(2*flag_time[2]),6)+ |
| 613 |
pow((float)(2*flag_CRC_cor[2]),7)); |
pow((float)(2*flag_CRC_cor[2]),7)); |
| 614 |
if ((flags!=0)&&(N1>0)) er_pack_count+=1; |
if ((flags!=0)&&(N1>0)) er_pack_count+=1; |
| 615 |
fprintf(fo_log,"%1c",char(flags)); |
fprintf(fo_log,"%1c",char(flags)); |
| 616 |
//Write error number in work.dat file |
//Write error number in work.dat file |
| 617 |
if (flags!=0) fo_work<<"PAMELA packet="<<numP[2]<<" : error flag="<<flags<<"\n"; |
if (flags!=0) fo_work<<"PAMELA packet="<<numP[2]<<" : error flag="<<flags<<"\n"; |
| 618 |
|
} |
| 619 |
|
|
| 620 |
//Write inf file |
//Write inf file |
| 621 |
fprintf(fo_inf,"%lli bytes in initial file %s\n", icount_total, name_in); |
fprintf(fo_inf,"%lli bytes in initial file %s\n", icount_total, name_in); |
| 622 |
icount_int = (int)(icount_total/1024); |
icount_int = (int)(icount_total/1024); |
| 642 |
fprintf(fo_inf,"Type %x number of PAMELA packets= %i\n", |
fprintf(fo_inf,"Type %x number of PAMELA packets= %i\n", |
| 643 |
packet_type[i-1], packet_counter[i]); |
packet_type[i-1], packet_counter[i]); |
| 644 |
} |
} |
| 645 |
|
|
| 646 |
|
if (CLN2_END==0) |
| 647 |
|
{ |
| 648 |
//Write data in file "nnnnn_mmm_xxx_cln2.pam" |
//Write data in file "nnnnn_mmm_xxx_cln2.pam" |
| 649 |
for (i=0;i<adr_last[2]-adr_first[2]+1;i++) |
for (i=0;i<adr_last[2]-adr_first[2]+1;i++) |
| 650 |
{fo_pam<<buffer[i];} |
{fo_pam<<buffer[i];} |
| 651 |
|
} |
| 652 |
|
|
| 653 |
time(&seconds); |
time(&seconds); |
| 654 |
timeinfo=localtime(&seconds); |
timeinfo=localtime(&seconds); |
| 703 |
// } |
// } |
| 704 |
|
|
| 705 |
delete [] buffer; |
delete [] buffer; |
|
|
|
| 706 |
/***************************************************************/ |
/***************************************************************/ |
| 707 |
fin.close(); |
fin.close(); |
| 708 |
fo_work.close(); |
fo_work.close(); |