Example #1
0
        public Task SetMode(Vfo vfo, Mode mode)
        {
            var rm = GetHamlibMode(mode);

            rig.SetMode(rm, rig.PassbandNormal(rm), GetHamlibVfo(vfo));
            return(Task.CompletedTask);
        }
Example #2
0
        public Task SetFrequency(Vfo vfo, Frequency frequency)
        {
            lock (lockObj)
            {
                serialPort.Write($"F{vfoMap[vfo]}{frequency:D11};");

                if (vfo == Vfo.A)
                {
                    freqHzA = frequency;
                }
                else if (vfo == Vfo.B)
                {
                    freqHzB = frequency;
                }
                else
                {
                    throw new NotSupportedException(vfo.ToString());
                }

                while (true)
                {
                    if (ReadFrequencyFromRig(vfo) == frequency)
                    {
                        return(Task.FromResult(true));
                    }
                }
            }
        }
Example #3
0
        private long ReadFrequencyFromRig(Vfo vfo)
        {
            string response;

            lock (lockObj)
            {
                while (true)
                {
                    serialPort.Write($"F{vfoMap[vfo]};");

                    try
                    {
                        response = ReadResponse();
                        break;
                    }
                    catch (TimeoutException)
                    {
                    }
                }
            }

            if (!response.StartsWith($"F{vfoMap[vfo]}") || response.Length != 14 || !response.EndsWith(";"))
            {
                return(0);
            }

            if (!long.TryParse(new String(response.Skip(2).Take(11).ToArray()), out long hz))
            {
                return(0);
            }

            return(hz);
        }
Example #4
0
        public Task <Mode> GetMode(Vfo vfo)
        {
            int hlv = GetHamlibVfo(vfo);

            (RigMode rm, _) = rig.GetMode(hlv);
            var nrm = GetNRigMode(rm);

            return(Task.FromResult(nrm));
        }
Example #5
0
        private int GetHamlibVfo(Vfo nrigVfo)
        {
            return(RigVfo.Current);

            switch (nrigVfo)
            {
            case Vfo.A: return(RigVfo.VfoA);

            case Vfo.B: return(RigVfo.VfoB);
            }

            throw new NotImplementedException();
        }
Example #6
0
        public Task <Frequency> GetFrequency(Vfo vfo)
        {
            switch (vfo)
            {
            case Vfo.A:
                return(Task.FromResult <Frequency>(freqHzA));

            case Vfo.B:
                return(Task.FromResult <Frequency>(freqHzB));
            }

            throw new NotSupportedException(vfo.ToString());
        }
Example #7
0
 public Task SetFrequency(Vfo vfo, Frequency frequency)
 {
     rig.SetFrequency(frequency, GetHamlibVfo(vfo));
     return(Task.CompletedTask);
 }
Example #8
0
 public Task <Frequency> GetFrequency(Vfo vfo) => Task.FromResult(Frequency.Hz(rig.GetFrequency(RigVfo.Current)));
Example #9
0
        //TODO: implement this. There's a very basic demo app here: https://github.com/bjornekelund/Omnirig-Demo

        public Task <Frequency> GetFrequency(Vfo vfo) => throw new NotImplementedException();
Example #10
0
 public Task SetActiveVfo(Vfo bfo) => throw new NotImplementedException();
Example #11
0
 public Task SetActiveVfo(Vfo bfo) => ExecuteWithExceptionHandling(a => hamLibWrapper.SetActiveVfo(a), bfo);
Example #12
0
 public Task SetMode(Vfo vfo, Mode mode) => ExecuteWithExceptionHandling((a, b) => hamLibWrapper.SetMode(a, b), vfo, mode);
Example #13
0
 public Task SetFrequency(Vfo vfo, Frequency frequency) => ExecuteWithExceptionHandling((a, b) => hamLibWrapper.SetFrequency(a, b), vfo, frequency);
Example #14
0
 public Task <Frequency> GetFrequency(Vfo vfo)
 {
     return(hamLibWrapper.GetFrequency(vfo));
 }
Example #15
0
 public Task SetActiveVfo(Vfo vfo)
 {
     rig.SetVFO(GetHamlibVfo(vfo));
     return(Task.CompletedTask);
 }
Example #16
0
 public Task SetMode(Vfo vfo, Mode mode) => throw new NotImplementedException();
Example #17
0
 public Task SetFrequency(Vfo vfo, Frequency frequency) => throw new NotImplementedException();