Есть программа, которая передает на Ардуино данные через COM-порт. Сейчас выбор порта реализован через
SerialPort.GetPortNames()
и последующий выбор порта из списка. Есть ли возможность сделать автоопредение порта (каким-то образом определить устройства, подключенные к этим портам)?
Нарыл вот такой код
private string autodetectArduinoPort()
{
string query = "SELECT * FROM Win32_SerialPort";
ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);
try
{
foreach (ManagementObject item in searcher.Get())
{
string desc = item["Description"].ToString();
string deviceId = item["DeviceID"].ToString();
MessageBox.Show(desc);
if (desc.Contains("arduino"))
{
return deviceId;
}
}
}
catch (ManagementException)
{
}
return null;
}
Но размер массива из
searcher.Get()
равен 0. Ардуино подключена в этот момент, активный COM-порт есть.