usb4java パッケージを機能させようとしています。基本的な接続はできますが、製品、シリアル番号、または製造元を取得しようとすると、USB エラー 12 または 8 が表示されます。ライブラリが台無しになっている可能性があります。
Win 7 Pro 64 ビット OS Service Pack 1 を使用しています。Eclipse バージョン: Luna Service Release 2 (4.4.2) ビルド ID: 20150219-0600。
私が持っているライブラリは次のとおりです。
コード:
` import 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
` 以下のエラーの eacn の 1 つを含めました。製品、シリアル番号、または製造元を取得するためのすべての呼び出しで、エラー 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.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) at org.usb4java.javax.AbstractDevice.getManufacturerString(AbstractDevice.java:304) at PrettyUSBDeviceLister.listDevices(PrettyUSBDeviceLister.java:65) at PrettyUSBDeviceLister.main(PrettyUSBDeviceLister.java:17) メーカー: 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) at org.usb4java.javax.AbstractDevice.getManufacturerString(AbstractDevice.java:304) at PrettyUSBDeviceLister.listDevices(PrettyUSBDeviceLister.java:65) at PrettyUSBDeviceLister.main(PrettyUSBDeviceLister.java) :17) メーカー: UsbException USB エラー 8:
これを回避して読み取りデータを取得するにはどうすればよいですか?
助けてくれてありがとうクリフ