Невозможно определить устройство 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
Надеюсь, это поможет.