| 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*/ |
| 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 |
{ |
{ |
| 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 ((icount-adr_first[2]+1-LenP[2]-16)<=Limit) {adr_last[2]=icount;} //end byte for previous packet |
if ((icount-adr_first[2]+1-LenP[2]-16)<=Limit) {adr_last[2]=icount;} //end byte for previous packet |
| 583 |
else if ((icount-adr_first[2]+1-LenP[2]-16)>Limit) {adr_last[2]=adr_first[2]+Limit;} //end byte for previous packet |
else if ((icount-adr_first[2]+1-LenP[2]-16)>Limit) {adr_last[2]=adr_first[2]+Limit;} //end byte for previous packet |
| 601 |
(int)(temp[1]/(long int)(pow(256.,3-i)));}} |
(int)(temp[1]/(long int)(pow(256.,3-i)));}} |
| 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); |