2

我的主要目标是能够通过我计算机上的 USB 与 Hercules Dualpix Exchange 网络摄像头对话,以便更好地了解协议及其需求。我做了一些研究,发现这个特定的网络摄像头使用了 OV534 图像处理器,它有自己的 USB 协议。似乎 OV534 使用了 USB 视频类/USB 音频类,这让我觉得这将很容易接口。但实际上恰恰相反...

我已经能够通过 USB 连接到设备并传输一些数据(我可以请求配置),但几乎没有其他任何工作。我现在的目标是打开内部 LED,但即使这样也行不通。我一直在尝试模仿 OV534 模块在 UVC 中的工作方式,但是我的读/写都没有做任何事情(除了超时和没有足够的 bmAttributes)。

有人对我的问题有任何见解吗?我可能没有正确使用 PyUSB,但我一直在尝试以与在此代码中完全相同的方式设置寄存器。我的读/写功能是

def reg_read(dev, reg):
    requestType=(0x01) | (usb.util.CTRL_IN) | (usb.util.CTRL_TYPE_STANDARD)#(0x80)|(0x02 << 5)|(0x01)
    request=0x1
    value=0x0
    index=reg
    byt=20
    timeout=2000

    #ret = dev.ctrl_transfer(requestType, request, value, index, byt, timeout)
    ret = dev.ctrl_transfer(requestType, request, value, index, byt, timeout)
    return ret

def reg_write(dev, reg, data):
    requestType=(0x01) | (usb.util.CTRL_OUT) | (usb.util.CTRL_TYPE_STANDARD) #(0x80)|(0x02 << 5)|(0x01)
    request=0x1
    value=0x0
    index=reg
    dat=data
    timeout=2000

    #ret = dev.ctrl_transfer(requestType, request, value, index, dat, timeout)
    ret = dev.ctrl_transfer(requestType, request, value, index, dat, timeout)
    return ret

作为参考,这是 OV534.c 代码 (http://git.linuxtv.org/pinchartl/uvcvideo.git/blob/fbb4c6d20f29f2b10daad31cc6238d91f93d70d4:/drivers/media/video/gspca/ov534.c)

4

0 回答 0