Есть несколько способов подойти к этому.
Наиболее очевидным является то, что вы просто настраиваете свое приложение и указываете, какой последовательный порт использовать. Имя порта никогда не должно меняться, если на вашем компьютере нет других процессов, выделяющих виртуальные COM-порты, такие как драйверы Bluetooth.
Второй вариант - вы можете делать то, что делает приложение Arduino, и сканировать последовательные порты в системе в поисках аппаратного обеспечения. Поскольку вы используете CLR, System.IO.Ports.SerialPort.GetPortNames () предоставит вам список всех последовательных портов в системе. (Вы также можете получить это из реестра.) Затем вы можете перечислить их и проверить состояние выводов, чтобы увидеть, к каким последовательным портам подключены устройства. Вероятно, вы должны включить в свой эскиз способ запроса Arduino, чтобы вы могли отправить ему команду и дать ей фиксированный ответ. Это позволит вам отличать ваше приложение от других последовательных устройств, таких как модемы.
Существует третий вариант, который включает в себя выяснение, где драйвер FTDI хранит информацию о своей конфигурации в системе / реестре и оттуда. Это немного сложнее, поэтому я не могу дать какую-либо информацию о том, является ли этот подход даже жизнеспособным.