问题标签 [libusb]
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.
java - libusb 与 USB 大容量存储通信
我目前正在使用libusb 0.1作为后端编写javax-usb (JSR-80)实现。我需要测试批量传输功能,我猜最简单的方法是与 USB 大容量存储设备(如 USB 闪存驱动器)进行通信。不幸的是,我不知道这些设备是如何工作的。我想有某种协议,我必须先发送一些 USB 控制请求,然后才能在批量端点上启动传输。
我对编写完整的 USB 大容量存储驱动程序或类似的东西不感兴趣,所以即使是文件系统的东西也不重要。我唯一的目的是通过一些批量端点传输一些数据,以便我可以将我的实现与参考实现进行比较。
我需要的是一些示例代码(语言无关紧要,很可能它是否使用 libusb 或其他东西都无关紧要)或程序员易于理解的 USB 大容量存储规范(我不是硬件专家)。我已经在网上搜索过,但到目前为止还没有找到任何有用的东西。
linux - 嵌入式 linux 设备上的 USB 驱动程序测试
我正在寻找开源测试套件来测试嵌入式 linux 设备上的 USB 驱动程序。欢迎任何建议?我正在阅读此链接:http ://www.linux-usb.org/usbtest/
如果不存在任何开放套件 USB 测试套件,有人可以提出一些关于在嵌入式设备上测试 USB 的想法吗?
c# - 读取 USB 中断数据
我有一个使用 libusb WIN32 驱动程序和
中断数据可通过 USB-HID 接口端点 83(在 EP83 中)从加速度计获得。数据采用小端格式,具有以下字段(x、y、z、Vbat、CpuTemp。)每 62.5 毫秒(16 赫兹)采集一次数据。有许多 USB HID“获取”和“设置”报告可用(通过 ep0)
如何通过 .NET 和 C# 访问这些数据?
python - Windows 7 上的 Pyusb 找不到任何设备
所以我在 Windows 下安装了 Pyusb 1.0.0-alpha-1
,我无法获得 USB 设备的任何句柄。
我确实插入了 1 个 USB 设备(idVendor=0x04d8,idProduct=0x0042),我尝试过,usb.core.find(idVendor=0x04d8, idProduct=0x0042)
但也失败了。
在 Ubuntu 下,使用相同版本的 pyusb 和 python (2.6),我能够使用该代码成功找到我的设备,并与之通信。
那么如何让 pyusb 在 Windows 7 上找到 USB 设备?
android - Android ARM 设备/模拟器上的 libusb 崩溃
我正在使用 NDK 编译 libusb(都来自预建的一个:https ://github.com/monaka/libusb-android) 以及使用他的更改来编译最新可用的 (libusb-1.0.8)。它似乎正在加载,并且对“init()”的初始调用不会返回错误。但是,当我尝试对库进行基本调用以列出设备时(来自 libusb 中包含的示例 lsusb 代码),我遇到了崩溃。使用 NDK 提供的“arm-eabi-addr2line”和转储提供的地址作为故障,我已经追踪到 libusb 中的设备列表方法从它找到的设备中获取“未知状态”导致崩溃发生时调用“usbi_log()”方法。NDK 工具没有给我行号,所以这就是我所拥有的关于错误发生位置的所有详细信息。
libusb 源代码库:http://git.libusb.org/?p=libusb.git;a=summary;js= 1
我正在从一个非常简单的操作对 libusb 进行简单的 JNI 调用,尽管我没有任何理由认为这是问题的一部分。它是一个非常基本的 .h(来自 javah)文件和 .c 文件,它复制了所提供的“lsubs”示例程序的操作,并且 Action 类除了在 onLoad() 方法中进行调用之外什么都不做。
在模拟器中运行时我也会崩溃。还拔下设备(Nexus One)以禁用调试(也在应用程序->设备上的开发中禁用)并使 USB 总线(理论上)为空(至少是外部物理设备)并获得相同的崩溃。
设备和模拟器 Android 版本:2.2
NDK 版本:r5b
ADK 版本:r10
主机操作系统:OSX
感谢您提供任何帮助!
curl - 从 Macports 安装 cURL 失败
我正在尝试libusb-devel
在朋友的 Mac 上使用 Macports 进行安装(我们需要它来安装 Osceleton)。在我的电脑上,安装非常顺利,但我在他的电脑上安装时卡住了。
的依赖项之一libusb-devel
是curl
. 但是,安装curl
似乎失败。在配置过程中curl
,会显示一条错误消息并退出安装。我提到了日志,这是错误的相关部分:
如果我自己运行配置脚本,使用日志中给出的命令,一切顺利并且curl
安装完美。但是,Macports 对此并不满意,因为我收到错误消息,告诉我某些文件已经存在等。此外,curl
直接使用 Macports 安装似乎会带来麻烦。
因此,我无法继续安装libusb-devel
,我们很快就需要它用于学校项目。任何人都可以帮忙吗?
TIA
visual-c++ - 通过 USB 高速向主机传输数据
我正在通过 USB 连接与定制的实验室设备(小硬件)交谈。如何以最大速度从实验室设备获取数据?
主机是一台 Windows XP 机器,在 Visual Studio 中使用 libsub-win32 运行 c 代码。小硬件收集数据,大量数据。主机可以请求此数据,然后读取它。一切正常。困扰我的是速度,粗略估计为 1Mbit/s,与 USB2 支持的 480 Mbit/s 相差甚远。该设备至少应该能够以该速度向我发送数据。我几乎没有使用 USB 和 libusb-win32 的经验,但我尝试阅读它们。虽然我看不到在哪里以及如何更改任何 USB 通信设置。在规范中,高速巴士上似乎有一种叫做微框架的东西。我该如何使用它们?
我不一定要使用 libusb-win32 库。您还有其他建议吗?
当前实现的详细信息: 如上所述,我使用 libusb-win32 进行通信。所有初始化都是从下载中包含的一个小示例中复制的。
然后我(使用 usb_bulk_write(...) 和 usb_bulk_read(...))与实验室设备交谈,并说服它与我共享数据,它确实这样做了。它为我提供了 512 字节的数据。使用 usb_bulk_read(...) 读取每个这样的块。
编辑 2011 年 4 月 27 日: 看起来我正在使用全速,但不是高速。如何获得高速?我在 USB 描述符文件中得到了一些错误的参数吗?(是的,我用的是USB2.0,设备应该支持高速的。)
2011 年 5 月 17 日编辑: 我现在已经使用 winUSB 实现了通信(编写了一个 .inf 文件和 c++ 程序)。使用 WinUSB 的好处是它可以告诉我它是否正在尝试使用高速。确实如此,但我仍然没有超过 11+-2 Mbit/s。为什么?
根据 USB2.0 协议,计算机应该发送帧开始标记(每毫秒发送一次),我认为它正在这样做 - 因此是 11Mbit/s。但是当使用高速时,它说“高速使用'微帧',它长 125us(每毫秒 8 微帧)。通过连续 8 次重复每个帧号,高速 SOF 数据包中保持与 1ms 帧编号的对应关系微帧。” 我不太明白这一点,但没有足够频繁地发送微帧可能是问题所在?有懂协议的朋友请赐教!我想了解这个东西是如何工作的,不管我是否可以让它在我的电脑上工作。
6月15日编辑
已解决的问题:计算机端的任何更改都不会使通信速度超过预期(如果您不更改端点数量并且您确实有 USB2.0 连接)。这里的问题在于处理器代码以非常耗时的方式使用其内存区域。这使得这个问题成为一种非问题。感谢所有的指针和信息。我学到了很多关于 USB 的知识!
c++ - 如何将 libusb 与 libevent 一起使用?
我正在使用 libevent 编写一个事件驱动的应用程序,我需要使用 libusb-1.0 进行 USB 传输。
我想使用libusb_get_pollfds来获取文件描述符列表(在 中fds
)并将它们添加到 libevent 中,如下所示:
另外,我使用libusb_set_pollfd_notifiers从libusb_fds_events
.
问题是我在 libusb 返回的列表上得到了许多奇怪的 fds(例如,我得到stdin
(!)很多次,事件等于 0)。
我是否以正确的方式使用它?
java - 作为 USB 外围设备运行的 Windows 系统上的 Java 应用程序
有没有办法让 USB 设备充当主机,而基于 Windows 的系统上的应用程序充当外围设备?我们有一个作为主机的 USB 设备,我们需要它来连接到我们在基于 Windows 的系统上运行的应用程序。该设备使用 USB 2.0 On-the-go 规范,但它需要以主机角色运行。我们找到了一些库,但它们似乎只有在应用程序是主机并且设备是外围设备时才有效。任何信息或线索将不胜感激。
谢谢。
android - 将原始数据写入 Android 串行端口 (USB)
我需要将一些“原始”数据写入我的一个项目的 USB 端口(如果需要 root,则没有问题)。
我找到了一个适用于 Android 的 libusb 端口,并设法用 NDK 编译它。我将库链接到我的可执行文件(以 root 身份执行),但函数“libusb_init”总是返回错误(LIBUSB_ERROR_OTHER)。
我发现问题(到目前为止......)在文件“linux_usbfs.c”中,更准确地说是在这个函数中:
/dev/bus/usb
显然在我的 N1 上不存在。