Example #1
0
        private void CheckForNewPortsAsync()
        {
            IEnumerable <string> ports = SerialPort.GetPortNames().OrderBy(s => s);

            int length = ComPorts.Count;

            for (var i = 0; i < length; i++)
            {
                var comPort = ComPorts[i];
                if (!ports.Contains(comPort))
                {
                    var args = new SerialPortNameEventArgs();
                    args.SerialPortName = comPort;
                    UpdateSerialPostEvent(this, args);
                    ComPorts.Remove(comPort);
                }
            }

            foreach (var port in ports)
            {
                if (!ComPorts.Contains(port))
                {
                    AddPort(port);
                }
            }
        }
Example #2
0
        private void AddPort(string port)
        {
            if (ComPorts.Count == 0)
            {
                ComPorts.Add(port);
                var args = new SerialPortNameEventArgs();
                args.SerialPortName = port;
                UpdateSerialPostEvent(this, args);
                return;
            }

            for (int j = 0; j < ComPorts.Count; j++)
            {
                if (port.CompareTo(ComPorts[j]) < 0)
                {
                    ComPorts.Insert(j, port);
                    var args = new SerialPortNameEventArgs();
                    args.SerialPortName = port;
                    UpdateSerialPostEvent(this, args);
                    break;
                }
            }
        }