Changeset 4182 for experimental/components/Conv_Enc/Conv_Enc.cpp
- Timestamp:
- 06/14/07 21:31:28 (6 years ago)
- Files:
-
- 1 modified
-
experimental/components/Conv_Enc/Conv_Enc.cpp (modified) (16 diffs)
Legend:
- Unmodified
- Added
- Removed
-
experimental/components/Conv_Enc/Conv_Enc.cpp
r4179 r4182 36 36 inputGeneratorPolynomials[0]=0; 37 37 inputGeneratorPolynomials[1]=0; 38 encoder=new SigProc::fec_conv_encoder ;38 encoder=new SigProc::fec_conv_encoder(); 39 39 configured=false; 40 40 //Create the thread for the writer's processing function … … 52 52 delete []inputGeneratorPolynomials; 53 53 delete trellisTables; 54 delete encoder; 54 55 } 55 56 … … 190 191 (short unsigned int)K); 191 192 192 DEBUG(3, Conv_ Dec, "custom trellis table generated")193 DEBUG(3, Conv_Enc, "custom trellis table generated") 193 194 break; 194 195 case 1: 195 196 //Rate 1, no trellis needed; 196 197 DEBUG(3, Conv_Enc, "Pass through mode") 197 198 break; 198 199 case 2: … … 207 208 (short unsigned int)5, 208 209 (short unsigned int)2); 209 DEBUG(3, Conv_ Dec, "4/5 trellis table generated")210 DEBUG(3, Conv_Enc, "4/5 trellis table generated") 210 211 break; 211 212 case 3: … … 218 219 (short unsigned int)3, 219 220 (short unsigned int)4); 220 DEBUG(3, Conv_ Dec, "2/3 trellis table generated")221 DEBUG(3, Conv_Enc, "2/3 trellis table generated") 221 222 break; 222 223 case 4: … … 228 229 (short unsigned int)2, 229 230 (short unsigned int)7); 230 DEBUG(3, Conv_ Dec, "1/2 trellis table generated")231 DEBUG(3, Conv_Enc, "1/2 trellis table generated") 231 232 break; 232 233 case 5: … … 239 240 (short unsigned int)3, 240 241 (short unsigned int)7); 241 DEBUG(3, Conv_ Dec, "1/3 trellis table generated")242 DEBUG(3, Conv_Enc, "1/3 trellis table generated") 242 243 break; 243 244 case 6: … … 251 252 (short unsigned int)4, 252 253 (short unsigned int)7); 253 DEBUG(3, Conv_ Dec, "1/4 trellis table generated")254 DEBUG(3, Conv_Enc, "1/4 trellis table generated") 254 255 break; 255 256 case 7: … … 265 266 (short unsigned int)5, 266 267 (short unsigned int)7); 267 DEBUG(3, Conv_ Dec, "1/5 trellis table generated")268 DEBUG(3, Conv_Enc, "1/5 trellis table generated") 268 269 break; 269 270 case 8: … … 280 281 (short unsigned int)6, 281 282 (short unsigned int)7); 282 DEBUG(3, Conv_ Dec, "1/6 trellis table generated")283 DEBUG(3, Conv_Enc, "1/6 trellis table generated") 283 284 break; 284 285 case 9: … … 296 297 (short unsigned int)7, 297 298 (short unsigned int)7); 298 DEBUG(3, Conv_ Dec, "1/7 trellis table generated")299 DEBUG(3, Conv_Enc, "1/7 trellis table generated") 299 300 break; 300 301 case 10: … … 312 313 (short unsigned int)8, 313 314 (short unsigned int)7); 314 DEBUG(3, Conv_ Dec, "1/8 trellis table generated")315 DEBUG(3, Conv_Enc, "1/8 trellis table generated") 315 316 break; 316 317 default: … … 321 322 encoder->SetTrellisTable(trellisTables); 322 323 323 DEBUG(4, Conv_ Dec, "the trellis was sent to the encoder")324 DEBUG(4, Conv_Enc, "the trellis was sent to the encoder") 324 325 } 325 326 configured=true; … … 340 341 unsigned short int numberOfBits; 341 342 SigProc::trellisTable *theTrellisTable; 342 theTrellisTable=trellisTables; 343 343 344 344 345 345 346 while(1) 346 347 { 347 348 348 349 dataIn_0->getData(I_in_0); 350 349 351 350 352 if (!configured) throw 0; … … 359 361 I_out_0[i]=(*I_in_0)[i]; 360 362 }; 361 DEBUG(4, Conv_Enc, "Pass through mode, no encoding done")363 DEBUG(4, Conv_Enc, "Pass through mode, no encoding will done") 362 364 }else { 363 365 364 DEBUG(4, Conv_Enc, numberOfBits<<" bits received") 365 noOfSymbols=numberOfBits/theTrellisTable->k; 366 I_out_0.length(noOfSymbols*theTrellisTable->n); 367 DEBUG(6, Conv_Enc, " Output length set to:"<<noOfSymbols*theTrellisTable->n) 368 encoder->ResetState(); 369 DEBUG(6, Conv_Enc, " Encoder state was reset") 370 /*insert code here to do work*/ 371 for (unsigned int i=0;i<noOfSymbols;i++){ 372 for (unsigned int j=0;j<theTrellisTable->k;j++){ 373 data2Enc[j]=(*I_in_0)[i*theTrellisTable->k +j]; 374 } 366 DEBUG(4, Conv_Enc, numberOfBits<<" bits received") 367 theTrellisTable=trellisTables; 368 noOfSymbols=numberOfBits/theTrellisTable->k; 369 I_out_0.length(noOfSymbols*theTrellisTable->n); 370 DEBUG(6, Conv_Enc, " Output length set to:"<<noOfSymbols*theTrellisTable->n) 371 encoder->ResetState(); 372 DEBUG(6, Conv_Enc, " Encoder state was reset") 373 /*insert code here to do work*/ 374 for (unsigned int i=0;i<noOfSymbols;i++){ 375 for (unsigned int j=0;j<theTrellisTable->k;j++){ 376 data2Enc[j]=(*I_in_0)[i*theTrellisTable->k +j]; 377 } 375 378 DEBUG(11, Conv_Enc, i+1<<" symbol to be encoded") 376 encoder->Encode(data2Enc,encData); 379 380 encoder->Encode(data2Enc,encData); 377 381 378 382 for (int j=0;j<theTrellisTable->n;j++){ … … 380 384 I_out_0[i*theTrellisTable->n+j]=tmp; 381 385 } 382 DEBUG(11, Conv_Enc, i+1<<" symbol encoded")383 }384 385 } 386 387 386 DEBUG(11, Conv_Enc, i+1<<" symbol encoded") 387 } 388 389 } 390 391 DEBUG(6, Conv_Enc, "Trying to push packet") 388 392 dataOut_0->pushPacket(I_out_0); 393 394 DEBUG(6, Conv_Enc, "Now trying to empty the buffer") 389 395 dataIn_0->bufferEmptied(); 390 DEBUG(4, Conv_Enc, noOfSymbols*theTrellisTable->n<<" Bits sent to the next component") 396 397 DEBUG(6, Conv_Enc, "buffer emptied") 398 399 if (rate_index!=1){ 400 DEBUG(4, Conv_Enc, noOfSymbols*theTrellisTable->n<<" Bits sent to the next component") 401 402 } else { 403 DEBUG(4, Conv_Enc, numberOfBits<<" Bits sent to the next component") 404 } 391 405 } 392 406 }