许多USB设备包含唯一的序列号(实际上是Unicode字符串),主机可以将其与16位供应商和产品ID号一起使用,以唯一地标识设备.
我正在试图弄清楚如何编写一个能够显示连接到系统的所有USB人机接口设备列表的Windows应用程序.该列表对于每个HID都有一行,包括系统键盘.列表中将列出供应商ID,产品ID和序列号.
我可以通过SetupDiGetClassDevs使用返回的GUID 调用HidD_GetHidGuid并通过重复调用循环遍历结果来获取USB HID列表SetupDiEnumDeviceInterfaces.然后我可以调用SetupDiGetDeviceInterfaceDetail以获取每个设备的路径,我可以打开它CreateFile,只要我小心不要求读取或写入权限,这将被系统键盘拒绝.从那里我可以通过调用获得供应商和产品ID号HidD_GetAttributes.
我弄清楚的是如何检索序列号字符串.当我搜索这个问题的解决方案时,我发现了很多关于如何获取USB大容量存储设备的序列号的信息,但看起来没有什么看起来可能适用于任何其他类型的USB设备.我很乐意发现检索序列号字符串的泛型方法或特定于HID的方法.
我有一个到Win32的移植的感觉libusb可能没有太多的麻烦管理这个,但不幸的是,我需要一个只依赖Windows自带的库,如一个解决方案setupapi,并hid包含上述功能的DLL.
任何建议将非常感谢!
在我的〜/ .xinitrc中,我通过启动setxkbmap命令来重置键映射:
setxkbmap -option ctrl:nocaps,终止:ctrl_alt_bksp
但是,如果我在X11启动后插入USB键盘,则USB键盘上的CapsLock键不会映射到“ CTRL”功能,但是如果我重新运行上面的命令,它将起作用。
问题是,我怎样才能让它自动完成?如果我尝试解析/ var / log / messages中的内核消息,那一点都不酷。
感谢您的任何答案;-P
我目前正在为Seowon SWU-3220A WiMAX USB调制解调器开发内核模式USB驱动程序.它是一个复杂的设备(插入后它在系统中显示为USB CDROM,驱动程序需要将其切换到调制解调器模式).我的问题是我的驱动程序中的probe()函数永远不会被调用.我认为这是因为操作系统使用标准的USB大容量存储驱动程序而不是我自己的.
我初始化驱动程序如下:
#define GDM7213_VENDOR_ID 0x1076
#define GDM7213_PRODUCT_ID 0x7f40
static struct usb_device_id gdm7213_table [] = {
{ USB_DEVICE(GDM7213_VENDOR_ID, GDM7213_PRODUCT_ID) },
{ }
};
MODULE_DEVICE_TABLE(usb, gdm7213_table);
static struct usb_driver gdm7213_driver = {
.name = "gdm7213",
.probe = gdm7213_probe,
.disconnect = gdm7213_disconnect,
.suspend = gdm7213_suspend,
.resume = gdm7213_resume,
.pre_reset = gdm7213_pre_reset,
.post_reset = gdm7213_post_reset,
.id_table = gdm7213_table,
};
static int gdm7213_probe(struct usb_interface *interface, const struct usb_device_id *id)
{
printk(KERN_INFO "GDM7213 gdm7213_probe()\n");
return 0;
}
static int __init gdm7213_init_module(void)
{ …Run Code Online (Sandbox Code Playgroud) 问题
我正在修改我的一个与望远镜通信的应用程序.
GOTO控制器及其键盘是最令人烦恼的问题之一,因为除了鲁莽的糟糕设计之外别无其他.
如果你们中的任何人都记得Sinclair Spectrum你知道我的意思.除了橡胶按键外,当您的眼睛试图适应视野时,用于引导和旋转望远镜的关键键很难找到.
所需要的只是错误的钥匙,你需要再花30分钟左右重新调整望远镜.
解决方法
我的解决方案是一个游戏控制器,如僚机,它可以整齐地放在你的手中,并且很容易找到按钮.此外,没有重置安装的风险.
问题
我的问题是,Delphi如何与游戏控制器进行交互,因为文档中没有提及?否则,当通过USB加密狗连接时,如何访问游戏端口?
我被指派使用C#将称重秤(CAS CI-201A)的重量显示到文本框中.重量将通过串行端口RS-232或USB转换器发送.规模与我同在,但我不知道从哪里开始.我怎样才能实现目标?
我正在尝试创建一个可以调用的可执行文件,并从Fairbanks SCB-9000 USB规模传回权重.我找到了一些针对不同模型规模的代码,但它并不适合我.我特别遇到以下方法的问题.它给了我一个错误:"Can not Implicity转换类型'System.Collections.Generic.IEnumerable'到'HidLibrary.HidDevice []'." 我已经尝试了几种方法来实现这一点,但我无法让它发挥作用.这里有什么建议,或者有没有人为这个特定的规模编写任何代码?
谢谢,
抢
这是有问题的方法:
public HidDevice[] GetDevices()
{
HidDevice[] hidDeviceList;
// Fairbanks Scale
hidDeviceList = HidDevices.Enumerate(0x0B67, 0x555E);
if (hidDeviceList.Length > 0)
return hidDeviceList;
}
Run Code Online (Sandbox Code Playgroud)
对不起应该补充一下,我在这里使用Mike Obrien的HidLibrary:http://nuget.org/packages/hidlibrary
使用完整代码更新......
这是我正在使用的代码......
Program.cs中
using System;
using System.Threading;
using HidLibrary;
using Scale;
namespace ScaleReader
{
class Program
{
public static void Main(string[] args)
{
decimal? weight;
bool? isStable;
USBScale s = new USBScale();
s.Connect();
if (s.IsConnected)
{
s.GetWeight(out weight, out isStable);
s.DebugScaleData();
Console.WriteLine("Weight: {0:0.00} LBS", weight);
} …Run Code Online (Sandbox Code Playgroud) 你好我正在尝试开发一个Android应用程序.我有一个三星galaxy s 3但我似乎找不到与Windows 7兼容的驱动程序.我有安装Android sdk版本1.0.29.我试图在我的sdk的usb_driver文件夹中手动安装我的设备驱动程序的驱动程序.谢谢.
如何在设备上配置我的ARM代码.
这是一个涉及USB和SDH处理的裸机代码,我看到这个用于ARM的Code Profiler但看起来非常渺茫,我熟悉DS5但是如果你在基于linux内核的操作系统的平台上,它的大多数工具都可以使用.我编译我的代码gcc.
嗨,我希望连接USB相机到Android手机我可以访问Galaxy note 1和Sony Xperia L,我可以通过Note打开USB记忆棒,但不能用Sony,所以我想这个音符将是我的项目的最佳选择,我的手机没有扎根..没有root手机可能吗?任何指针从哪里开始,如果有人知道一些示例项目..谢谢
我正在尝试在Linux(Ubuntu)中连接秤(Dibal系列400),但无法成功。安装了启用虚拟Com端口的驱动程序后,该秤可以在Windows上运行,但是当我在Linux上插入秤时,它会尝试启动,但是一段时间后,秤会关闭。
sys日志消息显示:
kernel: [ 3202.896355] usb 1-2: new full-speed USB device number 8 using xhci_hcd
kernel: [ 3203.038395] usb 1-2: New USB device found, idVendor=0483, idProduct=5740
kernel: [ 3203.038400] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
kernel: [ 3203.038403] usb 1-2: Product: Dibal G Series
kernel: [ 3203.038405] usb 1-2: Manufacturer: DIBAL S.A
kernel: [ 3203.038407] usb 1-2: SerialNumber: 00000000001A
kernel: [ 3203.039349] cdc_acm 1-2:1.0: ttyACM0: USB ACM device
mtp-probe: checking bus 1, device 8: "/sys/devices/pci0000:00/0000:00:14.0/usb1/1-2"
mtp-probe: bus: …Run Code Online (Sandbox Code Playgroud)