问题标签 [libusbk]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
153 浏览

c++ - 使用函数 UsbK_IsoReadPipe 时未填充 LibsUsbK 缓冲区

我正在尝试编写一些代码以在 Win32 中使用 LibUsbK 从等时管道中读取。我已成功将设备初始化为正确的状态以发送和接收同步数据,并且我可以在我的硬件 USB 分析器中看到通过 USB 发送的数据,但是即使分析器显示有数据,我收到的缓冲区也总是未填充在发送到 PC 的数据包中。

我是 LibUsbK 的新手并使用同步传输,虽然我对 USB 并不陌生,但我一直在努力解决这个问题。

我用来从设备读取的代码是这样的......

如果我在 fwrite 行放置一个断点,那么 inBuffer 总是充满 0xCC - 即,没有被 iso 读取填充。

我检查了来自 UsbK/OvlK 函数调用的所有错误返回值,它们都是应有的。我已经检查过我的缓冲区足够大以接收数据。

我使用非常相似的代码写入端点 0x02 上的 ISO 输出管道,并且效果很好,上面的代码和我的写入代码之间的唯一区别是 fwrite/memset 命令被替换为对“fillbuffer”函数的调用在调用 UsbK_IsoWritePipe 函数之前填充我的 outBuffer。

我尝试查看可以在示例和在线中找到的任何示例,但很难理解/让它们与我的特定设备一起使用。

非常感谢任何建议或帮助。

0 投票
0 回答
1031 浏览

c# - LibUsbDotNet Win32Error:错误代码 87

我的 USB 设备有问题。我正在用 C# 开发一个与该设备通信的应用程序。为了进行这种交流,我使用了 LibUsbDotNet 库。问题如下,我的通信在我公司的许多计算机上都能正常工作。但是还有其他一些(直到现在有两台计算机)它就是行不通的。在这些中,当我尝试写入设备时,它给了我一个 Win32Error:错误代码 87(无效参数)。奇怪的是,我使用的驱动程序与我在其他计算机中使用的驱动程序相同。他们甚至使用相同的操作系统(Windows 8)。我使用随 UsbK 开发工具包提供的“驱动程序安装创建者向导”创建的这个驱动程序。我使用 UsbK 创建驱动程序,因为他们使用更新版本的 libusb 驱动程序。我有其他设备也做过同样的事情,它们都工作正常,只是这个让我很头疼。研究这个问题,我找到了 Usblyzer 软件。运行它并分析我的设备插入PC时的信息,我看到有问题的计算机中打开的管道数为0。在一切正常的情况下,是 3。这与问题有关吗?知道如何解决吗?

下面是我用来重现问题的小代码。原始应用程序非常大。

0 投票
1 回答
720 浏览

windows - WebUSB 和 Windows 驱动程序

我想在 Windows 上将 WebUSB 与 libusbK 一起使用。

看起来 WebUSB 仅适用于 WinUSB 驱动程序。我无法让它与 libusbK 一起工作。
我搜索了一份详细的论文,但找不到任何东西。我在https://wicg.github.io/webusb/
上没有看到任何关于此的信息

是否可以在 Windows 上将 WebUSB 与 libusbK 一起使用?

我有 FTDI FT232H 芯片,我使用 libusbK 驱动程序。
下面是代码

Chrome 会打开一个弹出窗口,其中包含不存在的设备,但我的设备不在列表中。我通过 Zadig 将驱动程序重新安装到 WinUSb。重新启动计算机。开始我的代码。我在列表中看到我的设备。

WebUSB 是否仅适用于 WinUSB 驱动程序(在 Windows 上)?

0 投票
0 回答
38 浏览

c++ - libusbK 微帧 OvlK_Wait

我正在为延迟关键应用程序中的 USB 同步设备实现驱动程序。对于我的测试,我使用的是 Cypress FX3 套件(USBIsoSourceSink 示例)。端点设置为在 bInterval 1 提供数据(每 125 微帧传输一次 ~= 8kHz)。

我的数据包非常小(32bytes/pck)。我允许 8 个包裹 pr 转移。现在,我尝试演示 8kHz 传输速率以实现 125 微秒的传输延迟。对于 IN 端点,我的方法是:我有一个包含 4 个传输对象的向量,每个对象都有一个KOVL_HANDLE handle和一个KISO_CONTEXT*上下文:

