示例#1
0
        private Windows.Foundation.IAsyncAction OnDeviceRemoved(object sender, UsbDeviceInfo info)
        {
            var dispatcher = this.Dispatcher;
            IAsyncOperation <Windows.UI.Popups.IUICommand> dialogShowAsync = null;
            var uiThreadTasks = dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, new Windows.UI.Core.DispatchedHandler(() =>
            {
                if (this.SerialPortInfo != null)
                {
                    if (this.SerialPortInfo.DeviceId == info.Id)
                    {
                        dialogShowAsync = (new Windows.UI.Popups.MessageDialog(info.Name + " has been removed.")).ShowAsync();
                        this.buttonWriteBulkOut.IsEnabled    = false;
                        this.buttonSendBreak.IsEnabled       = false;
                        this.buttonWriteBinary1.IsEnabled    = false;
                        this.buttonWriteBinary2.IsEnabled    = false;
                        this.textBlockDeviceInUse.Text       = "No device selected.";
                        this.textBlockDeviceInUse.Foreground = new SolidColorBrush(Windows.UI.Colors.OrangeRed);
                    }
                }
            }));

            return(System.Threading.Tasks.Task.Run(async() =>
            {
                await uiThreadTasks;
                if (dialogShowAsync != null)
                {
                    await dialogShowAsync;
                }
            }
                                                   ).AsAsyncAction());
        }
示例#2
0
        private void OnDeviceAdded(object sender, UsbDeviceInfo info)
        {
            var dispatcher = this.Dispatcher;

            ((Action)(async() =>
            {
                await dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, new Windows.UI.Core.DispatchedHandler(() =>
                {
                    this.comboBoxDevices1.Items.Add(new UsbDeviceComboBoxItem(info.Id, info.Name));
                    this.comboBoxDevices2.Items.Add(new UsbDeviceComboBoxItem(info.Id, info.Name));
                    if (this.comboBoxDevices1.SelectedIndex == -1)
                    {
                        if (this.previousSelectedDeviceId1 == info.Id || this.previousSelectedDeviceId1 == "")
                        {
                            this.comboBoxDevices1.SelectedIndex = 0;
                        }
                    }
                    if (this.comboBoxDevices2.SelectedIndex == -1)
                    {
                        if (this.previousSelectedDeviceId2 == info.Id || this.previousSelectedDeviceId2 == "")
                        {
                            this.comboBoxDevices2.SelectedIndex = 0;
                        }
                    }
                }));
            }
                      )).Invoke();
        }
示例#3
0
 private void AddDeviceToComboBox(UsbDeviceInfo info)
 {
     this.comboBoxDevices.Items.Insert(0, new UsbDeviceComboBoxItem(info.Id, info.Name));
     if (this.SerialPortInfo != null && this.SerialPortInfo.DeviceId == info.Id)
     {
         this.comboBoxDevices.SelectedIndex = 0;
     }
     else if (this.comboBoxDevices.SelectedIndex == -1)
     {
         if (this.previousSelectedDeviceId == info.Id || this.previousSelectedDeviceId == "")
         {
             this.comboBoxDevices.SelectedIndex = 0;
         }
     }
 }
示例#4
0
        private Windows.Foundation.IAsyncAction OnDeviceRemoved(object sender, UsbDeviceInfo info)
        {
            var dispatcher = this.Dispatcher;
            IAsyncOperation <Windows.UI.Popups.IUICommand> dialogShowAsync = null;
            var uiThreadTasks = dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, new Windows.UI.Core.DispatchedHandler(() =>
            {
                for (int i = 0; i < this.comboBoxDevices.Items.Count; i++)
                {
                    var item = this.comboBoxDevices.Items[i] as UsbDeviceComboBoxItem;
                    if (item.Id == info.Id)
                    {
                        bool isEnabled = this.comboBoxDevices.IsEnabled;
                        this.comboBoxDevices.IsEnabled = true;
                        this.comboBoxDevices.Items.RemoveAt(i);
                        if (this.SerialPortInfo != null && this.SerialPortInfo.DeviceId == info.Id)
                        {
                            dialogShowAsync = new Windows.UI.Popups.MessageDialog(info.Name + " has been removed.").ShowAsync();
                            this.buttonDeviceDeselect_Click(null, null);
                            if (this.comboBoxDevices.Items.Count > 0)
                            {
                                this.comboBoxDevices.SelectedIndex = 0;
                            }
                        }
                        else
                        {
                            if (this.comboBoxDevices.SelectedIndex == -1)
                            {
                                this.comboBoxDevices.SelectedIndex = 0;
                            }
                            this.comboBoxDevices.IsEnabled = isEnabled;
                        }
                        return;
                    }
                }
            }));

            return(System.Threading.Tasks.Task.Run(async() =>
            {
                await uiThreadTasks;
                if (dialogShowAsync != null)
                {
                    await dialogShowAsync;
                }
            }
                                                   ).AsAsyncAction());
        }
