Невозможно определить устройство USB

Пожалуйста, посмотрите на следующий код

#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, но не могу получить ее идентификатор поставщика или продукта или хотя бы что-нибудь связанное с этим! Смотрите следующее изображение

Но используя программное обеспечение USBDView, я могу получить все детали. Смотрите следующее изображение

Что случилось с моим кодом? Или если это просто не подходит? Пожалуйста помоги!

1 ответ

Просто запустив инсталлятор для игрушки и проверив, что она дает, он не описывает API или документацию для доступа к ней как к последовательному порту.

Если вы использовали какую-то программу мониторинга в своей программе, вы можете перепроектировать, как она управляет устройством.

Может быть проще просто взаимодействовать с их пользовательским интерфейсом напрямую. Используя такую ​​программу, как AHK, или вызывая SendInput() для координат относительно верхнего левого угла их пользовательского интерфейса, вы можете указать направление устройства.

Интерфейс ракетной пусковой установки

РЕДАКТИРОВАТЬ: Дополнительные ссылки, связанные с этим: Поскольку устройство 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

Надеюсь, это поможет.

Другие вопросы по тегам