问题标签 [libusbdotnet]

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 回答
1491 浏览

c# - 使用 LibUsbDotNet 读取 RFID 标签

我有一个通用的 USB RFID 读卡器。

我正在使用如何从 USB rfid 阅读器读取代码?读取数据。看起来没问题,但是输出是一个字节数组。我想要的是 RFID 号码,即印在卡片上的号码。我怎样才能得到这个?

编辑

我通过实现一个键盘记录器成功地检索了标签号。阅读器似乎没有直接将标签号发送到线路上,而是发送一个命令来输入标签号。这个解决方案有效,但我仍然对其他更直接的方法持开放态度。

0 投票
0 回答
521 浏览

c# - 使用 USB 到 USB 电缆桥接器在两台计算机之间传递信息

我想知道是否可以使用 USB 到 USB 电缆桥接器在两台不同计算机上的应用程序之间建立通信链接。

目前,我有一个嵌入在工业 Linux 计算机上的应用程序,我有一个在用户笔记本电脑上运行的配置应用程序,配置应用程序通过本地网络发现并连接到嵌入式应用程序。

我正在尝试确定是否能够使用 USB 链接在两个应用程序之间进行通信,而不是使用本地网络。

我知道直接 USB 转 USB 无法正常工作,但我知道 USB 转 USB 桥接电缆可用于例如在两台直接连接的计算机之间传输文件。

有没有办法让我以编程方式利用这样的电缆(特别是在 C# 中),让我在本地网络套接字上拥有相同的通信能力?

我知道像 LibUsbDotNet 这样的库,但它们似乎没有提供我所描述的功能。

提前致谢。:)

0 投票
1 回答
364 浏览

c# - 如何在运行 LibUsbDotNet“入门示例”的 .NET 应用程序中填充 UsbRegDeviceList

当我运行它时, allDevices 列表为空。

我开始了一个新的 VB.NET 控制台项目,并安装了 Nuget LibUsbDotNet。

我的代码是这样的:

我的桌面 USB 设备...

在此处输入图像描述

0 投票
1 回答
933 浏览

c# - 如何在 LibUsbDotNet 的 UsbDeviceFinder 函数中使用我设备的 VID 和 PID?

我正在尝试在我的 C# windows 窗体应用程序中使用我的 USB 设备,我从设备管理器中找到了我的设备的 VID 和 PID,它们如下所述:

USB\VID_1A86&PID_7523

现在在我的代码中,我有一个名为UsbDeviceFinder的函数,它为 PID 和 VID 获取两个整数。

当我使用以下代码时,我收到一条错误消息,提示我应该在此函数中使用 int 数字。

这两个数字似乎是十六进制格式。我应该将它们都转换为十进制然后将它们传递给函数吗?

即使我将这两个数字转换为十进制,我也会收到未找到设备的错误。我怎样才能解决这个问题?

0 投票
2 回答
1338 浏览

libusb - LibUsbDotNet 不打开设备

我在 Win 10 上的 Visual Studio 2017 中使用最新的 LibUsbDotNet nuget 包。对于具有 2 个中断端点和 1 个批量 IN 端点的全速 USB 设备,我使用 zadiq 2.4 实用程序安装了 WinUSB 驱动程序。

当 UsbDevice.AllDevices 被调用时,LibUsbDotNet 可以看到我的设备。

但是,它无法使用以下方法打开我的设备:

MyUsbDevice 为空,不抛出异常。

我还尝试安装不同的驱动程序(libusbk 和 libusb-win32),但没有成功。

前段时间,我编写了一个 C++ 应用程序来使用 libusb 库与我的 USB 设备进行通信——从那时起它就可以正常工作了。

有没有人可以确认 libusbdotnet 是工作产品?我欢迎任何建议如何找出问题所在。谢谢。

0 投票
1 回答
386 浏览

usb - libusbdotnet 找不到 RFIDeas USB HID 设备

我正在运行连接到 RFIDeas USB 阅读器(部件号 RDR-80582AKU)的 Windows 7x64。使用设备管理器,我发现它的供应商和产品 ID 为 HID\VID_0C27&PID_3BFA&REV_1623。我的 .NET 应用程序引用了 Libusdotnet、LibUsb.Common,还安装了 libusb-win32-driver。运行时显示“未找到设备”,我搜索并没有找到任何与我的问题相关的内容,下面是我的代码。TIA。

0 投票
1 回答
334 浏览

c# - LibUsbDotNet 未列出 USB 打印机

我的 C# 程序中有这段代码:

UsbDevice.AllDevices属性只列出一个 USB 指纹设备,即使我有一个 USB 打印机也连接到一个 USB 连接器。

打印机已牢固连接并打开,事实上,如果我使用 Winspool 驱动程序打印,它可以工作。

我需要绕过 Winspool 驱动程序,但直接打印将字节发送到连接打印机的 USB 端口。

这里可能会发生什么?

这已交叉发布到此 Github 问题

0 投票
1 回答
249 浏览

c# - 停止 libusbdotnet 应用程序后,USB 设备不断连接和断开连接

