gpt4 book ai didi

c++ - 使用 libusb-win32 与 USB 转 DMX512 接口(interface)通信,找不到任何端点

转载 作者:行者123 更新时间:2023-11-28 05:38:22 26 4
gpt4 key购买 nike

我正在尝试使用 libusb-win32 通过 USB 到 DMX512 接口(interface)将原始数据从我的计算机发送到一组灯。到目前为止,一切似乎都运行良好,除了某些原因程序无法识别适配器上的任何端点。这是我的代码片段:

// initialize
usb_init();
usb_find_busses();
usb_find_devices();
usb_bus busses = *usb_get_busses();

// open the device
struct usb_device *dev = busses.devices;
usb_dev_handle *h = usb_open(dev);
usb_claim_interface(h, 0);

...

// close the device
usb_release_interface(h, 0);
usb_close(h);

当我查看调试器中的结构时,这是其中的数据:

dev {

next //<NULL>
prev //<NULL>
filename //0x008a9938
bus //0x008a9710
descriptor //{bLength = 18 ... }
config {

bLength //9
bDescriptorType //2
wTotalLength //18
bNumInterfaces //1
bConfigurationValue //1
iConfiguration //0
bmAttributes //128
MaxPower //250
interface {

altsetting {

bLength //9
bDescriptorType //4
bInterfaceNumber //0
bAlternateSetting //0
bNumEndpoints //0
bInterfaceClass //0
bInterfaceSubClass //0
bInterfaceProtocol //0
iInterface //0
endpoint //<NULL>
extra //<NULL>
extralen //0
}
num_altsetting //1
}
extra //<NULL>
extralen //0
}
dev //<NULL>
devnum //1
num_children //0
children //<NULL>
}

可以看出,没有识别到​​端点,除此之外只有一个设备、一个配置、一个接口(interface)和一个 altsetting,这就是我陷入死胡同的原因。

所以我试图找出用于写入 USB 的端点地址,或者我拥有的适配器是否可能与该库不兼容。

提前致谢

最佳答案

这只是意味着您只能通过端点 0x00 上的控制传输进行通信。每个设备都必须有一个端点 0 并接受通过该端点的控制传输(因为这是主机 Controller 将与之通信以枚举或配置设备的端点)。控制传输可以在一个端点上读取和写入。

你没有任何关于如何控制这个设备或任何嗅探到的 USB 传输的描述吗?通过随机测试找出所有数据以使用控制传输将花费很长的时间。 ;)

关于c++ - 使用 libusb-win32 与 USB 转 DMX512 接口(interface)通信,找不到任何端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37734216/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com