Метод SerialPort.GetPortNames () возвращает массив имен COM-портов всех доступных последовательных портов. Вы можете повторить это и попытаться открыть () их. Ожидается сбой, порт может быть уже открыт другой программой.
Вы не хотите отправлять что-то на устройство, которое этого не ожидает. Использование свойства DsrHolding является разумным тестом, чтобы проверить, подключено ли устройство, которое включено.
Твой конечный заклятый враг будет собственностью Бодрата. Вы не можете угадать правильное значение. Последовательные порты слишком примитивны, чтобы поддерживать обнаружение устройств в режиме plug-and-play. Избегайте использования чего-либо, что не может работать надежно, разрешите пользователю настраивать вашу программу с нужными вам настройками. Это нормальная практика.