我每 30 毫秒向 QR 码阅读器发送一个命令,然后我接受响应,并在标签上显示其大小。在我按下停止按钮之前,一切似乎都运行良好,之后我开始连续听到 Windows USB 连接/断开连接的声音。如果我拔下 USB 设备并重新插入,声音就会消失。可能出了什么问题?

[更新] 我现在尝试了几种不同的实现,使用 async、winusb 库,并且在过去 3 天里我尝试过刷新端点并中止它们,以及无数其他方法。简而言之,我已经尝试了所有可能的方法,但问题仍在继续。我决定解决问题的唯一方法是模仿我从 USB 端口移除设备并重新插入的行为。我是否有可能以某种方式识别 USB 设备连接到的确切端口,然后在 C# 中将其关闭并再次打开?

0 投票
2 回答
2003 浏览

.net - 写一个监听USB口的小工具,求指教

我有一个循环工作的硬件。它带有一个专有软件工具,允许用户通过 USB 从 PC 控制它。用户定义每个周期有多长。在每个周期开始时,软件工具通过 USB 快速向硬件发出一系列命令,然后进入空闲模式,等待下一个周期。

第二个硬件需要与第一个同步。基本上,当向硬件#1 发出上述一系列命令时,硬件#2 也应该做它的事情。

硬件 #2 带有 API 和 SDK 等等。硬件 #1 没有——只有这个工具可以定义你的周期有多长。

鉴于这一切,我们决定实现这一目标的最简单方法是侦听硬件#1 使用的 USB 端口,以便每次检测到硬件#2 上的流量时也会发出其指令。我在硬件 #1 的 USB 端口上使用了一个监控应用程序,它的流量看起来非常简单:它是一个周期开始时快速而短暂的连续数据包,然后直到下一个周期才没有。

这个想法是编写一个基于 Windows 的小型实用程序应用程序,该应用程序将侦听硬件 #1 的 USB 端口,并在每次检测到循环时向硬件 #2 发出 API 调用。理想情况下,它应该是一个 .NET 应用程序,因为我最熟悉它,就编写 Windows 代码而言。

困难的部分是编写用于监听硬件#1 的 USB 端口的代码。此外,我始终无法访问硬件 #1,因此我使用普通的 USB 键盘和鼠标作为其替代品。此时的目标是简单地检测键盘或鼠标 USB 端口上的流量。

到目前为止,我已经尝试了我在网上找到的两个库——LibUsbDotNet 和 Usb.Net。两者中的任何一个我都无法实现目标。

我什至无法让 Usb.Net 读取数据包......

LibUsbDotNet 似乎劫持了流量 - 因此,如果我在记事本或 Word 中的键盘上键入,字母不会出现在那里,而我的应用程序成功读取了数据包。将截获的数据包写回端口没有帮助。

这是我与 LibUsbDotNet 一起使用的代码。它基本上是库的示例,稍作修改以与我的键盘一起使用。

如何修改它以使其不拦截数据包,而只是在让它们通过到预期目的地的同时检测它们?

欢迎使用 Usb.Net 或 LibUsbDotNet 提供任何建议。或者,也许,一个更适合我需要的不同图书馆?

0 投票
0 回答
177 浏览

c# - 在 Windows 窗体应用程序中解析传感器输入

我正在尝试使用 C# 在控制台应用程序或 Windows 窗体应用程序中解析来自 OSI LaserScan AutoSense 615 LiDaR 的输入。

根据制造商,LiDaR 的输出是字节 11111110,然后是 30 字节的强度数据(值介于 00000000 和 11111111 之间)和 30 字节的距离数据(值介于 00000000 和 11111101 之间),然后是字节 11111111,然后是 30字节的强度数据和三十字节的距离数据。

LiDaR 的输出通过专有的 10 针端口到 9 针 RS-422 母端口,然后通过 9 针 RS-422 公端口、SeaLevel 制造的 RS-422 到 USB 适配器和USB 2.0 端口。我已经安装了驱动程序“SeaCOM for Windows v3.7.4”。在 Windows 设备管理器中,我将波特率设置为 14400。波特率 9600 会产生类似的结果。我还尝试了 Prolific USB 到串行 COMM 端口,它将 RS-232 转换为 USB,并产生了类似的结果。

我创建了以下 Windows 窗体应用程序,根据下面的代码隐藏,该应用程序在长度等于两个信息突发长度或 2 * 61 的字节数组中显示前束标头字节 (11111110) 的位置字节。这个位置大部分时间都是个位数。这是正确的起始字节吗?我发现当我将字节数组转换为 BitArray 时,字节的位是从右到左读取的。从索引较小的位置开始读取字节并转到较大的索引仍然很好吗?

如果我找到了 11111110 的位置,我会评估字节 11111111 是否在那个位置加上 61。有时会找到字节 11111111,但大多数时候不是。是否有与我缺少的 RS-422 协议相关的停止位?我的布线是否无法收集所有位?我是否应该从 11111110 开始,收集 60 多个字节,然后开始寻找 11111111?

在此处输入图像描述