无法检测USB设备

时间:2013-05-08 15:36:19

标签: c++ qt usb qextserialport

请查看以下代码

#include "MyClass.h"
#include <qstring.h>
#include <qdebug.h>

   MyClass::MyClass()
   {
       QList<QextPortInfo> ports = QextSerialEnumerator::getPorts();

       int counter=0;

       while(counter<ports.size())
       {
       QString portName = ports[counter].portName;
       QString productId= ports[counter].productID;
       QString physicalName = ports[counter].physName;
       QString vendorId = ports[counter].vendorID;
       QString friendName = ports[counter].friendName;


       string convertedPortName = portName.toLocal8Bit().constData();
       string convertedProductId = productId.toLocal8Bit().constData();
       string convertedPhysicalName = physicalName.toLocal8Bit().constData();
       string convertedVendorId = vendorId.toLocal8Bit().constData();
       string convertedFriendName = friendName.toLocal8Bit().constData();

       cout << "Port Name: " << convertedPortName << endl;
       cout << "Product ID:" << convertedProductId << endl;
       cout << "Physical Name: " << convertedPhysicalName << endl;
       cout << "Vendor Id: " << convertedVendorId << endl;
       cout << "Friend Name: " << convertedFriendName << endl;
       cout << endl;
       counter++;

       }
   }

我已连接“Dreamcheeky Thunder Missile Launcher”USB玩具,但我无法获得它的供应商ID或产品ID或至少与之相关的任何内容!见下图

enter image description here

但是使用USBDView软件,我可以获得所有细节。见下图

enter image description here

我的代码有什么关系?或者如果它根本不适合?请帮忙!

1 个答案:

答案 0 :(得分:1)

只需运行玩具的安装程序并检查它的内容,它就不会描述任何用于作为串行端口访问它的API或文档。

如果您在他们的程序中使用某种监控程序,您可以对其命令设备进行逆向工程。

直接与他们的UI交互可能更容易。使用像AHK这样的程序或调用SendInput()来相对于UI左上角的坐标,你可以命令设备的方向。

Missile Launcher UI

编辑:更多与此相关的链接: 由于USB设备未被列为COM#(串口如何显示),并且它是HID设备,因此您需要一个可以与之通信的库。以下是一些可以帮助您实现目标的链接:

http://www.qtcentre.org/threads/41075-USB-HID-connect-on-QT

http://www.signal11.us/oss/hidapi/

https://github.com/iia/Qt_libusb

看起来Robo Realm的那些人已经做过了:

http://www.roborealm.com/help/DC_Missile.php

http://www.roborealm.com/help/USB_HID.php

http://www.roborealm.com/tutorial/usb_missile_launcher/slide010.php

希望有所帮助。