2016-12-19 6 views
0

pardon my english, поскольку английский не является моим основным языком.Поиск деталей единственного устройства USB, подключенного с помощью java

Я в настоящее время студент - откровенен, и я пытаюсь работать над своим проектом.

Используемые языки JAVA и IDE - затмение.

В настоящее время я использовал LIBUSB для своего проекта, который я загрузил с http://usb4java.org/. это очень полезно, и мне удалось получить список деталей моих устройств. Итак, моя проблема заключается ... скажем, я просто хочу идентифицировать, например, устройство 004. Есть ли какие-либо предложения по этому поводу. ? Я пробовал со сканированием его два раза и сравнивал вывод, но не смог из-за того, что данный тип данных не соответствует. Сначала я думал, что тип данных может быть arraylist, но нет. Есть ли другой способ сохранить вывод в текстовый файл, чтобы я мог сравнивать?

мои коды, которые я взял с примера libusb онлайн.

public class UsbBench { 
/** 
* Main method. 
* 
* @param args 
*   Command-line arguments (Ignored) 
* @throws IOException 
*/ 
public static void main(String[] args) throws IOException 
{ 
    // Create the libusb context 
    Context context = new Context(); 

    // Initialize the libusb context 
    int result = LibUsb.init(context); 
    if (result < 0) 
    { 
     throw new LibUsbException("Unable to initialize libusb", result); 
    } 

    // Read the USB device list 
    DeviceList list = new DeviceList(); 

    result = LibUsb.getDeviceList(context, list); 
    if (result < 0) 
    { 
     throw new LibUsbException("Unable to get device list", result); 
    } 

    try 
    { 
     // Iterate over all devices and list them 
     for (Device device: list) 
     { 
      int address = LibUsb.getDeviceAddress(device); 
      int busNumber = LibUsb.getBusNumber(device); 
      DeviceDescriptor descriptor = new DeviceDescriptor(); 
      result = LibUsb.getDeviceDescriptor(device, descriptor); 
      if (result < 0) 
      { 
       throw new LibUsbException(
        "Unable to read device descriptor", result); 
      } 

     } 

    } 
    finally 
    { 
     // Ensure the allocated device list is freed 
     LibUsb.freeDeviceList(list, true); 
    } 



    // Deinitialize the libusb context 
    LibUsb.exit(context); 
} 

}

И это хорошо работает также. ВЫВОД:

Bus 002, Device 003: Vendor 1bcf, Product 2c6e 
Bus 001, Device 002: Vendor 06cb, Product 2970 
Bus 001, Device 003: Vendor 0461, Product 4ded 
Bus 001, Device 001: Vendor 8086, Product 8c31 
Bus 002, Device 001: Vendor 8086, Product 8c26 
Bus 002, Device 004: Vendor 04ca, Product 300b 
Bus 002, Device 005: Vendor 8087, Product 8000 

Так что моя проблема ... скажем я просто хочу, чтобы идентифицированный, например устройства 004. Есть ли какие-либо предложения по этому вопросу. ? Это также мой первый раз в stackoverflow. Я смиренно ищут свой опыт. Благодарю. Благодарю.

+0

Что вы имеете в виду под "identifty устройство на шине 002 устройства 004"? Вы имеете в виду выяснить, что устройство физически? Вы спрашиваете, как интерпретировать коды поставщиков и продуктов? Попробуйте [репозиторий USB ID] (http://www.linux-usb.org/usb-ids.html) –

+0

Также [База данных USB ID] (http://www.the-sz.com/products/usbid/) –

+0

Что я имею в виду ... Я хочу сузить до всего лишь один USB, а не весь весь список. Попытка улучшить код, чтобы он мог быть гибким при обнаружении USB-устройств. –

ответ

0

Вы можете узнать несколько сведений о своем USB-устройстве из настроек вашей операционной системы, но я рекомендую вам скачать это программное обеспечение (http://www.nirsoft.net/).

он позволяет вам проверять все устройства, подключенные к вашему компьютеру, и знать несколько сведений об этом (пример: VendorId & ProductId), которые позволяют распознавать ваше устройство.

example USB