//Catch event from detector if COM is connect or dis connect from pc private void PortsChanged(object sender, PortsChangedArgs e) { if (e.EventType == EventType.Insertion) { if (serialPortMessage == null) { ScanPorts(); } } else { serialPortMessage.EndRead(); var foundFlag = false; foreach (var port in e.SerialPorts) { if (port == serialPortMessage.name) { foundFlag = true; break; } } if (!foundFlag) { serialPortMessage.Dispose(); serialPortMessage = null; } else { serialPortMessage.StartRead(); } } }
private void OnPortsChanged(object sender, PortsChangedArgs e) { switch (e.EventType) { case SerialPortServiceEventType.Insertion: case SerialPortServiceEventType.Removal: Invoke(() => RefreshSerialPorts()); break; default: throw new InvalidOperationException(); } }
private static void SerialPortService_PortsChanged(object sender, PortsChangedArgs e) { if (e.EventType == EventType.Removal && modem != null && !e.SerialPorts.Contains(modem.PortName)) { DeviceRemove = true; Console.WriteLine(string.Format("{0}: Device removed. Please connect device ...", DateTime.Now)); return; } if (e.EventType == EventType.Insertion && DeviceRemove) { System.Diagnostics.Process.Start(System.AppDomain.CurrentDomain.BaseDirectory + "SmsProviderServerService.exe"); Environment.Exit(0); } }
private void SerialPortService_PortsChanged(object sender, PortsChangedArgs e) { try { string[] allPortNames = System.IO.Ports.SerialPort.GetPortNames(); _property = allPortNames.ToList(); this.Dispatcher.Invoke((Action)(() => { comSelect_CmBx.ItemsSource = _property; if (!serialPort.IsOpen) { (openPort_BTN).Background = System.Windows.Media.Brushes.LightGray; (closePort_BTN).Background = System.Windows.Media.Brushes.Red; } })); } catch (Exception ex) { MessageBox.Show("Error In COM Port : " + ex.Message, "ERROR", MessageBoxButton.OK, MessageBoxImage.Error); } }