public bool SetGain(eGainType type, int gain, bool auto = false) { byte[] cmdEnabled = new byte[2]; byte[] cmdGain = new byte[2]; cmdEnabled[0] = 0; cmdGain[1] = (byte)Math.Min(15, Math.Max(0, gain)); switch (type) { case eGainType.IFGain: cmdGain[0] = (byte)eTunerCommand.SetIFGain; break; case eGainType.MixGain: cmdGain[0] = (byte)eTunerCommand.SetMixGain; cmdEnabled[0] = (byte)eTunerCommand.SetMixGainAuto; cmdEnabled[1] = (byte)(auto ? 0x10 : 0x00); break; case eGainType.LNAGain: cmdGain[0] = (byte)eTunerCommand.SetLNAGain; cmdEnabled[0] = (byte)eTunerCommand.SetLNAGainAuto; cmdEnabled[1] = (byte)(auto ? 0x00 : 0x10); break; } if (cmdEnabled[0] != 0) { if (!USBRX.Atmel.TunerCommand(cmdEnabled, null)) { return(false); } Thread.Sleep(1); } if (gain >= 0) { if (!USBRX.Atmel.TunerCommand(cmdGain, null)) { return(false); } } Thread.Sleep(1); return(true); }
public bool SetGain(eGainType type, bool enabled) { return(SetGain(type, -1, enabled)); }