3

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:

これを回避して読み取りデータを取得するにはどうすればよいですか?
助けてくれてありがとうクリフ

4

0 に答える 0