今日はすでに質問を投稿しました。この質問は同じプロジェクトに関するものですが、無関係です。レゴ NXT マインドストーム ロボット用のアプリケーションを開発しています。PC で 2 つのロボットと GUI を実行しています。
leJOS NXJ では、1 つの入力リーダーしか使用できません。つまり、PC を 2 台のロボットに直接接続することはできず、2 台のロボットを直接接続させることができません。これが私がやったことです。PC を 2 台のロボットに直接接続し、2 台のロボットが直接通信したい場合は、GUI を介してメッセージを送信します。
GUI とロボットの間だけでなく、ロボット同士の間でも多くの通信が行われます。このため、出力ストリームにデータを書き込むたびに、一部のデータが他のデータによって上書きされ、システムが正常に動作していないように見えます。
コレクション(キュー)オブジェクトを保持するクラスを作成して、ロボットが何かを送信したいときはいつでもそれをコレクション(キュー)に追加し、コレクションオブジェクトを保持するそのクラスから、メソッドを使用して、コレクションを常にチェックし、コレクションが空でない場合は常に、コレクション内のデータを出力ストリームに送信します。
これは、コレクション内のデータが出力ストリームに送信されるたびに、新しいデータが追加される可能性があることを意味します。
ArrayBlockQueue などを使用することを提案した人もいますが、これらのクラスは、ロボットが使用する class.jar ファイルでは使用できません。
この jar ファイルで私が知っているコレクション クラスは、Vectors と Queue です。
そのようなクラスを実装する方法のアイデアを教えてくれる人がいるかどうかを尋ねています。クラスのメソッドは、コレクション内にデータがあるかどうかを時々チェックし、出力ストリームを介してそれらを送信します。を送信している間、新しい要素が追加されている可能性があります。
データはある場所から送信されているため、データが他の場所を上書きすることはありません。私には良い考えに思えます。
すべての提案を歓迎します。
ありがとう。