Пожалуйста, посмотрите на следующий код
#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, я могу получить все детали. Смотрите следующее изображение
Что случилось с моим кодом? Или если это просто не подходит? Пожалуйста помоги!
Просто запустив инсталлятор для игрушки и проверив, что она дает, он не описывает 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
Надеюсь, это поможет.
Других решений пока нет …