private void RefreshPortPairs()
        {
            ObservableCollection <Com0comPortPair> newpairs = Com0comSetup.GetPortPairs();

            //first we need to delete any ports that don't appear in the new list
            foreach (var expair in PortPairs.ToList())
            {
                var newpair = (from p in newpairs where p.PairNumber == expair.PairNumber select p).FirstOrDefault();
                if (newpair == null)
                {
                    expair.StopComms();
                    PortPairs.Remove(expair);
                }
            }

            //next we need to add any new pairs
            foreach (var newpair in newpairs)
            {
                var expair = (from p in PortPairs where p.PairNumber == newpair.PairNumber select p).FirstOrDefault();
                if (expair == null)
                {
                    PortPairs.Add(newpair);
                }
            }
        }
 public MainWindow()
 {
     try
     {
         PortPairs = Com0comSetup.GetPortPairs();
     }
     catch
     {
         MessageBox.Show("Unable to parse com0com ports.  Is com0com installed?");
         Close();
     }
     InitializeComponent();
     cboCommsMode.ItemsSource = Enum.GetValues(typeof(CommsMode));
 }
        private void mnuAddPair_Click(object sender, RoutedEventArgs e)
        {
            PortConfigWindow w = new PortConfigWindow();

            if (w.ShowDialog() ?? false)
            {
                if (Com0comSetup.CreatePortPair(w.Result.PortA))
                {
                    RefreshPortPairs();
                }
                else
                {
                    MessageBox.Show("Failed to create pair - do you have admin?");
                }
            }
        }
Пример #4
0
 public MainWindow()
 {
     try
     {
         PortPairs = Com0comSetup.GetPortPairs();
     }
     catch (Exception e)
     {
         MessageBox.Show("Unable to parse com0com ports.  Is com0com installed?");
         Close();
         throw new Exception("Unable to parse com0com ports.", e);
     }
     InitializeComponent();
     cboCommsMode.ItemsSource = Enum.GetValues(typeof(CommsMode));
     Ini.Default.LoadProperties(this);
 }
        private void mnuRemovePair_Click(object sender, RoutedEventArgs e)
        {
            Com0comPortPair p;

            if ((p = listPorts.SelectedValue as Com0comPortPair) != null)
            {
                if (p.CommsStatus != CommsStatus.Idle)
                {
                    MessageBox.Show("Please stop the comms on this port first");
                    return;
                }
                if (Com0comSetup.DeletePortPair(p.PairNumber))
                {
                    RefreshPortPairs();
                }
                else
                {
                    MessageBox.Show("Failed to remove pair - do you have admin?");
                }
            }
        }
 private void mnuLaunchSetupg_Click(object sender, RoutedEventArgs e)
 {
     Com0comSetup.LaunchSetupg();
 }