47 lines
1.2 KiB
C#
47 lines
1.2 KiB
C#
using System.IO.Ports;
|
|
|
|
namespace OMControl
|
|
{
|
|
public partial class Form1 : Form
|
|
{
|
|
private SerialPortWatcher _watcher;
|
|
public Form1()
|
|
{
|
|
InitializeComponent();
|
|
this.Load += Form1_Load;
|
|
|
|
}
|
|
|
|
|
|
private void Form1_Load(object sender, EventArgs e)
|
|
{
|
|
listBoxPorts.Items.Clear();
|
|
foreach (var p in SerialPort.GetPortNames())
|
|
listBoxPorts.Items.Add(p);
|
|
|
|
// start watcher
|
|
_watcher = new SerialPortWatcher(1000);
|
|
|
|
_watcher.PortsAdded += ports => BeginInvoke(() =>
|
|
{
|
|
foreach (var p in ports)
|
|
if (!listBoxPorts.Items.Contains(p))
|
|
listBoxPorts.Items.Add(p);
|
|
});
|
|
|
|
_watcher.PortsRemoved += ports => BeginInvoke(() =>
|
|
{
|
|
foreach (var p in ports)
|
|
listBoxPorts.Items.Remove(p);
|
|
});
|
|
|
|
_watcher.Start();
|
|
}
|
|
protected override void OnFormClosing(FormClosingEventArgs e)
|
|
{
|
|
_watcher?.Dispose();
|
|
base.OnFormClosing(e);
|
|
}
|
|
}
|
|
}
|