private void HeartRateForm_Load(object sender, EventArgs e)
        {
            UpdateLabelFont();
            Hide();

            Size = _settings.UIWindowSize;

            try
            {
                // InitiateDefault is blocking. A better UI would show some type
                // of status during this time, but it's not super important.
                _service.InitiateDefault();
            }
            catch (Exception ex)
            {
                MessageBox.Show(
                    $"Unable to initialize bluetooth service. Exiting.\n{ex.Message}",
                    "Fatal exception",
                    MessageBoxButtons.OK, MessageBoxIcon.Error);

                Environment.Exit(-1);
            }

            _service.HeartRateUpdated += Service_HeartRateUpdated;

            UpdateUI();
        }
Exemple #2
0
        private void WatchdogThread()
        {
            while (!_isDisposed && !_service.IsDisposed)
            {
                var needsRefresh = false;
                lock (_sync)
                {
                    if (_isDisposed)
                    {
                        return;
                    }

                    if (_lastUpdateTimer.Elapsed > _timeout)
                    {
                        needsRefresh = true;
                        _lastUpdateTimer.Restart();
                    }
                }

                if (needsRefresh)
                {
                    Debug.WriteLine("Restarting services...");
                    _service.InitiateDefault();
                }

                Thread.Sleep(10000);
            }

            Debug.WriteLine("Watchdog thread exiting.");
        }