public static double measureBER(String waveform, int messageLength, double snr, boolean averaging)
      throws Exception {
    CLIOptions options = new CLIOptions();

    // Explicitly specify all options
    // to know precisely the test context.
    options.minAmplitude = -10.0;
    options.maxAmplitude = 10.0;
    options.samplesPerBit = 30;
    options.analogSignal = true;
    options.randomMessage = true;
    options.probes = false;
    options.useTransducers = false;
    options.seed = null;
    options.messageLength = messageLength;
    options.messageString = "" + messageLength;
    options.waveform = waveform;
    options.snr = snr;
    options.averagingReceivers = averaging;

    log("Options:" + options);
    Simulateur simulateur = new Simulateur(options);
    simulateur.execute();

    return simulateur.calculTauxErreurBinaire();
  }