www.pudn.com > eval-1.2.zip > eg.c



#include 
#include 
#include 
#include 

#include "read.h"
#include "write.h"
#include "random.h"

static data_t D;

int main(int cn, char **cl)
{
  unsigned BER, PoB, model;

  if (cn < 5) {
    puts("usage: eg     [BER] [PoB]");
    puts("       tcpdump sender");
    puts("       tcpdump receiver (will be generated)");
    puts("       tracefile sender");
    puts("    AWGN or GE");
    puts("  [BER]    reciprocal Bit Error Rate (1000 -> 0.001)");
    puts("  [PoB]    Play-out buffer [ms]");
    return 0;
  }

  BER = (cn > 5) ? strtoul(cl[5], 0, 10) : 0;
  if (BER < 10 || BER > 10000000) {
    BER = 10000;
    fprintf(stderr, "BER set to %g.\n", 1. / BER);
  }

  if (!strcmp(cl[4], "AWGN")) model = 0; else
  if (!strcmp(cl[4], "GE"))   model = 1;
  else {
    fprintf(stderr, "unknown error model");
    return EXIT_FAILURE;
  }

  PoB = (cn > 6) ? strtoul(cl[6], 0, 10) : 0;
  if (PoB < 10 || PoB > 10000) {
    PoB = 250;
    fprintf(stderr, "Play-out buffer set to %u ms.\n", PoB);
  }

  init_rand();

  if (!ReadDump(cl, &D, 2, 0) || !GenRD_Std(cl[2], D.P, D.nP, model, BER, PoB)) return EXIT_FAILURE;

  free(D.P);
  free(D.F);

  return 0;
}