Example #1
0
        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);
        }
Example #2
0
 public bool SetGain(eGainType type, bool enabled)
 {
     return(SetGain(type, -1, enabled));
 }