Zdravím,
převzali naprosto zpackaný systém pro fitness centrum, kde se využívá hardware od nejmenovaného ne moc dobrého a spolehlivého dodavatele pro turnikety a skříňky. S dodavatelem jsme se několikrát bavili, je to akorát banda vychcánků, co převzali nějaký historický produkt, kterému nerozumí a pak ho nabízí dál. Spoustu věcí v systému se nám podařilo napravit, nicméně jedna stále přetrvává a je dost otravná, jak pro nás tak pro zaměstnance fitness centra, potažmo jejich zákazníky.
Do serverovny vedou USB kabely ze zařízení do převodníků, které umožní přenášet data po síti, aby se dostaly na server. Na serveru běží driver FTDI, který to převádí zase na COM zařízení. Na serveru(Windows) mají COM zařízení vlastní číslo ve specifickém pořadí(COM10, 11 ... ). Na jedné lince se komunikuje s vícero zařízeními najednou, kdy se na sběrnici zasílá adresa + nějaká instrukce.
Jádro problému nastává, když ve fitku je krátkodobý výpadek proudu či jakýkoliv způsobem nastane, že se zařízení vyrestartuje a na serveru se následně přehází čísla COMů. Obslužný software pak prostě neběží, protože má nakonfigurované specifické COM porty a nekomunikuje tak se správným zařízením. Server je napojený na UPS, nicméně turnikety, převodníky nikoliv.. Aktuálně se to řeší prostě tak, že recepce všechny kabely vypojí a pak je zapojuje ve správném pořadí, což je fakt neskutečná otrava, ještě když je tam třeba z recepce někdo nový a třeba nemá přístup do serverovny.
Ideální by bylo, pokud by se mi nějak podařilo zařízení identifikovat a následně obslužný software za běhu překonfigurovat na právě platný COM port. Bohužel pokud vyhledám HardwareID ve vlastnostech COMu ve správci zařízení, tak je u každého nějaké generické ID vytvořeno FTDI driverem(FTDIBUS\COMPORT&VID_0403&PID_6001) .. Jediná hodnota kterou jsem u všech COMů našel a trochu se liší je "Physical device object name" - nevím však jestli mi to nějak pomůže ..
Rád bych se tedy zeptal zdejších lidí, pokud má někdo zkušenosti s FTDI, jestli je něco takového řešitelné a jde se nějak dostat k tomu, aby se COM port dal nějak jednoznačně identifikovat?
Čistě teoreticky mě pak napadlo ještě řešení, kdy bych se snažil komunikovat s koncovými zařízeními na každém COM portu a následně z toho vydedukoval, které je které podle toho, jestli by něco odpovídalo nebo nikoliv. Je to takové trochu přes koleno, ale asi by to jako poslední možnost šlo.
Předej děkuji za jakoukoliv odpověď.