private void btnStart_Click(object sender, RoutedEventArgs e)
        {
            Com0comPortPair port = listPorts.SelectedValue as Com0comPortPair;

            if (port != null)
            {
                port.StartComms();
            }
        }
Example #2
0
        /// <summary>
        /// Get all com0com Port Pairs currently installed in the system.
        /// </summary>
        /// <returns></returns>
        public static ObservableCollection <Com0comPortPair> GetPortPairs()
        {
            ObservableCollection <Com0comPortPair> ports = new ObservableCollection <Com0comPortPair>();
            //get the output from setupc --detail-prms list
            var proc = new Process
            {
                StartInfo = new ProcessStartInfo
                {
                    FileName               = _com0comSetupc,
                    Arguments              = "--detail-prms list",
                    UseShellExecute        = false,
                    RedirectStandardOutput = true,
                    CreateNoWindow         = true
                }
            };

            proc.Start();
            while (!proc.StandardOutput.EndOfStream)
            {
                string line = proc.StandardOutput.ReadLine();
                //get port number
                Regex regex   = new Regex(@"(?<=CNC[A,B])\d+(?=\s)");
                int   portnum = int.Parse(regex.Match(line).Value);

                Com0comPortPair pair = ports.FirstOrDefault(d => d.PairNumber == portnum);

                if (pair == null)
                {
                    pair = new Com0comPortPair(portnum);
                    ports.Add(pair);
                }
                regex = new Regex(@"(?<=CNC)[A,B](?=\d+\s)");
                string portAB = regex.Match(line).Value;
                if (portAB == "A")
                {
                    pair.PortConfigStringA = line;
                }
                else if (portAB == "B")
                {
                    pair.PortConfigStringB = line;
                }
            }
            return(ports);
        }