示例#1
0
文件: radio.c 项目: pa3gsb/RadioBerry
void set_agc(int rx, int agc_mode) {
  SetRXAAGCMode(rx, agc_mode);
  SetRXAAGCSlope(rx,agc_slope);
  SetRXAAGCTop(rx,agc_gain);
  switch(agc_mode) {
    case AGC_OFF:
      break;
    case AGC_LONG:
      SetRXAAGCAttack(rx,2);
      SetRXAAGCHang(rx,2000);
      SetRXAAGCDecay(rx,2000);
      SetRXAAGCHangThreshold(rx,(int)agc_hang_threshold);
      break;
    case AGC_SLOW:
      SetRXAAGCAttack(rx,2);
      SetRXAAGCHang(rx,1000);
      SetRXAAGCDecay(rx,500);
      SetRXAAGCHangThreshold(rx,(int)agc_hang_threshold);
      break;
    case AGC_MEDIUM:
      SetRXAAGCAttack(rx,2);
      SetRXAAGCHang(rx,0);
      SetRXAAGCDecay(rx,250);
      SetRXAAGCHangThreshold(rx,100);
      break;
    case AGC_FAST:
      SetRXAAGCAttack(rx,2);
      SetRXAAGCHang(rx,0);
      SetRXAAGCDecay(rx,50);
      SetRXAAGCHangThreshold(rx,100);
      break;
  }
}
示例#2
0
void sim_agc_cb(GtkWidget *widget, gpointer data) {
  fprintf(stderr,"sim_agc_cb\n");
  if(function) {
    agc--;
    if(agc<0) {
      agc=3;
    }
  } else {
    agc++;
    if(agc>=4) {
      agc=0;
    }
  }
  SetRXAAGCMode(CHANNEL_RX0, agc);
  vfo_update(NULL);
}
示例#3
0
static void setupRX(int rx) {
    setRXMode(rx,mode);
    SetRXABandpassFreqs(rx, (double)filterLow, (double)filterHigh);
    SetRXAAGCMode(rx, agc);
    SetRXAAGCTop(rx,agc_gain);

    SetRXAAMDSBMode(rx, 0);
    SetRXAShiftRun(rx, 0);

    SetRXAEMNRPosition(rx, nr_agc);
    SetRXAEMNRgainMethod(rx, nr2_gain_method);
    SetRXAEMNRnpeMethod(rx, nr2_npe_method);
    SetRXAEMNRRun(rx, nr2);
    SetRXAEMNRaeRun(rx, nr2_ae);

    SetRXAANRVals(rx, 64, 16, 16e-4, 10e-7); // defaults
    SetRXAANRRun(rx, nr);
    SetRXAANFRun(rx, anf);
    SetRXASNBARun(rx, snb);
}
示例#4
0
static void agc_select_cb(GtkWidget *widget, gpointer data) {
  agc=(int)data;
  SetRXAAGCMode(CHANNEL_RX0, agc);
}