问题标签 [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.
c# - 定制TG2480H热敏打印机不能打印西里尔字符.NET C#
我在自定义 TG2480H 热敏打印机中打印西里尔字符时遇到问题。在其文档中写到 0x1B、0x74、17 命令序列会将字符表设置为西里尔字母,然后我将字符串编码为字节数组并发送到打印机,但打印机不会打印 cryllic 我的代码是这样的
如您所见,编码是windows-1251,我将打印机的字符表设置为西里尔文,但正在打印未知字符。请帮助,在此先感谢!
libusb - 我可以使用带有 libusbdotnet 的 USB 笔式驱动器吗
我刚刚开始使用 libusbdotnet。我已经从http://libusbdotnet.sourceforge.net/V2/Index.html下载了示例代码。
我正在使用JetFlash 4GB 闪存驱动器(为此驱动器添加了 libusb-win32 过滤器驱动程序)。
ShowInfo 代码完美运行,我可以通过两个端点查看我的设备信息。以下是来自 pastebin 的设备信息
但是,ReadOnly 示例代码不起作用。
我的代码与 libsubdotnet 网站上的代码几乎相同。我只更改了 UsbEndpointReader 使用的端点。我已将其从 Ep01 更改为 Ep02,因为我读到第一个端点是用于配置、访问控制和类似内容的控制端点。
我总是收到“没有更多字节!”的消息。
我认为这是因为没有数据,所以我使用了 ReadWrite 示例代码。
但在这里我也得到“没有更多的字节!” 信息。
有趣的是,这条线
执行没有错误。
笔式驱动器可以用于读写操作吗?还是代码有问题?
c# - 使用 libusb 捕获 USB 鼠标原始数据
我想使用C#的libusb库从 USB 鼠标捕获原始数据。
我可以使用UsbEndpointReader类读取数据,但是有一个问题。
当我尝试读取数据时,Windows 似乎也在尝试读取,我无法读取所有数据,操作系统也不能,因为鼠标移动有一些步骤。我想读取所有数据并让操作系统也读取这些数据(我的意思是移动光标没有问题)。
我遇到的另一个问题是我不知道如何获得 HID 描述符。我知道通过调用GetDescriptor方法是可能的,但我该怎么做呢?
c# - LibUSBDotNet:使用 USB 设备一段时间后出现奇怪的错误
我在与简单 USB 设备通信的 WPF 应用程序中使用 LibUSBDotNet 库。我只向设备发送 3 个字节作为命令,没有预期的响应,我的代码就像一个魅力:
然后是写入设备的过程:
我对使用 USB 比较陌生,但到目前为止我已经完成了所有工作。但是,一段时间后,有时,在尝试再次写入设备时,我会收到以下两个错误之一:
通常我需要重新启动设备/应用程序几次,然后它才能再次开始工作,然后它又像魅力一样工作了几个小时,然后再次发生......到目前为止,我还无法在测试环境中复制崩溃.
我做了很多研究,试图找到与我类似的问题/解决方案,但没有成功。我留下的唯一建议是,在某些时候设备没有足够的电源,它会进入这种错误模式,但即使这样似乎也不太可能,因为它有一个单独的 12V 电源,它所做的只是打开和关闭几个继电器...
我也尝试过用很多连续的命令一个接一个地淹没设备,包括垃圾命令,但它仍然可以工作并且行为正常,只是稍后会崩溃。
欢迎任何建议或想法,谢谢!
编辑:经过多次尝试,我仍然无法确定问题的根本原因,但我设法达到了我的代码正在工作的地步,并且能够使用尝试重置设备的重新连接函数从 OverlappedResult 错误中恢复一旦开始失败。我在下面发布了一些代码,希望有人能够缩小问题范围并确定错误原因。
初始化期间的一些代码:
接下来我尝试向设备发送一些信息。这是错误最终会弹出的地方,我在一个简单的 try/catch 块中将其作为异常捕获:
上面的“更新”是一个字节数组,我用适当的命令发送到我的设备,而 updateRelayController 实际上是上面的代码片段向 USB 设备写入命令的函数。最后,这是我的 reconnect() 函数,它可以在 99% 的时间内重新建立与设备的连接,而无需手动重启设备和插拔 USB 电缆等:
到目前为止就差不多了。SetConfiguration/ClaimInterface/Dispose 的组合减少了我看到 OverlappedResult 错误的时间,无论何时发生这种情况,从我的日志来看,我都能立即恢复并将命令重新发送到设备。正如我上面所说,这是解决问题的方法,因为我仍然不时遇到错误,我仍然不知道为什么,但至少我现在能够继续使用该设备。如果有人有更多见解,我很想了解更多关于这个问题的信息。谢谢,我希望这会有所帮助!
c# - LibUsbDotNet:退出 WPF 应用程序时出错 - 安全句柄已关闭
在 WPF 应用程序中使用 USB 设备,我可以成功地连接设备并向设备发送命令。该设备只接收命令,没有回复,所以我只需要一个 EndpointWriter 来与之通信。
然后是写入设备的过程:
一切正常,包括关闭应用程序,除非在工作过程中 USB 设备断开然后重新连接。应用程序成功处理了这种情况并重新连接到设备,继续成功地向它发送命令:
……等等。
在发生此类断开/重新连接后关闭应用程序时会出现问题。尽管该程序成功运行并与设备通信了很长时间,但退出时出现以下异常:
我在 USB 设备、endpointwriter 上尝试了许多不同的 Dispose 和 Exit 变体,但到目前为止没有成功。我假设在断开连接之前某些东西保持打开状态,所以我收到此错误,但我不确定它是什么以及如何摆脱它。
由于这只发生在关闭应用程序时,我不介意以某种方式忽略异常并让应用程序死掉,但我不确定如何捕获该异常,因为 Window_Closing 事件成功返回然后异常在那之后发生,所以我无法抓住它......
任何提示表示赞赏,谢谢!
c# - LibUsbDotNet USBEndpointReader DataReceived 事件在我期望的时候没有触发
我有一个 USB 设备,我需要通过 LibUsbDotNet 从中读取数据。
如果我在成功打开设备后使用以下代码...
.
并定义方法:
该事件永远不会触发。我知道我的代码正在接收数据包,因为我连接了一个 USB 分析器并且可以看到它们进入。
如果我更改代码以消除对事件回调的依赖,而是在后台线程上使用下面的循环来读取阅读器对象
然后一切都很好。
我已经尝试过使用我初始化的顺序、值等,但仍然没有任何乐趣。如果我使用 DataReceived 事件,谁能建议为什么事件没有触发?
我正在使用 LibUsbDotNet 2.2.8。
c# - LibUsbDotNet 打开设备 -> 找不到设备
我有用于 AVR 微控制器的 usbasp 编程器。这个程序员使用 libusb 库。我设法将它连接到电脑,系统检测到新设备,我设法为这个设备安装驱动程序。它运行良好,因为我可以用它对 AVR 芯片进行编程。所以硬件部分是 100% OK。
现在软件部分:使用 LibUsbDotNet 对我的 libusb-win32 设备进行简单迭代,我找到了 2 个设备。它们都命名相同(并且具有相同的 VID 和 PID),所以我认为这是复合设备。第二个有一些数据。这在下面的屏幕截图中得到了很好的展示。
和代码(它只是从示例中复制粘贴)
这是这个程序的输出
我想要的是这个简单的代码来检测存在的这个设备(因为对所有设备的简单迭代找到了它,而其他工具“USB Cfg 询问器”也找到了它)。以前有人问过这个问题,但没有建设性的答案。
我也可以使用 libusb-win32 c++ 库并为其创建一些 C# 包装器,但如果不需要它并且我可以使用 LibUsbDotNet 库,我想使用它而不是自己创建包装器。
c# - LibUsbDotNet SymbolicName 错误
我无法从 LibUsb 中读出 SymbolicName。这是一些示例代码:
字符串名称不包含正确的符号名称。我不知道为什么。
问题似乎出在 LibUsbRegistry.cs 中。功能:
使用参数调用 LibUsbDriverIO.UsbIOSync:LibUsbIoCtl.GET_CUSTOM_REG_PROPERTY,在 LibUsbDriverIO.cs 中,函数 UsbIOSync 调用 Kernel32.DeviceIoControlAsObject。这个函数返回假。
一些代码:
LibUsb注册表:
LibUsbDriverIO:
问题只是出现在 LibUsbIoCtl.GET_CUSTOM_REG_PROPERTY 中。但这一切都是来自 LibUsb 的预编译代码。所以为什么不能读出符号名称。
c# - LibUsbDotNet,没有 libusb-1.0.dll
我正在尝试使用 libusb 将一些 C 源代码(Linux)移植到 C#(Windows)。我在 Windows 7 上成功安装了 LibUsbDotNet。然后我继续添加using MonoLibUsb
,因为它看起来是最简单的移植路径。但是,在运行时会出现一个异常,说libusb-1.0.dll
缺少。事实上,我似乎无法在C:\Windows\System32
. 所以,两个问题
- 我在哪里可以找到它?在线搜索并没有发现任何方便的安装程序包。
- 为什么它不作为 LibUsbDotNet 的一部分安装?AFAICS 缺少它使 LibUsbDotNet 的一半无法使用。
c# - Can't find device on libusbdotnet
I am a beginer on USB. I found libusbdotnet on http://sourceforge.net/projects/libusbdotnet/ i am using the library. But i can't find my device by command
The vendor and product ID are the vender, product ID of Keil ULINK2
.
MyUsbDevice always null although The USB is attached.
Thank for help!