https://dl.dropbox.com/u/4295670/logitech%20C510/C510/LED%20AUTO.txt
https://dl.dropbox.com/u/4295670/logitech%20C510/C510/LED%20OFF.txt
https://dl.dropbox.com/u/4295670/logitech%20C510/C510/LED%20ON.txt
Térjünk vissza Linux alá, és toljunk egy
sudo lsusb -v -d 046d:081d | grep -B 5 -A 20 guidEx
parancsot melynek eredményeképpen ki lesznek az Extension controlok listázva:
https://dl.dropbox.com/u/4295670/logitech%20C510/usb_descriptors.txt
Olvassuk el az USB Video Class 1.1 documentation.pdf ide vonatkozó szekcióját (4.2.2.4) innen:
http://www.usb.org/developers/devclass_docs/USB_Video_Class_1_1_090711…
Vagy kérdezzük meg a linux-uvc-devel levelistán.
Mit is látunk tehát:
bRequest = 01 == SET_CUR
wValue = 900 >> 2 == 9 (selector)
wIndex = 802 >> 2 == 8 (bUnitID) esetünkben a GUID-ja {212de5ff-3080-2c4e-82d9-f587d00540bd}
Az ilyen Extension UVC controlok nem szeretnek maguktóltól létrejönni, cserébe van userspace API mivel meg lehet mondani a kernelnek, hogy erre és erre az UVC ext. controlra tapasszon egy V4L2 controlt:
http://www.kernel.org/doc/Documentation/video4linux/uvcvideo.txt UVCIOC_CTRL_MAP ioctl
Ezt általában az uvcdynctrl programmal szokás (libwebcam része). Elvetemültebbek belehardcodolják a mappelést a programnaikba lásd mjpg-streamer.
https://sourceforge.net/p/libwebcam/code/
Ez egy XMl fájlból szopkodja ki a mappeléseket.
Az XML- fájlt elnézve a controlunk GUID-ja szerepel, csak mintha keverednének a bájtok.
A kódot megnézve ez csak optikai csalódás:
#define GUID_ARGS(guid) \
(guid)[3], (guid)[2], (guid)[1], (guid)[0], \
(guid)[5], (guid)[4], \
(guid)[7], (guid)[6], \
(guid)[8], (guid)[9], \
(guid)[10], (guid)[11], (guid)[12], \
(guid)[13], (guid)[14], (guid)[15]
Meg is találom benne a controlt amit keresek: peripheral_led_control_v3, csak V4L2 mapping nincs hozzá felvive.
A map elkészítése után szomorúan konstatálom, hogy ez bizony villogni nem tud mint a QuickCam PRO for Notebook anno.
Kontrolok listázása:
uvcdynctrl -c
Importálás XML-ből:
uvcdynctrl -i ~/logitech.xml
LED állítgatása:
uvcdynctrl -s 'LED1 mode' 0
uvcdynctrl -s 'LED1 mode' 1
Öröm.
Ha valaki hasonlóra vágyik akkor:
https://sourceforge.net/u/martonmiklos/libwebcam/ci/59c631ed80f21879761…
- martonmiklos blogja
- A hozzászóláshoz be kell jelentkezni
- 1149 megtekintés
Hozzászólások
Van már valami 64 bites windows alatt is működő megoldás, mint az usbsnoop? (amúgy grat :) )
- A hozzászóláshoz be kell jelentkezni
Van egy USBLyzer nevű cucc az megy elvileg 64 bit alatt. Fizetős, de 33 napos trial van belőle.
- A hozzászóláshoz be kell jelentkezni