private async void OnButtonConnectClick(object sender, RoutedEventArgs e)
        {
            int index = listView.SelectedIndex;

            if ((index < 0) || (index >= m_deviceInfos.Count))
            {
                return;
            }

            IDigitalInkDevice device = null;

            m_connectingDeviceInfo = m_deviceInfos[index];

            btnConnect.IsEnabled = false;

            StopScanning();

            try
            {
                device = await InkDeviceFactory.Instance.CreateDeviceAsync(m_connectingDeviceInfo, AppObjects.Instance.AppId, true, false, OnDeviceStatusChanged);
            }
            catch (Exception ex)
            {
                StringBuilder sb     = new StringBuilder($"Device creation failed:\n{ex.Message}");
                string        indent = "  ";
                for (Exception inner = ex.InnerException; inner != null; inner = inner.InnerException)
                {
                    sb.Append($"\n{indent}{inner.Message}");
                    indent = indent + "  ";
                }

                MessageBox.Show(sb.ToString());
            }

            if (device == null)
            {
                m_connectingDeviceInfo = null;
                btnConnect.IsEnabled   = true;
                StartScanning();
                return;
            }

            AppObjects.Instance.DeviceInfo = m_connectingDeviceInfo;
            AppObjects.Instance.Device     = device;
            m_connectingDeviceInfo         = null;

            await AppObjects.SerializeDeviceInfoAsync(AppObjects.Instance.DeviceInfo);

            if (NavigationService.CanGoBack)
            {
                NavigationService.GoBack();
            }
        }
コード例 #2
0
        private async void OnButtonConnectClick(object sender, RoutedEventArgs e)
        {
            int index = listView.SelectedIndex;

            if ((index < 0) || (index >= m_deviceInfos.Count))
            {
                return;
            }

            IDigitalInkDevice device = null;

            m_connectingDeviceInfo = m_deviceInfos[index];

            btnConnect.IsEnabled = false;

            StopScanning();

            SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = AppViewBackButtonVisibility.Collapsed;

            if (m_connectingDeviceInfo != null)
            {
                string msg = $"Initializing connection with device: \"{m_connectingDeviceInfo.DeviceName}\"";

                switch (m_connectingDeviceInfo.TransportProtocol)
                {
                case TransportProtocol.BLE:
                    tbBle.Text = msg;
                    break;

                case TransportProtocol.USB:
                    tbUsb.Text = msg;
                    break;

                case TransportProtocol.BTC:
                    tbBtc.Text = msg;
                    break;
                }
            }

            try
            {
                device = await InkDeviceFactory.Instance.CreateDeviceAsync(m_connectingDeviceInfo, AppObjects.Instance.AppId, true, false, OnDeviceStatusChanged);
            }
            catch (Exception ex)
            {
                string message = $"Device creation failed: {ex.Message}";

                await new MessageDialog(message).ShowAsync();
            }

            if (device == null)
            {
                SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = AppViewBackButtonVisibility.Visible;
                m_connectingDeviceInfo = null;
                btnConnect.IsEnabled   = true;
                StartScanning();
                return;
            }

            AppObjects.Instance.DeviceInfo = m_connectingDeviceInfo;
            AppObjects.Instance.Device     = device;
            m_connectingDeviceInfo         = null;

            await AppObjects.SerializeDeviceInfoAsync(AppObjects.Instance.DeviceInfo);

            if (Frame.CanGoBack)
            {
                Frame.GoBack();
            }
        }