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; } }
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); }
void setAGCGain(int gain) { agc_gain = gain; SetRXAAGCTop(CHANNEL_RX, agc_gain); }