草庐IT

USB串口

全部标签

c++ - 检测移除打开的串口设备(Qt/Windows)

我有一个Qt应用程序,它通过串口与加密狗通信(它是一个FTDI芯片)。我轮询QSerialPortInfo::availablePorts()以检测何时添加或删除端口,然后向加密狗发送一个空行以识别它(我的加密狗用它的ID对此做出响应,我指望它对99%的其他设备无害)。一切正常,除了如果您在连接处于事件状态时移除加密狗,连接似乎没有关闭并且端口仍在QSerialPortInfo::中返回availablePorts().有谁知道在我连接到串行加密狗时如何检测它的移除(除了像ping之类的黑客攻击)。我试过监听QSerialPort发出的所有信号(error()、readChannelF

c++ - 通过系统虚拟串口向蓝牙发送字节

我希望能够在C++中通过蓝牙发送和接收数据。我发现系统(win8.1)为配对设备创建了2个虚拟端口。当我尝试使用WriteFile将数据发送到连接的端口(“传入”)时,函数返回成功并且写入了0个字节。我的问题无法向虚拟BT串口发送和读取字节。我使用“GetDefaultCommConfig”来检查串行端口是否处于事件状态。它适用于USBUART连接,但有时无法连接虚拟端口。我的问题:我应该连接到2个端口,将字节写入“outgoing”并监听“传入”端口?我应该在我的代码中更改什么来解决我的问题?为什么Windows为蓝牙创建2个串口?代码:#define_CRT_SECURE_NO_W

c# - 在 Windows 将其注册为击键之前拦截 USB 键盘数据

我一直在网上搜索一个非常具体的问题。我正在尝试做的是将两个键盘(普通USBqwerty键盘)通过两个不同的USB端口连接到我的PC,从中我可以选择哪个键盘处于“事件”状态并用于书写,而另一个键盘将用于我的应用程序中的不同命令并且无法使用。基本上拦截/断开Windows读取输入数据并将其视为特定USB端口上的击键的部分,而是给我使用数据。有什么方法最好在C#中执行此操作? 最佳答案 有一篇文章介绍了如何在C#中使用RawInput来检测连接了多个键盘时击键的来源。这可以帮助您在C#应用中配置一个键盘用于正常打字,另一个键盘用于特殊用途

c - c中串口读取,使用WinApi函数; WaitCommEvent 失败

我尝试用C语言编写一个基于事件的小型应用程序以读取串行端口(来源如下)。我的程序是使用WinApi函数。comport.c具有用于处理COM端口(打开、读取、写入)的函数,utils.c具有一些辅助函数。我的程序总是产生以下输出:COM1isselectedtobelistened.GetCommMaskresult:0x00000029(EV_RXCHAR:0x0001,EV_CTS:0x0008,EV_RLSD:0x0020)Pressanykeytoproceed...I/Oispending(WaitCommEvent)...I/Oispending(WaitCommEvent

java - usb4java:无法进行数据传输

我正在尝试使用usb4java(低级API)与USB连接的科学仪器进行通信,该仪器在Windows上设置为HID设备(x86和x86_64)。有一个非常古老的C++应用程序可以正常工作,但出于各种原因,我正在尝试用纯Java替换它。我可以获得设备描述符并确定接口(interface)/端点,但异步传输永远不会发生(由DeviceMonitoringStudio检查)并且永远不会调用回调。usb4java没有抛出任何异常,并且不知道我是否可以访问libusb级别的任何日志(如果可能的话)。在处理硬件方面,我是一个完全的新手,所以它很可能是我所缺少的一些非常基本的东西。只有一个端点,我不确

windows - Kinect USB 3.0 经常重连

我正在开发Kinect应用程序,在Windows10PC上使用Kinect2.0forXboxOne。现在我在使用新电脑时遇到了问题。使用KinectStudio或任何示例程序测试Kinect,Kinect不断重新连接,就好像您将拔出USB电缆并重新插入一样。如果Kinect正在运行,我会获得完整的30fps,但在连接中断之前,大多数情况下仅持续约10秒。USB3端口没有插入其他设备,我尝试了所有端口。计算机有Intel8系列/C220系列USB芯片组,我更新并重新安装了所有驱动程序。Kinect配置验证程序显示usbController存在问题:“检测到支持的USB3.0端口带宽未知

windows - 使用 Dejan TComport Delphi 组件从串口读取二进制数据

很抱歉这个问题,但我对Delphi有点菜鸟。我正在使用DejanTComport组件从串行端口获取数据。连接到该端口的一盒设备向串口发送大约100字节的二进制数据。我想要做的是将字节作为数值提取到一个数组中,以便我可以对它们执行计算。TComport有一个Read(buffer,Count)方法,它从输入缓冲区读取数据。functionRead(varBuffer;Count:Integer):Integer;帮助说明Buffer变量必须足够大以容纳Count个字节,但没有提供任何如何使用此函数的示例。我可以看到Count变量保存接收到的字节数,但我找不到访问Buffer中字节的方法。

c++ - 检测正在插入的 USB 驱动器 - Windows 服务

我正在尝试检测插入到Windows服务中的USB磁盘驱动器,我已将其作为普通Windows应用程序完成。问题是以下代码不适用于卷。注册设备通知:DEV_BROADCAST_DEVICEINTERFACEnotificationFilter;HDEVNOTIFYhDeviceNotify=NULL;::ZeroMemory(¬ificationFilter,sizeof(notificationFilter));notificationFilter.dbcc_size=sizeof(DEV_BROADCAST_DEVICEINTERFACE);notificationFilter.

windows - 是否可以将 Windows 设置为在插入符合 HID 标准的 USB 设备时自动启动应用程序?

我有一个自定义的HID兼容USB设备。我想将Windows设置为在插入此设备时启动应用程序。这可以通过配置设置实现吗?或者我是否需要编写一个应用程序(例如,驻留在Windows启动时系统托盘中的应用程序)来检测设备何时插入?我知道我的佳能相机和诺基亚手机在插入时可以启动应用程序或自动播放,但它们不是HID设备。 最佳答案 您应该能够通过监视WMIWin32_DeviceChangeEvent或RegisterDeviceNotification来实现这一点。Win32_DeviceChangeEvent:http://msdn.mi

windows - 在 Windows 上读取原始 USB 输入

我有一个USBHID人机接口(interface)设备,当我按下按键时,它会向USB主机发送键码,但我找不到一个简单的程序来转储USB端口中的所有输入数据?(当然有源代码可用。USBlyzer可以做到,但它是共享软件) 最佳答案 查看libusb和#USBLib两者都是开源的。#USBLib是一个围绕多平台libusb的.net包装器。 关于windows-在Windows上读取原始USB输入,我们在StackOverflow上找到一个类似的问题: https