示例#5
0
        private void OnDeviceAdded(object sender, UsbDeviceInfo info)
        {
            var dispatcher = this.Dispatcher;

            if (dispatcher.HasThreadAccess)
            {
                this.AddDeviceToComboBox(info);
            }
            else
            {
                ((Action)(async() =>
                {
                    await dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, new Windows.UI.Core.DispatchedHandler(() =>
                    {
                        this.AddDeviceToComboBox(info);
                    }));
                }
                          )).Invoke();
            }
        }
示例#6
0
        private Windows.Foundation.IAsyncAction OnDeviceRemoved(object sender, UsbDeviceInfo info)
        {
            var dispatcher = this.Dispatcher;

            return(dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, new Windows.UI.Core.DispatchedHandler(async() =>
            {
                var showMessageDialog = false;
                ComboBox[] comboBoxs = { this.comboBoxDevices1, this.comboBoxDevices2 };
                foreach (var comboBoxDevices in comboBoxs)
                {
                    for (int i = 0; i < comboBoxDevices.Items.Count; i++)
                    {
                        var item = comboBoxDevices.Items[i] as UsbDeviceComboBoxItem;
                        if (item.DeviceId == info.Id)
                        {
                            if (this.buttonInitialize.IsEnabled == false && comboBoxDevices.SelectedIndex == i)
                            {
                                showMessageDialog = true;
                                if (this.cancelTokenSrcOpRead != null)
                                {
                                    this.buttonStopLoopback_Click(this, null); // cancel read op if possible.
                                }
                            }
                            comboBoxDevices.Items.RemoveAt(i);
                            if (comboBoxDevices.SelectedIndex == -1 && comboBoxDevices.Items.Count > 0)
                            {
                                comboBoxDevices.SelectedIndex = 0;
                            }
                            break;
                        }
                    }
                }

                if (showMessageDialog)
                {
                    await(new Windows.UI.Popups.MessageDialog(info.Name + " has been removed.")).ShowAsync();
                }
            })));
        }
        private Windows.Foundation.IAsyncAction OnDeviceRemoved(object sender, UsbDeviceInfo info)
        {
            var dispatcher = this.Dispatcher;
            return dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, new Windows.UI.Core.DispatchedHandler(async () =>
            {
                var showMessageDialog = false;
                ComboBox[] comboBoxs = { this.comboBoxDevices1, this.comboBoxDevices2 };
                foreach (var comboBoxDevices in comboBoxs)
                {
                    for (int i = 0; i < comboBoxDevices.Items.Count; i++)
                    {
                        var item = comboBoxDevices.Items[i] as UsbDeviceComboBoxItem;
                        if (item.DeviceId == info.Id)
                        {
                            if (this.buttonInitialize.IsEnabled == false && comboBoxDevices.SelectedIndex == i)
                            {
                                showMessageDialog = true;
                                if (this.cancelTokenSrcOpRead != null)
                                {
                                    this.buttonStopLoopback_Click(this, null); // cancel read op if possible.
                                }
                            }
                            comboBoxDevices.Items.RemoveAt(i);
                            if (comboBoxDevices.SelectedIndex == -1 && comboBoxDevices.Items.Count > 0)
                            {
                                comboBoxDevices.SelectedIndex = 0;
                            }
                            break;
                        }
                    }
                }

                if (showMessageDialog)
                {
                    await (new Windows.UI.Popups.MessageDialog(info.Name + " has been removed.")).ShowAsync();
                }
            }));
        }
 private void OnDeviceAdded(object sender, UsbDeviceInfo info)
 {
     var dispatcher = this.Dispatcher;
     ((Action)(async () =>
     {
         await dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, new Windows.UI.Core.DispatchedHandler(() =>
         {
             this.comboBoxDevices1.Items.Add(new UsbDeviceComboBoxItem(info.Id, info.Name));
             this.comboBoxDevices2.Items.Add(new UsbDeviceComboBoxItem(info.Id, info.Name));
             if (this.comboBoxDevices1.SelectedIndex == -1)
             {
                 if (this.previousSelectedDeviceId1 == info.Id || this.previousSelectedDeviceId1 == "")
                 {
                     this.comboBoxDevices1.SelectedIndex = 0;
                 }
             }
             if (this.comboBoxDevices2.SelectedIndex == -1)
             {
                 if (this.previousSelectedDeviceId2 == info.Id || this.previousSelectedDeviceId2 == "")
                 {
                     this.comboBoxDevices2.SelectedIndex = 0;
                 }
             }
         }));
     }
     )).Invoke();
 }
