@OlexStor
Студент-технарь

Как определить устройства, подключенные к COM портам, через С#?

Есть программа, которая передает на Ардуино данные через 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-порт есть.
  • Вопрос задан
  • 2489 просмотров
Решения вопроса 1
DarkRaven
@DarkRaven
разработка программного обеспечения
Пригласить эксперта
Ответы на вопрос 1
@GoldGoblin
как вариант стучатся в каждый свободный порт и спрашивать ты кто? (требуется изменить прошивку ардуины) Я обычно делаю так.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы