Exemple #1
0
        private void Tick(object state)
        {
            if (ticking)
            {
                return;
            }

            try
            {
                ticking = true;

                var(ctcssEnabled, ctcssTone) = GetCtcssState().Result;
                var(repeaterShiftEnabled, repeaterOffset) = GetRepeaterShiftState().Result;

                var rigStatus = new RigStatus
                {
                    VfoA = new VfoStatus
                    {
                        Frequency = GetFrequency(Vfo.A).Result,
                        Mode      = GetMode(Vfo.A).Result,
                    },
                    Ptt                  = GetPttState().Result,
                    CtcssEnabled         = ctcssEnabled,
                    Ctcss                = ctcssTone,
                    RepeaterShiftEnabled = repeaterShiftEnabled,
                    RepeaterShift        = repeaterOffset,
                };

                ((Action <RigStatus>)state)(rigStatus);
            }
            finally
            {
                ticking = false;
            }
        }
        //private readonly IHttpClientFactory _clientFactory;
        //public RigsController(IHttpClientFactory clientFactory)
        //{
        //    _clientFactory = clientFactory;
        //}

        public IActionResult Index()
        {
            var rigs = new List <RigViewModel>();

            foreach (var rig in APIComm.Rigs)
            {
                RigStatus rigInfo = rig.Value;
                string    rigIP   = rig.Key;

                rigs.Add(
                    new RigViewModel()
                {
                    Address           = rigIP,
                    Description       = rigInfo.RigName,
                    ConnectionAddress = rigInfo.Status.ConnectionAddress,
                    ConnectionStatus  = rigInfo.Status.ConnectionStatus,
                    LastJob           = rigInfo.Status.LastJob,
                    LastShare         = rigInfo.Status.LastShare,
                    Shares            = rigInfo.Status.Shares,
                    Workers           = rigInfo.Status.Workers,
                    //Uptime = TimeSpan.FromHours(1),
                    LastCommunication = rigInfo.LastComm,
                }
                    );
            }

            ViewBag.Rigs = rigs;

            ViewBag.MessageNotAdded = TempData["NotAdded"];
            ViewBag.Added           = (int?)TempData["Added"];
            return(View());
        }
Exemple #3
0
        public void TestEquals_4()
        {
            var rigStatus1 = new RigStatus {
                VfoA = null
            };
            var rigStatus2 = new RigStatus {
                VfoA = new VfoStatus()
            };

            Assert.False(rigStatus1.Equals(rigStatus2));
        }
Exemple #4
0
        public void TestEquals_3()
        {
            var rigStatus1 = new RigStatus {
                VfoA = null
            };
            var rigStatus2 = new RigStatus {
                VfoA = null
            };

            Assert.True(rigStatus1.Equals(rigStatus2));
        }
Exemple #5
0
        public void SetIndicator(RigStatus s, bool working)
        {
            if (LastStatus.HasValue)
            {
                if (LastStatus.Value != s || Working != working)
                {
                    goto SetInd;
                }
                else
                {
                    return;
                }
            }
            else
            {
                goto SetInd;
            }
SetInd:
            var x = LastStatus;

            LastStatus = s;
            switch (s)
            {
            case RigStatus.offline:
            {
                Indicator = Brushes.Red;
                AlarmSwitch(true);
            }
            break;

            case RigStatus.online:
            {
                Indicator = Brushes.Red;
                AlarmSwitch(true);
            }
            break;

            case RigStatus.works:
            {
                if (working)
                {
                    Indicator = Brushes.Lime;
                    AlarmSwitch(false);
                }
                else
                {
                    Indicator = Brushes.Blue;
                    AlarmSwitch(true);
                }
            }
            break;
            }
            Working = working;
        }
Exemple #6
0
        public void TestEquals_6()
        {
            var rigStatus1 = new RigStatus {
                VfoB = new VfoStatus {
                    Frequency = 123.45
                }
            };
            var rigStatus2 = new RigStatus {
                VfoB = new VfoStatus {
                    Frequency = 123.46
                }
            };

            Assert.False(rigStatus1.Equals(rigStatus2));
        }
Exemple #7
0
        public void TestEquals_1()
        {
            var rigStatus1 = new RigStatus {
                VfoA = new VfoStatus {
                    Frequency = 123.45
                }
            };
            var rigStatus2 = new RigStatus {
                VfoA = new VfoStatus {
                    Frequency = 123.45
                }
            };

            Assert.True(rigStatus1.Equals(rigStatus2));
        }
Exemple #8
0
 public void ScanningStart()
 {
     if (Scanning)
     {
         return;
     }
     Scanning = true;
     Task.Run(() =>
     {
         while (App.Live && Scanning)
         {
             if (InternetConnection)
             {
                 GetPing();
                 if (Status == IPStatus.Success)
                 {
                     CurrentStatus = RigStatus.online;
                     if (Config.Waching && !Waching)
                     {
                         Waching = true;
                         WachingStert();
                     }
                 }
                 else
                 {
                     CurrentStatus = RigStatus.offline;
                     if (Config.Waching)
                     {
                         eWeLinkWachdog();
                     }
                 }
             }
             Thread.Sleep(PingCheckDelay * 1000);
         }
     });
 }
Exemple #9
0
        static async Task Main(string[] args)
        {
            Console.WriteLine($"Codebase: {typeof(Program).Assembly.CodeBase.Replace("file:///", "")}");
            HandleHamlib();
            Console.WriteLine($"Managed version: {HamLibWrapper.ManagedVersion}");
            Console.WriteLine($"Native version:  {HamLibWrapper.NativeVersion}");

            var rig = new HamLibWrapper("FT-450", args[0], BaudRate.Baud38400, Handshake.Hardware, 8, 2);

            RigStatus oldStatus = null;
            await rig.BeginRigStatusUpdates(status =>
            {
                lock (lockObj)
                {
                    if (oldStatus == null || !oldStatus.Equals(status))
                    {
                        Console.SetCursorPosition(0, 0);
                        Console.Write(status.VfoA.Frequency.ToString(FrequencyStyle.Yaesu));

                        Console.SetCursorPosition(0, 1);
                        Console.ForegroundColor = status.Ptt ? ConsoleColor.Red : ConsoleColor.Green;
                        Console.Write(status.Ptt ? "TX" : "RX");
                        Console.ResetColor();

                        Console.SetCursorPosition(0, 2);
                        Console.Write($"CTCSS {(status.CtcssEnabled ? "on " : "off")} {status.Ctcss}    ");

                        Console.SetCursorPosition(0, 3);
                        Console.Write($"RPT   {(status.RepeaterShiftEnabled ? "on " : "off")} {status.RepeaterShift}    ");

                        oldStatus = status;
                    }
                }
            }, TimeSpan.FromSeconds(0.1));

            Console.Clear();

            while (true)
            {
                var key = Console.ReadKey(true);
                if (key.Key == ConsoleKey.C)
                {
                    await rig.SetCtcss(Frequency.Hz(114.8));
                }
                else if (key.Key == ConsoleKey.N)
                {
                    await rig.SetCtcss(null);
                }
                else if (key.Key == ConsoleKey.R)
                {
                    await rig.SetRepeaterShift(Frequency.MHz(1.6));
                }
                else if (key.Key == ConsoleKey.S)
                {
                    await rig.SetRepeaterShift(null);
                }
                else if (key.Key == ConsoleKey.P)
                {
                    await rig.SetPttState(!oldStatus.Ptt);
                }
            }
        }