Virtual COM

Martin Locker locker na vosrk.cz
Pondělí Březen 11 19:43:16 CET 2019


Děkuji všem za podnětné rady. Už jsem se s tím nějak vypořádal.


Díky 


Martin L.


> 
> Zdravím,
> 
> stejný problém jsem řešil před několika lety. Kromě detekce nově 
> připojených/odpojených zařízení jsem potřeboval zobrazovat uživateli 
> podrobnější informace o COM portu (Výrobce, popis zařízení, typ zařízení 
> - HW COM port, Virtuální, ...).
> 
> Řešil jsem to použitím služby WMI (Windows Management Instrumentation) - 
> ta je standardní součástí systému. Knihovny pro práci s WMI jsou 
> součástí .NETu - namespace System.Management. Pomocí dotazů podobných 
> SQL můžete dostat třeba seznam všech COM portů včetně vlastností, které 
> vidíte v Device Manageru. Kromě toho si můžete vytvořit trigger na 
> určité události - připojení/odpojení COM portu - WMI vytvoří eventu, na 
> kterou můžete jednoduše reagovat ve vašem kódu.
> 
> Já pak pomocí WMI implementoval funkci auto připojení a otevření COM 
> portu - tedy pokud někdo odpojil převodník z počítače a pak byl připojen 
> zpět, aplikace byla schopná automaticky znovu otevřít COM port. 
> Fungovalo to bez ohledu zda-li se změnilo číslo COM portu (koukal jsem 
> na ID zařízení a ne na číslo COM portu).
> 
> Spolehlivě mi to fungovalo pro různorodé zařízení - HW COM porty, 
> virtuální COM porty (FTDI, ), COM0COM, ... což při při práci s registry 
> se říct nedalo...
> 
> Co mi vadilo na WMI tak byl dlouhý start služby a zpracování dotazů 
> trvalo také dost dlouho - velmi to záleží  jaké a jak podrobné informace 
> budete potřebovat.
> 
> Na seznámení s WMI je perfektní aplikace 
> https://archive.codeplex.com/?p=wmie která vám přímo dokáže vytvořit 
> ukázkový kód s dotazem.
> 
> Každopádně doporučuji v aplikaci implementovat funkci, která zavře COM 
> port, jakmile detekujete že zařízení není odpojeno. Po opětovném 
> připojení, bude mít zařízení přidělený stejný COM port (většinou).
> 
> S pozdravem Milan
> 
> Dne 10.3.2019 v 11:47 Martin Locker napsal(a):
> > Zdravím,
> >
> >
> > lze nějak detekovat v aplikaci, resp. ošetřit násilné odpojení USB zařízení (vytažení kabelu), které funguje jako Virtual COM?
> > Zjistil jsem, že v mé aplikaci (C#) to samozřejmě spadne na přístupu k portu, ale co je horší. Ani po připojení zařízení se to nevzpamatuje, v původním usb portu to již není win detekováno. V jiném usb se to ale najde. Fungovat to začne v daném portu až po restartu win7.
> > Tedy:
> > 1. jak to rozumně ošetřit v aplikaci, aby to nespadlo?
> > 2. jak zajistit, aby to windowsy pro opětovném připojení do původního portu detekovaly?
> >
> >
> > Díky za pomoc
> >
> >
> > Martin L.
> >
> >
> >
> >
> >
> > _______________________________________________
> > HW-list mailing list  -  sponsored by www.HW.cz
> > Hw-list na list.hw.cz
> > http://list.hw.cz/mailman/listinfo/hw-list
> 
> 
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list





Další informace o konferenci Hw-list