Aiuto Arduino e Visual Studio

Io ho trovato due soluzioni: una sfrutta una stringa identificativa, l'altra il registry.

La prima soluzione funziona più o meno così: l'Arduino emette una particolare stringa una volta al secondo sulla seriale, e rimane in quello stato finché non riceve un comando di acknowledge dal PC. Il programma sul PC si mette in ascolto a turno su tutte le porte seriali (in VB.net puoi usare my.computer.ports o qualcosa del genere), ed attende la stringa. Se dopo un certo tempo (ad esempio 2 secondi) non arriva nulla o arriva qualcosa di diverso da quanto atteso, marca quella porta come non valida e passa alla successiva. Se invece riceve la stringa attesa, manda l'ack e inizia la comunicazione su quella porta.

L'altra soluzione va a leggere il registry di windows alla ricerca di prote seriali con un identificativo particolare... La chiave mi pare sia HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM, e le porte "generate" da Arduino contengono la stringa VCP. Ogni secondo vado a leggere l'elenco delle porte sotto quella chiave, e se mi accorgo che ne è comparsa una che contiene VCP nel nome, decido che quello è l'arduino.

Le due tecniche si possono ovviamente combinare: identifciazione di una nuova porta seriale che con ogni probabilità è associata ad un arduino + attesa della stringa identificativa proprio da quella porta.