Я пытаюсь заставить работать пакет usb4java. Я получаю базовое соединение, но когда я пытаюсь получить продукт, серийный номер или производителя, я получаю ошибку USB 12 или 8. Я думаю, что, возможно, перепутал библиотеки.
Я использую 64-разрядную ОС Win 7 Pro с пакетом обновления 1. Версия Eclipse: Luna Service Release 2 (4.4.2) Идентификатор сборки: 20150219-0600.
У меня есть следующие библиотеки:
Код:
` импортировать java.io.; импортировать java.util.; импортировать javax.usb.*;
public class PrettyUSBDeviceLister
{
public static void main(String[] args) throws UnsupportedEncodingException, UsbException
{
UsbServices services = UsbHostManager.getUsbServices();
UsbHub root = services.getRootUsbHub();
System.out.println(" USB Root Hub: ");
listDevices(root);
} // main
public static void listDevices(UsbHub hub)
{
String prod = "";
String sn = "";
String man = "";
List<UsbDevice> devices = hub.getAttachedUsbDevices();
Iterator<UsbDevice> iterator = devices.iterator();
while ( iterator.hasNext())
{
UsbDevice device = iterator.next();
if((device.isUsbHub()))
{
System.out.println("HUB: ");
listDevices((UsbHub)device);
}
try {
prod = device.getProductString();
} catch (UnsupportedEncodingException e) {
prod = "UEE";
} catch (UsbException e) {
String ts = e.getLocalizedMessage();
System.out.println(" USB e L msg = "+ts);
prod = "UsbException\n " + e.toString();
} catch (UsbDisconnectedException e) {
prod = "USBdis";
}
System.out.println("Product : "+prod);
try {
sn = device.getSerialNumberString();
--similar to the above--
}
System.out.println("Serial #: "+sn);
try {
man = device.getManufacturerString();
--similar to the above--
}
System.out.println("Manufact: "+man);
System.out.println();
}
System.out.println(" ... end Hub ....");
} // static void listdevices(UsbHub root)
} // class PrettyUSBDeviceLister
` Я включил одну из следующих ошибок. Я получаю ошибку 8, 13 или NULL для всех вызовов для получения продукта, серийного номера или производителя,
Вывод программы:
USB Root Hub:
USB e L msg = Ошибка USB 12: Не удается открыть устройство Шина 008 Устройство 002: ID 1058:1078: Операция не поддерживается или не реализована на этой платформе Продукт: UsbException Ошибка USB 12 Серийный номер: UsbException Ошибка USB 12 javax.usb.UsbPlatformException : Ошибка USB 12: Не удается открыть устройство. Шина 008. Устройство 002: ID 1058:1078: Операция не поддерживается или не реализована на этой платформе по адресу org.usb4java.javax.ExceptionUtils.createPlatformException(ExceptionUtils.java:39) по адресу org.usb4java. javax.AbstractDevice.open(AbstractDevice.java:226) на org.usb4java.javax.AbstractDevice.getLanguages(AbstractDevice.java:538) на org.usb4java.javax.AbstractDevice.getUsbStringDescriptor(AbstractDevice.java:507) на org.usb4java .javax.AbstractDevice.getString(AbstractDevice.java:526) в org.usb4java.javax.AbstractDevice.getManufacturerString(AbstractDevice.java:304) в PrettyUSBDeviceLister.listDevices(PrettyUSBDeviceLister.java:65) в PrettyUSBDeviceLister.main(PrettyUSBDeviceLister.java: 17) Производство t: UsbException Ошибка USB 12
USB e L msg = Ошибка USB 8: невозможно получить языки строковых дескрипторов: переполнение Продукт: UsbException Ошибка USB 8: серийный номер: null javax.usb.UsbPlatformException: ошибка USB 8: невозможно получить языки строковых дескрипторов: переполнение на org.usb4java .javax.ExceptionUtils.createPlatformException(ExceptionUtils.java:39) в org.usb4java.javax.AbstractDevice.getLanguages(AbstractDevice.java:544) в org.usb4java.javax.AbstractDevice.getUsbStringDescriptor(AbstractDevice.java:507) в org. usb4java.javax.AbstractDevice.getString(AbstractDevice.java:526) в org.usb4java.javax.AbstractDevice.getManufacturerString(AbstractDevice.java:304) в PrettyUSBDeviceLister.listDevices(PrettyUSBDeviceLister.java:65) в PrettyUSBDeviceLister.main(PrettyUSBDeviceLister.java :17) Изготовление: UsbException Ошибка USB 8:
Как избежать этого и получить прочитанные данные?
Спасибо за помощь, Клифф.