Webcam watchdog
Jednou bylo potřeba dočasně sledovat určitý prostor kamerou se záznamem. Pořídila se pro tento účel nejobyčejnější bezdrátová kamera značky HQ, která posílala obraz do PC kde běžel skvělý opensource program iSpy, který z obyčejné kamery vymáčkl maximum. Hlídal zóny pohybu, nahrával dění, běžel zaheslovaný v trayi a tvářil se jako internetové rádio.
Kamera ale měla jednu zásadní nevýhodu – její USB přijímač nepravidelně „umíral“. iSpy pak nic nenahrával a bylo to celé k ničemu. Po nějaké chvilce studování problému jsem zjistil, že se DÁ poznat kdy zařízení nefunguje – lze vyčíst ve správci zařízení, a dokonce pokud se kamera jako zařízení zakáže a povolí, tak se vše opět rozeběhne.
To už si přímo říkalo o nějakou automatizaci, ale jak na to?
Existuje samozřejmě zase jedno úžasné udělátko jménem devcon se kterým lze dělat snad cokoliv s jakýmkoliv zařízením přes příkazový řádek. (Už v minulosti jsem s ním řešil „umírající“ WiFi na notebooku přítelkyně. Ta tak měla na ploše baťák, který WiFi zakázal, poslal pár pingů do null a zase WiFi povolil. Dělala to však ručně, pouze pokud se WiFina zasekla a nepomohlo její zapnutí/vypnutí čudlíkem.)
Vznikl tak následující baťák.
@ECHO off :: USB\VID_0C45&PID_6710\5&CF7F6B4&0&2 : Složené zařízení :: USB\VID_0C45&PID_6710&MI_00\6&868363F&0&0000 : Zobrazovací zařízení :: USB\VID_0C45&PID_6710&MI_02\6&868363F&0&0002 : Zvukové zařízení ECHO Test... devcon status "@USB\VID_0C45&PID_6710&MI_00\6&868363F&0&0000" | FIND "running" IF errorlevel 1 GOTO Restart ECHO Working! GOTO End :Restart ECHO Disable... devcon disable "@USB\VID_0C45&PID_6710&MI_00\6&868363F&0&0000" ECHO Wait 10s... ping 127.0.0.1 -n 10 > nul ECHO Enable... devcon enable "@USB\VID_0C45&PID_6710&MI_00\6&868363F&0&0000" ECHO Check... devcon status "@USB\VID_0C45&PID_6710&MI_00\6&868363F&0&0000" | FIND "running" IF errorlevel 1 GOTO Restart ECHO Working! GOTO End :End EXIT
Oukej, máme baťák, kterej když pustíme, tak se zkontroluje stav zařízení a pokud je v chybovém stavu, tak ho restartujeme (zakážeme, počkáme 10 sekund a zase povolíme) co dál? pouštět ho nějak automatizovaně.
Určitě by se našly utilitky, které by to dělaly samy, ale byla to moje první životní příležitost využít k něčemu windowsí naplánované úlohy!
C:WINDOWSsystem32cmd.exe /c "start /min %WINDIR%watchdog.cmd"
Spustit každý den, v 00.01, opakovat každých 10 minut do 23:59. Voilá!