USB se takhle nechová, tam se předává nějaké device ID. COM se takhle chová - každý port má vlastní fixní číslo - UART protokol nemá jak poznat, co se vlastně připojilo, takže těžko bude fungovat stylem "já, to je ta kamera, tak to bude COM4". Co fyzický port to jiné COM číslo.
Co to celé zhorší, je virtuální COM po USB kabelu (všechna ta Arduina apod.) USB ovladač zjistí, že se mu připojilo něco, co chce komunikovat po COM. Tak si od Windows nechá vygenerovat číslo virtuálního COM portu a na tom pak funguje. Když to zařízení pak připojíte do jiného USB portu, tak se generuje nové číslo COM portu. Problém je, že občas si to prostě nechá vygenerovat nové i na tom samém portu a to se pak divíte, že ještě včera to na COM11 normálně komunikovalo a dneska to sedí na COM7.
U nás jsme to chvíli řešili tím, že jsme přímo pro daný USB port nastavovali fixní číslo COM portu. Takže to nebylo náhodné a pamatovalo si to. Jenže i tak byl problém když to někdo připojil do jiného USB portu. Sice jsme nakonec skončili u toho, že jsme do PC na linkách nakoupili karty s COM porty a jedeme "nativně", ale i tak se občas stane, že technik prohodí kabely od barcode readeru a kamery a pak se diví, že "to nečte".