Se collego un qualsiasi cavo adattatore seriale ad una USB in automatico Windows gli assegna una COM per gestire l'hw che ho collegato.
In impostazioni avanzate del driver ho la possibilità di cambiare COM volendo. Ho notato però che a parte la COM1 e COM2 che sarebbero hw della M/B ho la COM3 in uso e così via fino la COM8. 🙁
Questo potrebbe essere dovuto dal fatto che ho collegato diverse tipologie di cavi, C-H340, CP210x, Silicon labs, Prolific, etc, casomai a volte inserendo il cavo nella porta USB sul frontale e a volte su una delle porte della schiena del desktop.
Quindi suppongo che lo stesso driver sia stato installano almeno un paio di volte, una riservando una COM per la porta anteriore e una riservando un'altra COM per la porta posteriore.
Chiedevo quindi se esiste qualche tool di Windows che mi visualizza l'impegno di queste porte COM facendomi un riassunto delle COM in uso, dicendomi quale driver e quale porta è stata assegnata la COM3, così per la COM4 e così via fino alla COM8.
Sarebbe utile avere uno schema di questo tipo, altrimenti tutte le volte è abbastanza un inferno ricordarsi su quale porta connettere il cavo e quale COM gli è stata associata. Si può visualizzarlo da "Gestione dispositivi", ma sarebbe meglio avere uno schema preciso in modo di non cambiare poi le impostazioni del programma che si utilizza per comunicare con la COM.

Nel registro ho trovato una chiave:
Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\COM Name Arbiter\Devices
Qui dentro ho varie COM con valori tipo:
\?\usb#vid_067b&pid_2303#6&178d6e23&0&1#{86e0d1e0-8089-11d0-9ce4-08003e301f73}
\?\usb#vid_067b&pid_2303#6&178d6e23&0&2#{86e0d1e0-8089-11d0-9ce4-08003e301f73}
\?\usb#vid_067b&pid_2303#5&b35963a&0&1#{86e0d1e0-8089-11d0-9ce4-08003e301f73}

Presumo che i primi due usino lo stesso driver per due USB diverse, &1 e &2 mentre il terzo usi un driver diverso per la porta &1.

Da questi codici si riesce a stabilire quale driver è installato sul PC ed eventualmente eliminarlo?

Con USB Device Tree Viewer puoi vedere uno schema dettagliato delle porte USB e cosa vi è collegato, mentre per cambiare driver puoi usare Zadig o libusb-win32.

A me questi sono tornati utili per far comunicare un UPS con NUT (Network UPS Tools), pensato per Linux ma è stato portato anche su Windows.

    Capita che Windows, nella finestra di impostazioni avanzate della porta seriale, ti dica che alcune porte siano "in uso", in realtà non lo sono, a meno che effettivamente l'adattatore USB/seriale non sia connesso. Infatti se provi a forzare l'uso di una COM dichiarata "in uso", ma che sei sicuro che non ha associato nessun adattatore, vedrai che funzionerà correttamente.
    Ad esempio a me adesso segnala COM10 e COM11 in uso, ma non è vero. Sono "assegnate" ad un adattatore Bluetooth che è scollegato. Se vado nell'elenco dei dispositivi, dal menu scelgo di vedere anche quelli "nascosti" e disinstallo il driver, poi quelle COM non me le dà più in "uso".
    Poi per mia personale esperienza, i driver tendono ad assegnare sempre la stessa COM allo stesso adattatore, indipendentemente da dove sono collegati.
    Comunque il tool che cerchi è praticamente già quello di Windows (il Gestione dispositivi), ti riporta il nome dell'adattatore e la COM associata.

      beastlukas Con USB Device Tree Viewer puoi vedere uno schema dettagliato delle porte USB e cosa vi è collegato, mentre per cambiare driver puoi usare Zadig o libusb-win32.

      Bello, ma questo fa vedere tutte le porte USB, non solo le seriali. Comunque è già utile per capire il marasma presente. 😉

      johndoe Capita che Windows, nella finestra di impostazioni avanzate della porta seriale, ti dica che alcune porte siano "in uso", in realtà non lo sono, a meno che effettivamente l'adattatore USB/seriale non sia connesso. Infatti se provi a forzare l'uso di una COM dichiarata "in uso", ma che sei sicuro che non ha associato nessun adattatore, vedrai che funzionerà correttamente.

      Ne sono consapevole, ma per evitare conflitti preferisco non usare porte già in uso perché non ho la sicurezza che vengano impiegate connessioni seriali una alla volta, quindi se poi casualmente ne uso due faccio la frittatona! 😉

      johndoe Comunque il tool che cerchi è praticamente già quello di Windows (il Gestione dispositivi), ti riporta il nome dell'adattatore e la COM associata.

      Già lo utilizzo, però questo si vede solo con i dispositivi collegati; grazie al tuo consiglio di mostrare i dispositivi nascosti diventa già più friendly. 😉
      Grazie.

      • johndoe ha risposto a questo messaggio

        xagefaw Ne sono consapevole, ma per evitare conflitti preferisco non usare porte già in uso perché non ho la sicurezza che vengano impiegate connessioni seriali una alla volta, quindi se poi casualmente ne uso due faccio la frittatona!

        Non è possibile aprire (a livello software) contemporaneamente più volte la stessa COM, il sistema operativo non te lo permette. L'uso è esclusivo, la funzione CreateFile("COMx", ...) ti dà errore.

        • xagefaw ha risposto a questo messaggio

          johndoe
          Questo è chiaro, obbliga però a settare la seconda inserita con un altra COM e impostare il programma che la utilizza ad operare sulla COM impostata. Quindi l'utilizzo diventa più complesso, non puoi semplicemente far partire il programma che utilizza la COM, devi provvedere sempre a settare qualcosa se utilizzi sempre gli stessi numeri di COM. L'obiettivo sarebbe quello di rendere tutto molto più statico. Riuscire ad utilizzarlo cambiando le configurazioni va bene per me o per chiunque capisca cosa sta succedendo, non per lasciare il tutto ad una persona che non sa neppure cosa sia una COM! 😉

          Ma tu hai il controllo del codice sorgente del programma che stai utilizzando?
          Perché in tal caso potresti selezionare la COM non in base al suo numero, ma in base al nome dell'adattatore che crea la COM virtuale (o in base ad altri dati che mette a disposizione come dispositivo USB).

          Informativa privacy - Informativa cookie - Termini e condizioni - Regolamento - Disclaimer - 🏳️‍🌈
          P.I. IT16712091004 - info@fibraclick.it

          ♻️ Il server di questo sito è alimentato al 100% con energia rinnovabile