注意:私が使用しているライブラリはJava Simple Serial Connectorと呼ばれていますが、この質問は、一般的なシリアル ポートに対する Java コーディングと、それに関連する戦略に関するものです。
Java ライブラリ (上記の JSSC) を使用して、シリアル ポートからデータを読み取ります。ライブラリでは、使用可能なすべてのバイトについてポートをポーリングする必要があります。しかし、これは私が心配しています.2つの異なるポーリング試行の間に、データが(シリアルデバイスから)ポートにストリーミングされ、おそらく「失われる」可能性があるためです.
ハードウェア層に、シリアルポートに着信するデータをバッファリングする何らかの種類のバッファリング/キャッシュメカニズムがない限り。その場合、ライブラリの API は理にかなっています。おそらく、バッファを調べて、その中にキューに入っているものをすべて読み取るからです。だから私は尋ねます:
- そのような「シリアルポートバッファ」はありますか? もしそうなら、それは何ですか?そうでない場合、シリアルポートの読み取りを「ロスレス」にするための戦略はありますか?
- そのようなバッファがある場合、どのように機能しますか? いっぱいになるとどうなりますか?
- 私が使用している Java lib は、シリアル ポート データを
byte[]
's;として読み取ります。ByteArrayInputStream
これらからa を構築するのは理にかなっていbyte[]
ますか? そうすることで、どんな利益が得られるでしょうか?