--- rawreader/src/Read.cpp 2006/09/01 10:56:22 1.1 +++ rawreader/src/Read.cpp 2006/12/10 12:21:23 1.2 @@ -1,4 +1,5 @@ #include "descript.h" +#include "flag.h" void filename(char [], char [], char [], char[], int, char[]); void FindRoute(int[], int*); @@ -8,13 +9,13 @@ void read(char fni[], char fno[], char INF[], char protocol[], char path[], char name[], char nnnnn_TMP[], float quality[], int real_route[], int &Rcount) { - FILE *fo, *fo1, *fout, *foRout, *foMiss, *fo_log_kadr, *fo_route; + FILE *fo, *fout, *foRout, *foMiss, *fo_log_kadr, *fo_route; ifstream fin; ofstream fo_cln1, fokadr_cln1; char buf[1024]; // char stop1; - char ch1,ch2,ch3, ch, file_name_prot[80]; + char ch1,ch2,ch3, ch; char file_route[80]; /*protocol binary filesm mmm_counter_nnnnn_cln1Er.log*/ char miss_file[80]; /*protocol files mmm_counter_nnnnn_mis_cln1.dat*/ char cln1_file[80]; /*route binary data files mmm_counter_nnnnn_cln1.pam*/ @@ -57,14 +58,17 @@ int adr2=0; /* Last byte of kadr in cln2.bin*/ int tmp=0; int numPack[4]; /* Number of kadr in given route*/ + int good_pack=0; + int good_number=0; + int good_route=0; int adress[4]; int R_er[100]; /* Rout errors number in given rout*/ int R_er_interf1[100]; /* Interface Rout error at begin of rout*/ int R_er_interf2[100]; /* Interface Rout error at end of rout*/ int Mis_group[1000]; /* Number of missed kadrs group - for each rout*/ + for each route*/ int Pack_Er[1000]; /* Number of packets with packet number - error for each rout*/ + error for each route*/ int CRC_bad_kadr[3]; /* Current CRC bad kadr number*/ int flag_pack[3]; /* Flag for error in packet number*/ int flag_rout[3]; /* Flag for error in rout number*/ @@ -107,9 +111,6 @@ //open output file "nnnnnmmm_protocol.txt" fo=fopen(protocol, "wb"); if(fo==0) {cerr<<"can not open protocol file"; exit(0);} - //open output file "nnnnnmmm_cln1.inf" - fo1=fopen(INF, "wb"); - if(fo1==0) {cerr<<"can not open inf file"; exit(0);} //open output file "nnnnnmmm_route.log" strncpy(log_route,INF,strlen(INF)-9); log_route[strlen(INF)-9]='\0'; @@ -159,7 +160,7 @@ || (ch1!=(char)(CODE1)&&ch2!=(char)(CODE2)&&ch3!=(char)(CODE3))) {fin.get(ch); - if (fin.eof()) {/*cerr<<"\n"<<"gopa";*/ break;} + if (fin.eof()) {break;} ch1=ch2; ch2=ch3; ch3=Short_Buf[0]; for (i=0;i<4;i++) Short_Buf[i]=Short_Buf[i+1]; Short_Buf[4]=ch; icount_total+=1; count_tot[Rcount-1]+=1; @@ -173,18 +174,9 @@ remove(fno); fclose(fo); remove(protocol); - fclose(fo1); remove(INF); exit(0); } -// cout<<"icount_total="<0) cout<>i;}*/ fprintf(fout,"CRC = %x (%x) error in kadr %i\n", buffer3[1023],CalcCheckSum,numP[2]); //write in file nnnnn_work.dat -// cerr<<"checksum error "<1)&&(abs(numP[2]-good_pack-2)>abs(Num_kadrs[Rcount-1]-good_number))&& + (buffer2[3]==good_route)&&(flag_tr[2]==0)&&(flag_pack[2]==0)) + {Mis_group[Rcount-1]+=1; + fprintf(foMiss,"%9i%9i \n",good_pack+1,numP[2]-1); + count_missed[Rcount-1]+=numP[2]-good_pack-1; + } //truncate kadr /**route number: 10 (10 10 10) 10 ******************************/ /**kadr number: 11 (12 13 14) 15 ******************************/ @@ -403,188 +400,14 @@ count_missed[Rcount-1]+=numP[2]-numP[0]-1;} /***************************************************************/ + if (flag_CRC[2]!=1) {good_pack=numP[2]; good_route=buffer3[3]; good_number=Num_kadrs[Rcount-1];} + /******************ROUTE NUMBER ANALYSIS**************************/ if ((buffer2[3]!=buffer1[3])&&(buffer2[3]!=buffer3[3])&&(buffer1[3]!=buffer3[3])&& (flag_pack[2]==0)&&(flag_pack[1]==0)&&(flag_pack[0]==0)) { - /******************Interface route error 1***********************/ - /**route number:7 7 ( 7 4 8) 8 8 **************************/ - /**kadr number:197 198 (199 200 1) 2 3 **************************/ - /*if ((numP[1]==numP[0]+1)&&(numP[2]>stop1; - if ((CRC_bad_kadr[1]==numP[1])&&(numP[1]!=0)) - { - //Correct error route number////////////////////////////////////////// - buffer2[3]=buffer1[3]; - if (buffer2[1023]==(int)(CRC(buffer2))) flag_CRC_cor[1]=1; - //////////////////////////////////////////////////////////////////// - flags=(short int)(pow((float)(2*flag_name[1]),4)+ - pow((float)(2*flag_rout[1]),1)+ - pow((float)(2*flag_pack[1]),2)+ - pow((float)(2*flag_CRC0[1]),3)+ - pow((float)(2*flag_CRC[1]),5)+ - pow((float)(2*flag_CRC_cor[1]),6)); - fprintf(foRout,"%1c%1c%1c%1c",(char)(buffer2[4]), - (char)(buffer2[5]),(char)(buffer2[6]),(char)(flags)); - fprintf(fout,"%i Interface route error 1 %i\n",CRC_bad_kadr[1],flags); - CRC_bad_kadr[1]=0; - } - // CREATE FILE NAMES - filename(file_route, miss_file, cln1_file, path, - NumRout[Rcount-1], name); - strncpy(cln1_kadr,cln1_file,strlen(cln1_file)-3); - cln1_kadr[strlen(cln1_file)-3]='\0'; - strcat(cln1_kadr,"bin"); - strncpy(log_kadr,file_route,strlen(file_route)-6); - log_kadr[strlen(file_route)-6]='\0'; - strcat(log_kadr,"_bin.log"); - fclose(foRout); //Close files - fo_cln1.close(); //for old - fclose(foMiss); //route - fokadr_cln1.close(); - fclose(fo_log_kadr); - //Open files for new route - foRout=fopen(file_route, "wb"); //mmm_nnnnn_cln1Er.log - foMiss=fopen(miss_file, "wb"); //mmm_nnnnn_mis_cln1.dat - fo_cln1.open(cln1_file, ios::binary); //mmm_nnnnn_cln1.pam - fokadr_cln1.open(cln1_kadr,ios::binary); //mmm_nnnnn_cln1.bin - fo_log_kadr=fopen(log_kadr,"wb"); //mmm_nnnnn_cln1_bin.log - }*/ - /******************Interface route error 2***********************/ - /**route number:7 7 ( 7 4 8) 8 ******************************/ - /**kadr number:198 199 (200 1 2) 3 ******************************/ - /*if ((numP[1]==numP[2]-1)&&(numP[1]>stop1; - // CREATE FILE NAMES - filename(file_route, miss_file, cln1_file, path, - NumRout[Rcount-1], name); - strncpy(cln1_kadr,cln1_file,strlen(cln1_file)-3); - cln1_kadr[strlen(cln1_file)-3]='\0'; - strcat(cln1_kadr,"bin"); - strncpy(log_kadr,file_route,strlen(file_route)-6); - log_kadr[strlen(file_route)-6]='\0'; - strcat(log_kadr,"_bin.log"); - fclose(foRout); //Close files - fo_cln1.close(); //for old - fclose(foMiss); //route - fokadr_cln1.close(); - fclose(fo_log_kadr); - //Open files for new route - foRout=fopen(file_route, "wb"); //mmm_nnnnn_cln1Er.log - foMiss=fopen(miss_file, "wb"); //mmm_nnnnn_mis_cln1.dat - fo_cln1.open(cln1_file, ios::binary); //mmm_nnnnn_cln1.pam - fokadr_cln1.open(cln1_kadr,ios::binary); //mmm_nnnnn_cln1.bin - fo_log_kadr=fopen(log_kadr,"wb"); //mmm_nnnnn_cln1_bin.log - if ((CRC_bad_kadr[1]==numP[1])&&(numP[1]!=0)) - {Num_bad_kadrs[Rcount-1]+=1; Num_bad_kadrs[Rcount-2]-=1; - //Correct error rout number////////////////////////////////////////// - buffer2[3]=buffer3[3]; - if (buffer2[1023]==(int)(CRC(buffer2))) flag_CRC_cor[1]=1; - //////////////////////////////////////////////////////////////////// - flags=(short int)(pow((float)(2*flag_name[1]),4)+ - pow((float)(2*flag_rout[1]),1)+ - pow((float)(2*flag_pack[1]),2)+ - pow((float)(2*flag_CRC0[1]),3)+ - pow((float)(2*flag_CRC[1]),5)+ - pow((float)(2*flag_CRC_cor[1]),6)); - fprintf(foRout,"%1c%1c%1c%1c",(char)(buffer2[4]),(char)(buffer2[5]),(char)(buffer2[6]),(char)(flags)); - fprintf(fout,"%i Interface route error 2 %i\n",CRC_bad_kadr[1],flags); - CRC_bad_kadr[1]=0;} - }*/ - /******************Interface route error 3************************/ - /**route number:7 7 ( 7 8 4) 8 8******************************/ - /**kadr number:198 199 (200 1 2) 3 4******************************/ -/* if ((numP[1]==numP[2]-1)&&(flag_CRC[1]==0)&&(flag_CRC[2]==1)) - {Rcount+=1; - packet_last[Rcount-2]=numP[0]; - packet_first[Rcount-1]=numP[1]; - NumRout[Rcount-1]=Rcount; - Num_kadrs[Rcount-2]-=2; - Num_kadrs[Rcount-1]+=2; - count_ident[Rcount-1]+=2048; count_ident[Rcount-2]-=2048; - count_tot[Rcount-1]+=2048; count_tot[Rcount-2]-=2048; - Num_bad_kadrs[Rcount-1]+=1; Num_bad_kadrs[Rcount-2]-=1; - cout<<"\n interface3 "<>stop1; - // CREATE FILE NAMES - filename(file_route, miss_file, cln1_file, path, - NumRout[Rcount-1], name); - strncpy(cln1_kadr,cln1_file,strlen(cln1_file)-3); - cln1_kadr[strlen(cln1_file)-3]='\0'; - strcat(cln1_kadr,"bin"); - strncpy(log_kadr,file_route,strlen(file_route)-6); - log_kadr[strlen(file_route)-6]='\0'; - strcat(log_kadr,"_bin.log"); - fclose(foRout); //Close files - fo_cln1.close(); //for old - fclose(foMiss); //route - fokadr_cln1.close(); - fclose(fo_log_kadr); - //Open files for new route - foRout=fopen(file_route, "wb"); //mmm_nnnnn_cln1Er.log - foMiss=fopen(miss_file, "wb"); //mmm_nnnnn_mis_cln1.dat - fo_cln1.open(cln1_file, ios::binary); //mmm_nnnnn_cln1.pam - fokadr_cln1.open(cln1_kadr,ios::binary); //mmm_nnnnn_cln1.bin - fo_log_kadr=fopen(log_kadr,"wb"); //mmm_nnnnn_cln1_bin.log - flags=(short int)(pow((float)(2*flag_name[1]),4)+ - pow((float)(2*flag_rout[1]),1)+ - pow((float)(2*flag_pack[1]),2)+ - pow((float)(2*flag_CRC0[1]),3)+ - pow((float)(2*flag_CRC[1]),5)+ - pow((float)(2*flag_CRC_cor[1]),6)); - fprintf(foRout,"%1c%1c%1c%1c",(char)(buffer2[4]),(char)(buffer2[5]),(char)(buffer2[6]),(char)(flags)); - fprintf(fout,"%i Interface route error 3 %i\n",CRC_bad_kadr[1],flags); - CRC_bad_kadr[1]=0; - }*/ + } - /**************Return to old route*******************************/ - /**route number: 7 (8 4 8) 8*************************************/ - /*if ((buffer2[3]!=buffer1[3])&&(buffer2[3]!=buffer3[3])&& - (buffer1[3]==buffer3[3])&&(buffer2[3]!=0)&&(N1>2)) - { - R_er[Rcount-1]+=1; flag_rout[1]=1; - M_er=N1-1; - if ((CRC_bad_kadr[1]==numP[1])&&(numP[1]!=0)) - { - //Correct error route number////////////////////////////////////////// - buffer2[3]=buffer1[3]; - if (buffer2[1023]==(int)(CRC(buffer2))) flag_CRC_cor[1]=1; - //////////////////////////////////////////////////////////////////// - flags=(short int)(pow((float)(2*flag_name[1]),4)+ - pow((float)(2*flag_rout[1]),1)+ - pow((float)(2*flag_pack[1]),2)+ - pow((float)(2*flag_CRC0[1]),3)+ - pow((float)(2*flag_CRC[1]),5)+ - pow((float)(2*flag_CRC_cor[1]),6)); - fprintf(foRout,"%1c%1c%1c%1c",(char)(buffer2[4]),(char)(buffer2[5]),(char)(buffer2[6]),(char)(flags)); - fprintf(fout,"%i Old route error %i\n",CRC_bad_kadr[1],flags); - CRC_bad_kadr[1]=0;} - cout<<"\n"<>i; + cout<1)) + if (((numP[1]==0)&&(N1>1))||(N1==2)) {rr=0; FindRoute(buffer2, &rr); if (rr>0) @@ -709,9 +530,6 @@ fprintf(fout,"%i flags=%i\n",CRC_bad_kadr[1],flags);} /***************************************************************/ -// cout <<"\nCalcChekSum="<=1) - {numPack[3-k]=(int)(tmp/(long int)(pow(256.,3-k))); - tmp=tmp-(long int)pow(256.,3-k)*(int)(tmp/(long int)(pow(256.,3-k)));}} - for (i=0;i<4;i++) fputc((int)(unsigned char)(numPack[i]),fo_log_kadr); + for (k=0;k<3;k++) + {if (tmp/(long int)(pow(256.,2-k))>=1) + {numPack[2-k]=(int)(tmp/(long int)(pow(256.,2-k))); + tmp=tmp-(long int)pow(256.,2-k)*(int)(tmp/(long int)(pow(256.,2-k)));}} + for (i=0;i<3;i++) fputc((int)(unsigned char)(numPack[i]),fo_log_kadr); adr1=icount-1024*2; for (k=0;k<4;k++) adress[k]=0; for (k=0;k<4;k++) @@ -770,12 +588,12 @@ //Write in file mmm_counter_nnnnn_cln1_bin.log tmp=numP[2]; for (k=0;k<4;k++) numPack[k]=0; - for (k=0;k<4;k++) - {if (tmp/(long int)(pow(256.,3-k))>=1) - {numPack[3-k]=(int)(tmp/(long int)(pow(256.,3-k))); - tmp=tmp-(long int)pow(256.,3-k)* - (int)(tmp/(long int)(pow(256.,3-k)));}} - for (i=0;i<4;i++) fputc((int)(unsigned char)(numPack[i]),fo_log_kadr); + for (k=0;k<3;k++) + {if (tmp/(long int)(pow(256.,2-k))>=1) + {numPack[2-k]=(int)(tmp/(long int)(pow(256.,2-k))); + tmp=tmp-(long int)pow(256.,2-k)* + (int)(tmp/(long int)(pow(256.,2-k)));}} + for (i=0;i<3;i++) fputc((int)(unsigned char)(numPack[i]),fo_log_kadr); adr1=icount-1024; for (k=0;k<4;k++) adress[k]=0; for (k=0;k<4;k++) @@ -806,52 +624,34 @@ icount_int = (int)(icount/1024); icount_frac= icount%1024; -// cout<<"\nfile size="<