2013-05-08 3 views
0

Пожалуйста, посмотрите на следующий кодНевозможно обнаружить 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 Ракетная» игрушка USB, но я не могу получить его Vendor ID или идентификатор продукта или по крайней мере что-нибудь связанные с этим! См этого изображения

enter image description here

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

enter image description here

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

+0

QExtSerial предназначен для последовательных портов, поэтому я предполагаю, что в нем перечислены последовательные устройства (некоторые из эмулируемых), а не USB. Я попробую с libusb. –

+0

@FrankOsterfeld: Я установил его, и он все испортил. Программное обеспечение Toy также перестало работать. В любом случае, если я начну новый поток, ищущий помощь по установке, не возражаете ли вы дать мне пошаговые инструкции? –

+0

@Artificial_Intelligence: вы пробовали QtSerialPort? – lpapp

ответ

1

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

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

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

Missile Launcher UI

EDIT: Другие ссылки, связанные с этим: Поскольку устройство 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

Надежда, что помогает.

+0

Спасибо за ответ. Собственно, это устройство можно запрограммировать. У них есть документация, которая описывает сигналы, которые нам нужно отправить –

+0

У вас есть ссылка на него? – phyatt

+0

Thats для пусковой установки OIC, но они подтвердили, что вещи такие же, кроме отсутствующей камеры. Мне удалось найти, что это правда с помощью программного обеспечения для мониторинга USB –

Смежные вопросы