2016-07-18 13 views
0

私はusb4javaを使用していますが、ヘルプページ(http://usb4java.org/quickstart/javax-usb.html)に記載されている例を使用して、同期I/O(pipe.syncSubmit)でレシートプリンタにデータを印刷しました。 LF(10)を押して出力をフラッシュします。usb4java - フラッシュが機能しない

中国の58mmモデルではうまくいきますが、エプソンの80mmプリンタに接続すると、出力がランダムにカットされます。ほとんどの場合、最後の行がありません。

LFを送信し、パイプを閉じて、すべてのバイトがプリンタに確実に送信されるように、UsbInterfaceを解放するだけでは不十分ですか?どういうわけか非アクティブにする必要のある非大容量ストレージデバイスに何らかのフラッシュ操作や書き込みキャッシュがありますか?

答えて

0

最大4バイトのチャンクを持つpipeコマンドを使用してみてください。

pipe.syncSubmit(new byte[] { 70, 71, 72, 73}); 
pipe.syncSubmit(new byte[] { 74, 75, 76, 10}); 

最後のバイトとして、改行(プリンタへの出力をフラッシュする)が10である必要があります。

これは私にとって助けになりました(USBデバイスによって発表されたパケットサイズは64でしたが)。 usb4javaにバグやその他の問題があるかどうかは不明です。

関連する問題