⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tests.c

📁 PDF417编码的算法的源程序
💻 C
📖 第 1 页 / 共 3 页
字号:
      data[1] = 1;         printf("Data [randloc,1] = %d %d \n", data[randloc], data[1]);      syndromes( 144, 32);        eras_dec_rs( data, erase_posit, 0, 144, 32 );            if ( (data[randloc] != save_val) | ( data[1] != save_val2))        {	  printf(" Error at k = %d data[randloc] = %d save = %d \n", 		 k , data[randloc], save_val );          printf(" Error2 at k = %d data[1] = %d save = %d \n", 		 k , data[1], save_val2 );        }      data[randloc] = save_val;      data[1] = save_val2;    }  // two random errors at random locs  for ( k = 0 ; k < 100 ; k += 1)    {       randint = rand();       randint2 = rand();      randint = randint & 1023;      randint2 = randint2 & 1023;      difval = randint %929;      difval2 = randint2 % 929;      randloc = rand();      randloc = randloc % 80;      randloc2 = rand();      randloc2 = randloc % 80;      if (randloc == randloc2)	{          randloc = (randloc+ 1)%929;        }      if ( difval > data[randloc])        {                   this_error = difval - data[randloc];	}      else	{	  this_error = data[randloc] - difval;        }      save_val = data[randloc];      data[randloc] = difval;    // cause error at location k          save_val2 = data[1];      if ( difval2 > data[randloc2])        {                   this_error2 = difval2 - data[randloc2];	}      else	{	  this_error2 = data[randloc2] - difval2;        }      save_val2 = data[randloc2];      data[randloc2] = difval2;    // cause error at location k             printf("Data [randloc,randloc2] = %d %d \n", data[randloc], data[randloc2]);      syndromes( 144, 32);        eras_dec_rs( data, erase_posit, 0, 144, 32 );            if ( (data[randloc] != save_val) || ( data[randloc2] != save_val2))        {	  printf(" Error at k = %d data[randloc] = %d save = %d \n", 		 k , data[randloc], save_val );          printf(" Error2 at k = %d data[randloc2] = %d save = %d \n", 		 k , data[randloc2], save_val2 );        }      data[randloc] = save_val;      data[randloc2] = save_val2;    }  for(j =0; j < 64; j += 1)    {      printf("data[%d] =  %d \n", 80 + j, data[80+j]);    }  // three random errors at random locs  printf("Begin random triple errors \n");  for ( k = 0 ; k < 100 ; k += 1)    {       randint = rand();       randint2 = rand();       randint3 = rand();      randint = randint & 1023;      randint2 = randint2 & 1023;      randint3 = randint3 & 1023;      difval = randint %929;      difval2 = randint2 % 929;      difval3 = randint3 % 929;      randloc = rand();      randloc = randloc % 80;            randloc2 = rand();      randloc2 = randloc % 80;      if ( randloc2 > randloc)        {	  if (randloc2 - randloc != 1)            {              if ((randloc2 - randloc) % 2 == 0)                {                  randloc3 = (randloc2 - randloc)/2;                }              else                {                  randloc3 = ( 1 + randloc2 - randloc)/2;                }	    }        }      else   // randloc2 < or = randloc1        {          if (randloc2 != 0)	    {	      randloc3 = randloc2 - 1;            }                         else            {	      randloc3 = (randloc + 1) % 929;            }	}      if (randloc == randloc2)	{          randloc = (randloc+ 1)%929;        }      if ( difval > data[randloc])        {                   this_error = difval - data[randloc];	}      else	{	  this_error = data[randloc] - difval;        }      save_val = data[randloc];      data[randloc] = difval;    // cause error at location k      if ( difval2 > data[randloc2])        {                   this_error2 = difval2 - data[randloc2];	}      else	{	  this_error2 = data[randloc2] - difval2;        }      save_val2 = data[randloc2];      data[randloc2] = difval2;    // cause error at location k      save_val3 = data[randloc3];      data[randloc3] = difval3;    // cause error at location k             printf("Data [randloc,randloc2,randloc3] = %d %d %d\n", data[randloc], data[randloc2], data[randloc3] );      syndromes( 144, 32);        eras_dec_rs( data, erase_posit, 0, 144, 32 );            if ( (data[randloc] != save_val) || ( data[randloc2] != save_val2)              || ( data[randloc3] != save_val3 ))        {	  printf(" Error at k = %d data[randloc] = %d save = %d \n", 		 k , data[randloc], save_val );          printf(" Error2 at k = %d data[randloc2] = %d save = %d \n", 		 k , data[randloc2], save_val2 );          printf(" Error3 at k = %d data[randloc3] = %d save = %d \n", 		 k , data[randloc3], save_val3 );        }      data[randloc] = save_val;      data[randloc2] = save_val2;      data[randloc3] = save_val3;    }  for(j =0; j < 64; j += 1)    {      printf("data[%d] =  %d \n", 80 + j, data[80+j]);    }  // three random errors at random locs, error at 76  printf("Begin random quad errors \n");  for ( k = 0 ; k < 100 ; k += 1)    {       randint = rand();       randint2 = rand()+ 17;       randint3 = rand()-12;       randint4 = rand()+74;      randint = randint & 1023;      randint2 = randint2 & 1023;      randint3 = randint3 & 1023;      randint4 = randint4 & 1023;      difval = randint %929;      difval2 = randint2 % 929;      difval3 = randint3 % 929;      difval4 = randint4 % 929;      save_val = data[33];      data[33] = difval;    // cause error at location k      save_val2 = data[34];      data[34] = difval2;    // cause error at location k      save_val3 = data[35];      data[35] = difval3;    // cause error at location k      save_val4 = data[36];      data[36] = difval4;    // cause error at location k      printf("Data [33,34,35,36] = %d %d %d %d\n",       data[33], data[34], data[35], data[36] );      syndromes( 144, 32);        printf("Done with syndromes \n");      eras_dec_rs( data, erase_posit, 0, 144, 32 );            printf("Returned from eras_dec_rs \n");      if ( (data[33] != save_val) || ( data[34] != save_val2)        || ( data[35] != save_val3 ) || ( data[36] != save_val4))        {          			  printf(" Error at k = %d data[33] = %d save = %d \n", 		 k , data[33], save_val );          printf(" Error2 at k = %d data[34] = %d save = %d \n", 		 k , data[34], save_val2 );          printf(" Error3 at k = %d data[35] = %d save = %d \n", 		 k , data[randloc3], save_val3 );          printf(" Error4 at k = %d data[36] = %d save = %d \n", 		 k , data[36], save_val4);        }      data[33] = save_val;      data[34] = save_val2;      data[35] = save_val3;      data[36] = save_val4;    }  codeindex = 80;  generateEC(  data, 80, 128 );  /* do the error correction, 128 */  syndromes( 208, 64);  for (j = 0; j < 208; j += 1)    {      erase_posit[j] = 0;    }  //  printf("Begin random errors for level 6 ecc\n");  for ( k = 0 ; k < 100 ; k += 1)    {      for ( j = 0; j < 64; j += 1)	{	  randin[j] = rand();        }      for ( j = 0; j < 64; j += 1)	{	  randin[j] = randin[j] & 1023;          difvals[j] = randin[j] % 929;        }      for ( j = 0; j < 64; j += 1)        {          savevals[j] = data[13+j];          data[33+j] = difvals[j];        }      syndromes( 208, 64);        printf("Done with syndromes \n");      eras_dec_rs( data, erase_posit, 0, 208, 64 );            printf("Returned from eras_dec_rs \n");      haserror = FALSE;      for ( j = 0; j < 64; j += 1)        {          if ( data[13+j] != savevals[j])            {	      haserror = TRUE;            }        }      if ( haserror == TRUE )              {      			  printf("Error:  Level 6 ecc failed \n");         }         for ( j = 0; j < 64; j += 1)	{	  data[13+j] = savevals[j];        }    }  codeindex = 80;  generateEC(  data, 80, 256 );  /* do the error correction, 256 */  syndromes( 336, 128);  for (j = 0; j < 336; j += 1)    {      erase_posit[j] = 0;    }  //  printf("Begin random  six errors \n");  for ( k = 0 ; k < 100 ; k += 1)    {       randint = rand();       randint2 = rand()+ 17;       randint3 = rand()-12;       randint4 = rand()+74;       randint5 = rand()-11;       randint6 = rand()+12;      randint = randint & 1023;      randint2 = randint2 & 1023;      randint3 = randint3 & 1023;      randint4 = randint4 & 1023;      randint5 = randint5 & 1023;      randint6 = randint6 & 1023;      difval = randint % 929;      difval2 = randint2 % 929;      difval3 = randint3 % 929;      difval4 = randint4 % 929;      difval5 = randint5 % 929;      difval6 = randint6 & 929;      save_val = data[33];      data[33] = difval;    // cause error at location k      save_val2 = data[34];      data[34] = difval2;    // cause error at location k      save_val3 = data[35];      data[35] = difval3;    // cause error at location k      save_val4 = data[36];      data[36] = difval4;    // cause error at location k      save_val5 = data[37];      data[37] = difval5;    // cause error at location k      save_val6 = data[38];      data[38] = difval6;    // cause error at location k      printf("Data [33,34,35,36,37, 38] = %d %d %d %d %d %d\n",       data[33], data[34], data[35], data[36], data[37], data[38] );      syndromes( 336, 128);        printf("Done with syndromes \n");      eras_dec_rs( data, erase_posit, 0, 208, 64 );            printf("Returned from eras_dec_rs \n");      if ( (data[33] != save_val) || ( data[34] != save_val2)        || ( data[35] != save_val3 ) || ( data[36] != save_val4) ||            ( data[37] != save_val5) || ( data[38] != save_val6))        {          			  printf(" Error at k = %d data[33] = %d save = %d \n", 		 k , data[33], save_val );          printf(" Error2 at k = %d data[34] = %d save = %d \n", 		 k , data[34], save_val2 );          printf(" Error3 at k = %d data[35] = %d save = %d \n", 		 k , data[randloc3], save_val3 );          printf(" Error4 at k = %d data[36] = %d save = %d \n", 		 k , data[36], save_val4);          printf(" Error5 at k = %d data[37] = %d save = %d \n", 		 k , data[36], save_val5);          printf(" Error6 at k = %d data[38] = %d save = %d \n", 		 k , data[38], save_val6);        }      data[33] = save_val;      data[34] = save_val2;      data[35] = save_val3;      data[36] = save_val4;      data[37] = save_val5;      data[38] = save_val6;    }  for(j =0; j < 64; j += 1)    {      printf("data[%d] =  %d \n", 80 + j, data[80+j]);    }  /*  data[79] = 80;   data[78] = 924;   data[77] = 0;   data[76] = 9;   data[75] = 334;   data[74] = 508;   data[73] = 496;   data[72] = 900;   data[71] = 840;   data[70] = 182;   data[69] = 858;   data[68] = 877;   data[67] = 924;   data[66] = 248;   data[65] = 44;  data[64] = 50;  data[63] = 62;  data[62] = 572;  data[61] = 16;  data[60] = 683;  data[59] = 304;  data[58] = 781;  data[57] = 321;  data[56] = 17;  data[55] = 71;  data[54] = 175;  data[53] = 89;  data[52] = 365;  data[51] = 0;  data[50] = 594;  data[49] = 844;  data[48] = 351;  data[47] = 720;  data[46] = 163;  data[45] = 128;  data[44] = 227;  data[43] = 810;  data[42] = 552;  data[41] = 349;  data[40] = 422;  data[39] = 462;  data[38] = 861;  data[37] = 733;  data[36] = 80;  data[35] = 681;  data[34] = 553;  data[33] = 501;  data[32] = 669;  data[31] = 0;  data[30] = 439;  data[29] = 484;  data[28] = 888;  data[27] = 103;  data[26] = 349;  data[25] = 133;  data[24] = 113;  data[23] = 116;  data[22] = 757;  data[21] = 221;  data[20] = 781;  data[19] = 645;  data[18] = 562;  data[17] = 333;  data[16] = 16;  data[15] = 134;  data[14] = 279;  data[13] = 497;  data[12] = 660;  data[11] = 371;  data[10] = 110;  data[9] = 857;  data[8] = 319;  data[7] = 593;  data[6] = 370;  data[5] = 700;  data[4] = 488;  data[3] = 30;  data[2] = 147;  data[1] = 900;           data[0] = 900;  generateEC(  data, 80, 64 );   for(j =0; j < 64; j += 1)    {      printf("data[%d] =  %d \n", 80 + j, data[80+j]);    }    */}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -