0

JavaxパッケージとJavaのUSBユーティリティを使用して、USBハンドヘルドバーコードスキャナーからデータを読み取ろうとしています。デバイスを検出でき、バーコードを読み取ることができます。

ただし、結果は以下の形式のバイト配列です。3 番目のバイト配列位置に必要な元の数よりも 1 つ少ない数を示しています。キャリッジリターンも付けました。(ASCII 標準によると) 13 ではなく、キャリッジ リターンに 40 を返します。

HOneywell ハンドヘルド スキャナー xenon 1900 を使用しています。

何が問題なのか教えてください。
たとえば、必要な出力は 20131503000140300 で、受け取った出力は

[0, 0, 31, 0, 0, 0, 0, 0]
[0, 0, 39, 0, 0, 0, 0, 0]
[0, 0, 30, 0, 0, 0, 0, 0]
[0, 0, 32, 0, 0, 0, 0, 0]
[0, 0, 30, 0, 0, 0, 0, 0]
[0, 0, 34, 0, 0, 0, 0, 0]
[0, 0, 39, 0, 0, 0, 0, 0]
[0, 0, 32, 0, 0, 0, 0, 0]
[0, 0, 39, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 39, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 39, 0, 0, 0, 0, 0]
[0, 0, 30, 0, 0, 0, 0, 0]
[0, 0, 33, 0, 0, 0, 0, 0]
[0, 0, 39, 0, 0, 0, 0, 0]
[0, 0, 32, 0, 0, 0, 0, 0]
[0, 0, 39, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 39, 0, 0, 0, 0, 0]
[0, 0, 40, 0, 0, 0, 0, 0]

スキャン済み

使用したサンプルコード

 while (running) {

     try {
              length = usbPipe.syncSubmit(buffer);
         } catch (UsbException uE) { }

         for (int i = 0; i < length; i++) {
              long scannedDigit = UsbUtil.unsignedLong(buffer[i]);
               System.out.print(".long." + scannedDigit);

            }
}
4

0 に答える 0