示例#9
0
 private Windows.Foundation.IAsyncAction OnDeviceRemoved(object sender, UsbDeviceInfo info)
 {
     var dispatcher = this.Dispatcher;
     IAsyncOperation<Windows.UI.Popups.IUICommand> dialogShowAsync = null;
     var uiThreadTasks = dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, new Windows.UI.Core.DispatchedHandler(() =>
     {
         if (this.SerialPortInfo != null && this.SerialPortInfo.DeviceId == info.Id)
         {
             dialogShowAsync = (new Windows.UI.Popups.MessageDialog(info.Name + " has been removed.")).ShowAsync();
             if (this.cancelTokenSrcOpRead != null)
             {
                 this.buttonStopWatching_Click(this, null); // cancel read op if possible.
             }
             this.buttonReadBulkIn.IsEnabled = false;
             this.buttonWatchBulkIn.IsEnabled = false;
             this.buttonStopWatching.IsEnabled = false;
             this.textBlockDeviceInUse.Text = "No device selected.";
             this.textBlockDeviceInUse.Foreground = new SolidColorBrush(Windows.UI.Colors.OrangeRed);
         }
     }));
     return System.Threading.Tasks.Task.Run(async () =>
     {
         await uiThreadTasks;
         if (dialogShowAsync != null)
         {
             await dialogShowAsync;
         }
     }
     ).AsAsyncAction();
 }
示例#10
0
        private void OnDeviceAdded(object sender, UsbDeviceInfo info)
        {

        }
示例#11
0
 private void OnDeviceAdded(object sender, UsbDeviceInfo info)
 {
 }
示例#12
0
 private Windows.Foundation.IAsyncAction OnDeviceRemoved(object sender, UsbDeviceInfo info)
 {
     var dispatcher = this.Dispatcher;
     IAsyncOperation<Windows.UI.Popups.IUICommand> dialogShowAsync = null;
     var uiThreadTasks = dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, new Windows.UI.Core.DispatchedHandler(() =>
     {
         for (int i = 0; i < this.comboBoxDevices.Items.Count; i++)
         {
             var item = this.comboBoxDevices.Items[i] as UsbDeviceComboBoxItem;
             if (item.Id == info.Id)
             {                     
                 bool isEnabled = this.comboBoxDevices.IsEnabled;
                 this.comboBoxDevices.IsEnabled = true;
                 this.comboBoxDevices.Items.RemoveAt(i);
                 if (this.SerialPortInfo != null && this.SerialPortInfo.DeviceId == info.Id)
                 {
                     dialogShowAsync = new Windows.UI.Popups.MessageDialog(info.Name + " has been removed.").ShowAsync();
                     this.buttonDeviceDeselect_Click(null, null);
                     if (this.comboBoxDevices.Items.Count > 0)
                     {
                         this.comboBoxDevices.SelectedIndex = 0;
                     }
                 }
                 else
                 {
                     if (this.comboBoxDevices.SelectedIndex == -1)
                     {
                         this.comboBoxDevices.SelectedIndex = 0;
                     }
                     this.comboBoxDevices.IsEnabled = isEnabled;
                 }
                 return;
             }
         }
     }));
     return System.Threading.Tasks.Task.Run(async () =>
     {
         await uiThreadTasks;
         if (dialogShowAsync != null)
         {
             await dialogShowAsync;
         }
     }
     ).AsAsyncAction();
 }
示例#13
0
 private void AddDeviceToComboBox(UsbDeviceInfo info)
 {
     this.comboBoxDevices.Items.Insert(0, new UsbDeviceComboBoxItem(info.Id, info.Name));
     if (this.SerialPortInfo != null && this.SerialPortInfo.DeviceId == info.Id)
     {
         this.comboBoxDevices.SelectedIndex = 0;
     }
     else if (this.comboBoxDevices.SelectedIndex == -1)
     {
         if (this.previousSelectedDeviceId == info.Id || this.previousSelectedDeviceId == "")
         {
             this.comboBoxDevices.SelectedIndex = 0;
         }
     }
 }
示例#14
0
 private void OnDeviceAdded(object sender, UsbDeviceInfo info)
 {
     var dispatcher = this.Dispatcher;
     if (dispatcher.HasThreadAccess)
     {
         this.AddDeviceToComboBox(info);
     }
     else
     ((Action)(async () =>
     {
         await dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, new Windows.UI.Core.DispatchedHandler(() =>
         {
             this.AddDeviceToComboBox(info);
         }));
     }
     )).Invoke();
 }