private void UpdateFrequency() { long previousFrequency = 0; OperatingMode previousMode = OperatingMode.Unknown; while (!Disposing && !IsDisposed) { try { long frequency = m_Radio.PrimaryFrequency; OperatingMode mode = m_Radio.PrimaryMode; if (frequency != previousFrequency || mode != previousMode) { // Sanity check: re-read and make sure we get the same values! long checkFrequency = m_Radio.PrimaryFrequency; OperatingMode checkMode = m_Radio.PrimaryMode; if (checkFrequency == frequency && checkMode == mode) { // Updated frequency or mode CATModel model = new CATModel { Frequency = frequency, Mode = mode.ToString(), Timestamp = DateTime.UtcNow, Radio = m_Radio.ToString() }; m_API.PushCAT(model); previousFrequency = frequency; previousMode = mode; } } // Update the UI Invoke(new MethodInvoker(() => { m_Status.Text = "Successfully updated at " + DateTime.Now.ToLongTimeString(); m_Frequency.Text = FormatFrequency(frequency); m_Mode.Text = mode.ToString(); })); } catch (Exception ex) { Invoke(new MethodInvoker(() => { m_Status.Text = ex.Message; })); } Thread.Sleep(1000); } }
public CATCode(string dataFilePath, string drumInitPath = "") { m_Model = new CATModel(IsotopeDataLoader.LoadDataFile(dataFilePath), IsotopeDataLoader.LoadDrumInitFile(drumInitPath)); }