OvlK_ReUse(xfer.overlapHandle)我通过和提交所有 4 次转账

UsbK_IsoReadPipe( usbHandle, pipeID_IN, xfer.buffer, sizeof(xfer.buffer), (LPOVERLAPPED)xfer.overlapHandle, xfer.isoCtx);

当程序运行时,我指向提示中的一个转移,并且OvlK_Wait(xferINiter->overlapHandle, 100, KOVL_WAIT_FLAG_RELEASE_ON_TIMEOUT, &transferred);.

然后我处理(保存)来自传输的数据并重新提交它(OvlK_ReUseUsbK_IsoReadPipe),然后再指向提示中的下一个传输,环绕。

这一切似乎都奏效了。我的问题是我每秒处理 1000 次传输,而我期望 8k。似乎我只得到 1ms 帧而不是微帧。每次传输我可以轻松获得更多包,但我的应用程序对延迟至关重要。

我究竟做错了什么?libusbK 是否有只能处理 1ms 帧的限制?

0 投票
0 回答
150 浏览

c# - 是否有使用 libusbk C# 绑定的指南?

我对 C# 有点陌生,我决定尝试一下,因为我听说它类似于 Java,对于我的第一个项目,我决定看看 libusbk 的 C# 绑定。

经过反复试验,我找到了我的设备并能够读写数据,唯一的问题是它只能让我发送一次数据。我需要发送 197272 字节的数据,但我一次只能发送 4096 字节,并且由于某种原因,它只能通过一次写入成功,而在下一次写入失败。

这是我的代码,它非常基本,但我只是在试验。

输出如上所述,第一次写入成功,下一次写入失败。我主要关注的是如何使用此绑定的书面指南,开发工具包中的示例并未解释如何使用它。任何帮助将不胜感激。

0 投票
0 回答
31 浏览

pyusb - ubuntu 上的 Pyusb 无法设置 dev.read 函数的大 size_of_buffer

我在 Windows 上测试 pyusb dev.read 函数并在我的设备上使用 LibusbK 驱动程序。 http://libusbk.sourceforge.net/UsbK3/index.html

缓冲区 - dev.read(0x11,buffer_size,0) - 如果我将 buffer_size 设置为超过 17 mb buffer_size = 1024 32 30*300(300mb 或更多) ,则将无错误的数据检索到我的缓冲区

但是在 Ubuntu 20.04 上,如果我将大缓冲区设置为超过 17 Mb <=> buffer_size = 1024 32 30*(17) 我使用 libusb-1.0 后端,则会出现错误。

18 Traceback(最近一次调用最后):文件“readusb.py”,第 14 行,在 usbtest.readusb(mbsize) 文件“/home/user/desktop/python/package/usbtest.py”,第 82 行,在 readusb buffer_stream = dev.read(0x81,buffer_size,0) 文件“/usr/local/lib/python3.8/dist-packages/usb/core.py”,第 1019 行,读取中 ret = fn( 文件“/usr/local /lib/python3.8/dist-packages/usb/backend/libusb1.py”,第 846 行,在 bulk_read 中返回 self.__read(self.lib.libusb_bulk_transfer,文件“/usr/local/lib/python3.8/dist -packages/usb/backend/libusb1.py”,第 954 行,在 __read _check(retval) 文件“/usr/local/lib/python3.8/dist-packages/usb/backend/libusb1.py”中,第 604 行,在 _check raise USBError(_strerror(ret), ret, _libusb_errno[ret]) usb.core.USBError: [Errno 5] Input/Output Error

0 投票
0 回答
43 浏览

c - LibUSB - 将视频流式传输到微控制器口吃(LibUSBK 批量模式)

我正在尝试将视频文件流式传输到 MCU,但每当它在设备上播放视频时,它的卡顿程度都非常适中。如果我在流媒体时使用我的电脑,情况会变得更糟。

例如,如果我正在流式传输,然后我滚动浏览聊天记录,比如 Discord,口吃变得非常非常糟糕,这非常奇怪,但可能是找到问题根源的关键因素。

注意:我们必须以 512 字节块流式传输 2352 字节(这是针对我正在流式传输的 ISO9660 光盘视频格式,对正在播放它的系统至关重要,因此不要认为这是问题或错误)。

这是我当前的代码实现。

关于为什么会发生这种情况的任何建议?我们libusbk在 Windows 7(32 位)下用作驱动程序。

任何帮助将不胜感激。