- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我用 libusb 做了一个程序。我怀疑输出是否正确,因为所有条目都显示相同的供应商和产品 ID。以下是代码:
#include <stdio.h>
#include <stdlib.h>
#include <libusb-1.0/libusb.h>
void print_devices(libusb_device *dev)
{
struct libusb_device_descriptor desc;
struct libusb_config_descriptor *config;
const struct libusb_interface *inter;
const struct libusb_interface_descriptor *interdesc;
const struct libusb_endpoint_descriptor *endpointdesc;
int ret;
int i,j,k;
if(ret<0)
{
fprintf(stderr,"error in getting device descriptor\n");
return;
}
printf("Number of possible configs is %d\n",desc.bNumConfigurations);
printf("Vendor: %d\n",desc.idVendor);
printf("Product ID: %d\n",desc.idProduct);
libusb_get_config_descriptor(dev, 0, &config);
printf("Interface: %d\n", config->bNumInterfaces);
printf("\n\n");
}
int main(int argc,char *argv[])
{
libusb_device **devs;
libusb_context *context = NULL;
size_t list;
size_t i;
int ret,temp;
ret = libusb_init(&context);
if(ret < 0)
{
perror("libusb_init");
exit(1);
}
list = libusb_get_device_list(context, &devs);
if(list < 0)
{
fprintf(stderr, "Error in getting device list\n");
libusb_free_device_list(devs, 1);
libusb_exit(context);
exit(1);
}
temp=(int)list;
printf("\n%d devices found\n\n",temp);
for(i=0;i<temp;i++)
{
//print devices
print_devices(devs[i]);
}
libusb_free_device_list(devs, 1);
libusb_exit(context);
return 0;
}
这是我的输出:
anubhav@anubhav-Inspiron-3421:~/Desktop/usb$ ./usbtest
9 devices found
Number of possible configs is 103
Vendor: 0
Product ID: 0
Interface: 1
Number of possible configs is 103
Vendor: 0
Product ID: 0
Interface: 1
Number of possible configs is 103
Vendor: 0
Product ID: 0
Interface: 2
Number of possible configs is 103
Vendor: 0
Product ID: 0
Interface: 4
Number of possible configs is 103
Vendor: 0
Product ID: 0
Interface: 1
Number of possible configs is 103
Vendor: 0
Product ID: 0
Interface: 1
Number of possible configs is 103
Vendor: 0
Product ID: 0
Interface: 1
Number of possible configs is 103
Vendor: 0
Product ID: 0
Interface: 1
Number of possible configs is 103
Vendor: 0
Product ID: 0
Interface: 1
这是 lsusb 显示的内容:
anubhav@anubhav-Inspiron-3421:~/Desktop/usb$ lsusb
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 004: ID 064e:812c Suyin Corp.
Bus 001 Device 007: ID 0a5c:21d7 Broadcom Corp. BCM43142 Bluetooth 4.0
Bus 001 Device 003: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
需要帮助定位错误(如果有的话)。
最佳答案
一定是某处不小心跳过了一行...我建议你添加以下行,否则 ret
被初始化:
int ret;
int i,j,k;
ret = libusb_get_device_descriptor(dev, &desc);//this line !
if(ret<0)
{
fprintf(stderr,"error in getting device descriptor\n");
return;
}
要将输出与 lsusb
的输出进行比较,将 %x
更改为打印 idVendor
和 idProduct
使用十六进制格式。
printf("Vendor: %x\n",desc.idVendor);
printf("Product ID: %x\n",desc.idProduct);
下面的问题libusb semi-working, but libusb_device_descriptor undeclared?有助于找到丢失的行。这个帮助我链接了 libusb
Libusb undefined reference to它建议通过 gcc main.c -o main -lusb-1.0
编译。
关于c - 使用 libusb 输出不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29083184/
正在尝试安装 rtl-sdr (通过 git clone git://git.osmocom.org/rtl-sdr.git )感谢说明 here但不能超过 make在第一个指令序列中: cd rtl
好吧,我可能在做一些愚蠢的事情,但我无法让 libusb 让我终生将数据传输到我的设备。 代码: #include #include #include #include #include #
我运行这个 libusb_control_transfer(usb_handle,0xA1, 1, 0, 1, buf, 0x800, 1000); 并得到错误 libusb:error [submi
libusb 可让您通过设备的供应商和产品 ID 查找设备。但是,如果我有多个连接了相同 VID 和 PID 的设备,并且想通过知道其中一个的序列号来获取其中一个的句柄怎么办?有一个 libusb_o
我目前在Windows 7开发人员中。工作环境以获取使用libusbdotnet初始化的设备。 该设备(USB大容量存储设备)使用Windows的默认USB-MASS Storage驱动程序连接并运行
我正在尝试使用 libusb1.0.9 实现用户空间 USB 驱动程序。我有 lpc2148 蓝板(ARM7)。这个板由 Bertrik Sikken 先生加载了开源 USB 堆栈/固件。现在我的用户
我知道这件事太简单了,我会恨自己不得不问这个问题,但我的头因反复点击桌面而感到疼痛。我已经阅读了数十个 stackoverflow 和 google 结果,这些结果表明以下内容应该有效: $ ls /
我知道关于这个问题有很多问题,但具体来说我在 Ubuntu 上实现 libusb 库时遇到了问题。这是我的代码: struct usb_bus *busses; struct usb_bus *bus
我需要一些有关 Java 中 IllegalStateException 的帮助。我得到了一个应该从 USB 设备读取数据的源代码。 该代码尚未完成,但我已经收到以下错误报告 Exception in
我使用 libusb-1.0.9 和 NDK (Android 4.0.4+) 编写 Android 应用程序,它必须从 USB 声卡读取音频数据。来自 libusb 的 USB 设备成功打开,并且可
我正在编写的应用程序的一部分使用 libusb 与设备通信,我很难测试我的代码。是否有创建假 usb 设备的框架或其他模拟 libusb 的方法,以便更好地自动化测试、能够在 CI 上进行测试、重现边
这个问题不太可能帮助任何 future 的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visit
我知道我的问题很基础,我有点不好意思问。所以我在我的 Oculus Rift 上使用 VRUI 时遇到了一些问题,而且我遇到了 USB 问题,所以为了进行完整性检查,我下载了 libusub-1.0.
我正在运行 Ubuntu 12.04 编译一个包含以下代码的 c++ 文件 #include #include using namespace std; int main(){ //poi
我正在尝试构建一个使用 libusb 的程序,但出现了很多错误,例如 i2cbrdg.c:84: error: implicit declaration of function ‘usb_init’
在 Linux 中使用 libusb 时是否有批量传输的最大长度? 例如,您可以传递任何正值作为函数 libusb_fill_bulk_transfer 的长度参数吗? 最佳答案 理论上它是目标系统上
我正在尝试使用 libusb-1.0 和 QtUsb 库访问 USB 设备。在我做一些更新之前,它是一个简单的批量设备。目前我在用 Linux nadhh.fritz.box 4.11.8-200.f
我正在编写一个简单的库,它使用 libusb 连接到我的自定义硬件,每 50 毫秒向主机设备发送一次信号。它旨在提供一个简单的抽象层,以便用户根本不会为 libusb 所困扰。我需要将指向非静态类成员
我使用 libusb 来枚举一些 USB 设备。现在我想获得“设备路径”。我认为它不叫 usb device-path,因为我用 google 没有成功。 如果我将 usb 设备与 linux 连接,
我正在使用此教程 link发送一个字符串以将其打印出来。然而,即使打印机显示“正在接收数据”,数据也不会被打印。在代码本身中,libusb_bulk_transfer 返回我想要打印的字符串中的字符数
我是一名优秀的程序员,十分优秀!