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á!

mikrom

Roman Mikulka aka mikrom. Ajťák, opravář, programátor samouk, elektrotechnik, koloběžkář a geocacher. Více na samostatné stránce O mně.

Mohlo by se vám líbit...