public Task SetMode(Vfo vfo, Mode mode) { var rm = GetHamlibMode(mode); rig.SetMode(rm, rig.PassbandNormal(rm), GetHamlibVfo(vfo)); return(Task.CompletedTask); }
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)); } } } }
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); }
public Task <Mode> GetMode(Vfo vfo) { int hlv = GetHamlibVfo(vfo); (RigMode rm, _) = rig.GetMode(hlv); var nrm = GetNRigMode(rm); return(Task.FromResult(nrm)); }
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(); }
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()); }
public Task SetFrequency(Vfo vfo, Frequency frequency) { rig.SetFrequency(frequency, GetHamlibVfo(vfo)); return(Task.CompletedTask); }
public Task <Frequency> GetFrequency(Vfo vfo) => Task.FromResult(Frequency.Hz(rig.GetFrequency(RigVfo.Current)));
//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();
public Task SetActiveVfo(Vfo bfo) => throw new NotImplementedException();
public Task SetActiveVfo(Vfo bfo) => ExecuteWithExceptionHandling(a => hamLibWrapper.SetActiveVfo(a), bfo);
public Task SetMode(Vfo vfo, Mode mode) => ExecuteWithExceptionHandling((a, b) => hamLibWrapper.SetMode(a, b), vfo, mode);
public Task SetFrequency(Vfo vfo, Frequency frequency) => ExecuteWithExceptionHandling((a, b) => hamLibWrapper.SetFrequency(a, b), vfo, frequency);
public Task <Frequency> GetFrequency(Vfo vfo) { return(hamLibWrapper.GetFrequency(vfo)); }
public Task SetActiveVfo(Vfo vfo) { rig.SetVFO(GetHamlibVfo(vfo)); return(Task.CompletedTask); }
public Task SetMode(Vfo vfo, Mode mode) => throw new NotImplementedException();
public Task SetFrequency(Vfo vfo, Frequency frequency) => throw new NotImplementedException();