Exemplo n.º 1
0
 static void Main(string[] args)
 {
     using (var ports = new ComPortList())
     {
         WriteLine(Join("\n", ports));
         ports.Subscribe(WriteLine);
         ReadLine();
     }
 }
Exemplo n.º 2
0
        public void SettingsRestore(object settings)
        {
            //Debug.WriteLine("Apply ->" + parentWindow.ConnectionTabHelper.CurrentTabData.TabItem.Title);
            Settings Settings = (Settings)settings;


            if (Array.IndexOf(SerialOptions.DefaultBaudRate, Settings.Baudrate) == -1)
            {
                customBaudrate.value = Settings.Baudrate;
                ComboBox_BaudRate_Refresh();
                this.ComboBox_Baudrate.SelectedIndex = SerialOptions.BaudRateList.Count - 1;
            }
            else
            {
                this.ComboBox_Baudrate.SelectedItem = Settings.Baudrate;
            }

            this.CheckBox_RTS.IsChecked       = Settings.RTSEnable;
            this.CheckBox_DTR.IsChecked       = Settings.DTREnable;
            this.Combo_DataBits.SelectedItem  = Settings.DataBits;
            this.Combo_StopBits.SelectedItem  = Settings.StopBits;
            this.Combo_Parity.SelectedItem    = Settings.Parity;
            this.Combo_Handshake.SelectedItem = Settings.Handshake;

            Task.Factory.StartNew(() => {
                ProcessPortList.WaitOne();
                ComPortItem nextSelect = null;
                Debug.WriteLine(Settings.ComPort, "RESTORE ADV");
                if (Settings.ComPort != -1)
                {
                    bool find = false;
                    //尋找Port是否被移除
                    foreach (ComPortItem k in ComboBox_ComPort.Items)
                    {
                        if (k.ComID == Settings.ComPort)
                        {
                            nextSelect = k;
                            find       = true;
                            break;
                        }
                    }
                    //Port had been removed
                    if (!find)
                    {
                        ComPortItem old = new ComPortItem(Settings.ComPort, null);
                        old.Removed     = true;
                        ComPortList.Add(old);
                        mainWindow.Dispatcher.Invoke(() => { ComboBox_ComPort_Refresh(); });
                        nextSelect = old;
                    }
                }
                mainWindow.Dispatcher.Invoke(() =>
                {
                    ComboBox_ComPort.SelectedItem = nextSelect;
                });
            }, cancellationToken: CancellationToken.None, TaskCreationOptions.DenyChildAttach, TaskScheduler.Default);
        }
Exemplo n.º 3
0
 public void UsedPortAliveCheck()
 {
     foreach (ConnectionTabData data in ComPortUsedTabList)
     {
         SerialHelper serial = ((SerialHelper)data.ConnectionObject);
         if (serial.Connected)
         {
             ComPortItem result = ComPortList.Find(item => (ComIdToString(item.ComID) == serial.SerialPort.PortName) & item.Removed);
             if (result != null)
             {
                 serial.Close();
             }
         }
     }
 }