问题标签 [libusb-1.0]
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.
c - 使用 libusb 获取原始数据
我正在对 Linux 端的超声波探头进行逆向工程。我想从超声波探头捕获原始数据。我正在使用 C 编程并使用 libusb API。
设备中有两个 BULK IN 端点(2 和 6)。该设备正在发送 2048 字节的数据,但它以 512 字节的四个块发送数据。
这张图是Windows端的数据流,我想把它复制到Linux端。您会看到端点 02 的四个数据块,然后是端点 06 的四个数据块。
但是有一个时间问题。端点02的第一个数据块和端点06的第一个数据块在时间上相互接近。但是在数据流中它们不是按顺序排列的。
我看到电脑正在读取端点02和06的第一个数据块。之后,计算机正在读取端点02和端点06的其他三个数据块。但是在USB Analyzer中,数据流是根据端点编号。顺序因时间而异。
在 Linux 端,我编写如下代码:
所以结果如下图所示
换句话说,在我的代码中,所有读取数据都是根据时间和端点编号按顺序读取的。我的结果与 Windows 端的数据流不同。
简而言之,我有两个 BULK IN 端点,它们开始根据时间关闭读取数据。这怎么可能?
java - usb4java 中的设备处理
我正在使用 libusb 与 java 中的 USB 设备进行通信。我的操作系统是linux。但我有关于开放设备的问题。
我收到“句柄不能为空”的错误。
我怎么解决这个问题。感谢您从现在开始的回复。
java - 使用 java(usb4java) 从 libusb 中的 USB 设备读取数据
我正在使用 libusb api 从 java 中的 USB 设备读取数据。我可以将数据写入设备,但无法从设备读取数据。我可以读取第一个数据组(大小:1 字节),但是当我想读取第二个数据组(大小:2 字节)时,出现超时错误(USB 错误 7:控制传输失败:操作超时)。
我的代码是这样的;
我已经用 C 语言实现了这种数据传输,但我必须在 java 中做到这一点。请帮我。
编辑:我正在更改超时,但我的应用程序没有更改。
编辑:我可以读取 1 个字节的数据。当我想读取 2 字节数据时出现错误。
c# - Linux/Mono 中通过 USB 控制传输的错误数据
我们这里有一个 USB 设备,上面有一个 EZ-USB FX 芯片,我们通过libusb-1.0
使用LibUsbDotNet
. 使用 Windows 一切正常,但Mono 3.12.1
在Ubuntu 14.04
它下使用不起作用。我做了一些调查和测试,发现它无法初始化设备,我们使用以下逻辑(这是来自我的测试程序,但“真正的逻辑”是等价的):
然后我使用 USB 分析器来分析通过 USB 端口发送的命令。
使用 Windows 我得到以下信息:
这是正确的,正如您所看到的设备重置可以使用,但是当使用 Linux 时,我得到以下信息:
现在而不是
01
命令00
发送68
,A8
因此设备什么也不做。
有谁知道这可能是什么原因?为什么在Linux下发送错误的数据包?
visual-c++ - 使用 libusb、wxWidgets 和 MSVC 2013 链接错误
我正在为 USB 设备开发一个实用程序,该实用程序在 C++ 中使用 wxWidgets 来显示 GUI。我正在尝试将 libusb(我使用 MSVC 2013 预编译)链接到项目。我根据“最小”示例制作了一个简单的窗口。
一切都很好,直到我收到此链接错误:
错误 11 错误 LNK1169:找到一个或多个多重定义的符号
错误 9 错误 LNK2005:_GUID_NULL 已在 uuid.lib(cguid_i.obj) 中定义
我该如何解决?_GUID_NULL 是什么?
c++ - 在 Linux ARM 上使用 libusb 的状态热敏打印机
我知道有很多关于状态打印机的问题......
我有一个 Citizen CT-S310 II,我已经管理了所有用于在 USB 中写入字符的代码,而 libusb_bulk_transfer(文本、粗体、中心、CR、CUT_PAPER 等)没有问题:
现在,我需要从打印机接收数据以检查状态,我的第一个想法是发送具有与文档相同的“bulk_transfer”的 POS 命令:
1D (hexa) 72 (hexa) n n => 1 (发送纸传感器状态)
并通过“bulk_transfer”以端点“ENDPOINT_IN”检索值,文档说有 8 个字节要接收:
所以两个“bulk_transfer”,一个用于发送命令状态(ENDPOINT_OUT),一个用于接收结果(ENDPOINT_IN),但我总是有一个 USB 错误(读取中的“bulk_transfer”= -1)
也许USB不能这样工作?所以我的第二个想法是使用 PrinterClass USB 中实现的功能,命令为“control_transfer”:
我不知道如何填写所有参数,我知道这取决于我的设备,但 libsub 的文档不是很明确。
究竟什么是“wValue”?
究竟什么是“wIndex”?接口号??
LIBUSB_ENDPOINT_IN 参数默认为 0x80,但我的打印机使用 0x81,我必须更改此默认端点吗?
在我的情况下,“control_transfer”的响应始终为 0 :( 有纸或无纸。如何发送一个好的“control_transfer”来请求我的打印机的状态??
欢迎所有帮助解决我的问题!
data-transfer - 使用 libUSB(主机和目标模型)的两个应用程序之间的数据传输
我正在尝试找到一种通过使用电缆连接的 USB 连接发送和接收数据的方法。这个想法是:服务/命令行应用程序将在目标系统上运行,接收命令,并为命令发送数据。位于另一台机器上的 GUI 应用程序分析和解释数据。
使用libUSB,可以吗?
c++ - libusb:这些读取错误的根源是什么?
我正在将英文字母从 Arduino 延迟一秒发送到我的笔记本电脑:
我正在尝试使用 libusb 从 C++ 程序中捕获和打印字母。这是代码的相关部分:
这是我得到的输出:
我观察到每秒钟 Arduino 都会发送一个字母,我的程序会成功捕捉到它。但几乎所有时间,屏幕上也会打印读取错误以及捕获的对象。是什么导致了这种情况,我该如何阻止它?
我在这里找到了 Serial.write() 的源代码,但我无法理解它。
java - 尝试访问 USB 设备时 libusb_open_device_with_vid_pid 失败
我正在尝试让 USB 设备连接到 Android 5.1.1 设备。以前我一直在为 KitKat 使用常规的 libusb,但是 Lollipop 提高了安全性,这不再有效。
这是有据可查的,需要 root 来设置 SELinux 级别。我不想让 USB 设备连接到它。
环顾四周,我遇到了这个答案,我尝试了这个 libusb fork,但是现在我遇到了一个新错误
我没有更改任何代码,只更改了库。
这仍然是一个权限问题,还是我缺少一些可以使这项工作正常进行的东西?
c++ - 如何正确读取条码扫描仪的数据?
我正在研究旨在将文章信息保存在数据库中的项目。为此,我实现了一个对话框(使用 wxWidgets c++),允许输入有关文章的信息。当用户扫描给定文章的条形码时,我的应用程序应该从条形码中读取数据并将其显示在文本控件上。为了读取数据,我使用libusb 1.0库,它提供了很多处理 USB 设备的例程。为了从条形码扫描仪轮询数据,我实现了一个处理计时器事件的函数,并在其中放置了一个代码来读取数据。不幸的是,到目前为止,我无法从条形码扫描仪读取数据。请在下面找到我的代码。
函数“libusb_bulk_transfer”总是返回-1。请帮我!