/// <summary>
 /// Device Connection screen raised a Disconnect signal
 /// </summary>
 private void SaleConnectionControl_Disconnect()
 {
     ChangeMode(UiMode.Device);
     ClearUiMessage();
     clover.Disconnect();
     SaleConnectionControl.SetConnectionState(false, false);
 }
        private void Clover_ConnectionState(bool connected, bool ready)
        {
            // Clover notifications happen on background threads, invoke a call on the ui thread
            if (InvokeRequired)
            {
                BeginInvoke((Action <bool, bool>)Clover_ConnectionState, connected, ready);
            }
            else
            {
                // TODO: UI Icons for the states - Wingdings?
                Debug.WriteLine($"connected: {connected}, ready: {ready}");

                SaleConnectionControl.SetConnectionState(connected, ready);

                if (connected && !ready)
                {
                    DisplayUiMessage("Connected, initializing...");
                    Cursor = Cursors.Default;
                }
                else if (ready)
                {
                    ClearUiMessage();
                    Cursor = Cursors.Default;

                    if (!SaleConnectionControl.Visible)
                    {
                        ChangeMode(UiMode.Sale);
                    }
                }

                if (!connected && !SaleConnectionControl.Visible)
                {
                    messageTimer.Stop();
                    DisplayUiMessage("Device Disconnected");
                    messageTimer.Interval = 5000;
                    messageTimer.Start();
                }
            }
        }