問題タブ [lejos-nxj]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
visual-studio - 外部コンパイラを使用するVisualStudio2005でJavaのような言語(LeJOS NXJ)を設定するにはどうすればよいですか?
最近、レゴマインドストームロボットを制御するために、JDKとLeJOSNXJというJavaライブラリをインストールしました。J#カラーコーディングを提供するVisualStudioを実行するように言語を設定できるようにしたいと思います。プログラムをコンパイルするためのコマンドラインは次のとおりです。
プログラムをコントローラーにデプロイまたはダウンロードするためのコマンドラインは次のとおりです。
Visual Studioでこれらのオプションを使用する方法を設定するにはどうすればよいですか?
java - Javaで一連のプロシージャを中断するにはどうすればよいですか?
すべてが実行されるか、特定の条件が満たされるまで、連続して実行する必要のある一連のプロシージャがあります。条件が満たされるまで実行する必要がある基本的なコードは次のとおりです。
これまでのところ、私がやりたいことをやろうと思った唯一の方法はこれです:
とへのfalse
パラメーターは、それらがすぐに戻る必要があることを示し、条件をチェックできるようにしますgo()
。spin()
ただし、同じコードブロックを10回繰り返す必要があるため、このアプローチはかなり非効率的です。これは、例外または同時スレッドでより効率的に達成できますか?
firmware - レゴマインドストーム1.0と2.0の違いは何ですか
マインドストームキットを購入することを考えています(現在は所有していませんが、大学で1.0を使用しています)。2.0が1.0よりも優れているかどうかは少しわかりません。私はこの主題に関する他の投稿をすべて一般的に2.0の方が良いと言っているのを見ましたが、これについていくつかのより具体的な質問があり、答えを見つけることができないようです。
2.0キットで入手できるさまざまなレゴピースとセンサーは別として、1.0nxtブリックと2.0nxtブリックの間に違いはありますか?他のソースから判断できることから、インストールされているファームウェアを除いて同じです。1.0キットを購入して、2.0キットに付属しているのと同じファームウェアをインストールでき、ブリックは同じであるか、1.0ブリックは2.0ファームウェアと互換性がないというのは正しいですか?
また、cやjavaなどの別のプログラミング言語を使用する予定なので、librcxやlejosなどの特定のファームウェアをインストールする必要がありますか?したがって、提供されているレゴコーディング方法ではなくcまたはjavaを使用している場合、1.0または2.0(キットのレゴピースを除く)を使用しているかどうかは関係ありませんか?
一言で言えば、私がlibrcxまたはlejosを使用していて、含まれているセンサーやレゴピースを気にしないと仮定すると、1.0キットよりも2.0キットを購入することにメリットはありますか?
前もって感謝します
java - これは有効な Java コードですか?
私はEclipseを使用していますが、次のコードに完全に満足しています:
ただし、実行しているプラットフォームは、上記の行でクラッシュします。クラッシュによって、BSOD に相当すると考えてください。私のコードに何か問題がありますか? それとも、私のプラットフォーム用の Java VM の開発者を探す必要がありますか?
編集:
わかりました、あなたの応答に感謝します。Java VM のバグであることが判明しました。開発者 'gloomyandy' の言葉を引用すると、
これは、静的初期化子を持つインターフェイスの既知の問題です。現在の開発ビルドでは修正されています...
java - このコードが NullPointerException をスローするのは標準的な動作ですか?
私はいくつかのライブラリコードで大きな問題を抱えていました.1つのステートメントに突き止めました:
コードは実際にはそのようには見えませんがprintln
、null 引数で呼び出していることは確かです。これを行うと、アプリケーション全体が予期しないをスローしNullPointerException
ます。
一般に、その状況下でこの例外をスローする必要がありますか、それともインスタンスprintln
の実装が不十分なため、この非標準の動作ですか?out
java - 入力ストリームからデータを読み取るためのヘルプが必要
ロボットとGUIアプリケーションをGUIで実行しています。ロボット側にwhileループがあり、常にGUIにデータを送信しています。
値を送信する前に、GUIが後で読み取る必要のある連続する値の数を決定するために使用する値を最初に送信します。たとえば、次のようなものを送信します。
ここで、GUIは2を読み取り、ケース2では、次の2つの整数を読み取ります。
GUI側では、入力ストリームから継続的に読み取っているスレッドのrun()内にあるiwhileループがあります。
GUIのループ内に、switchcaseステートメントがあります。
例
tは私が望むように機能していません。これは私が得るものです:
最初のintを読み取った後、入力ストリームから読み取っている一連の数値を取得します。それらの数字がどこから来ているのかわかりません。
送信した番号が読めない場合はブロックする必要があると思いましたが、そうではありません。
上記の例では、これは私が得るものです:
2以降のすべての数字はどこから来たのかわかりません。2を送信した後の番号は読み取られません。
Thread.sleep(1000)を挿入しようとしましたが、機能しません。
私は何が間違っているのですか?助けが必要
コード
java - コレクションの問題を解決するには、助けとアイデアが必要です
今日はすでに質問を投稿しました。この質問は同じプロジェクトに関するものですが、無関係です。レゴ NXT マインドストーム ロボット用のアプリケーションを開発しています。PC で 2 つのロボットと GUI を実行しています。
leJOS NXJ では、1 つの入力リーダーしか使用できません。つまり、PC を 2 台のロボットに直接接続することはできず、2 台のロボットを直接接続させることができません。これが私がやったことです。PC を 2 台のロボットに直接接続し、2 台のロボットが直接通信したい場合は、GUI を介してメッセージを送信します。
GUI とロボットの間だけでなく、ロボット同士の間でも多くの通信が行われます。このため、出力ストリームにデータを書き込むたびに、一部のデータが他のデータによって上書きされ、システムが正常に動作していないように見えます。
コレクション(キュー)オブジェクトを保持するクラスを作成して、ロボットが何かを送信したいときはいつでもそれをコレクション(キュー)に追加し、コレクションオブジェクトを保持するそのクラスから、メソッドを使用して、コレクションを常にチェックし、コレクションが空でない場合は常に、コレクション内のデータを出力ストリームに送信します。
これは、コレクション内のデータが出力ストリームに送信されるたびに、新しいデータが追加される可能性があることを意味します。
ArrayBlockQueue などを使用することを提案した人もいますが、これらのクラスは、ロボットが使用する class.jar ファイルでは使用できません。
この jar ファイルで私が知っているコレクション クラスは、Vectors と Queue です。
そのようなクラスを実装する方法のアイデアを教えてくれる人がいるかどうかを尋ねています。クラスのメソッドは、コレクション内にデータがあるかどうかを時々チェックし、出力ストリームを介してそれらを送信します。を送信している間、新しい要素が追加されている可能性があります。
データはある場所から送信されているため、データが他の場所を上書きすることはありません。私には良い考えに思えます。
すべての提案を歓迎します。
ありがとう。
java - Inputstream からのデータの読み取りに再び助けが必要
昨日、入力ストリームの読み取りに関する問題について質問を投稿し、助けられました。
私も同様の状況に陥っていますが、今回は正しいことをしていることはわかっていますが、うまくいきません。
入力ストリームから読み取っていますが、異なる値が得られます。送信するデータをどのように変更しても、値として同じ文字列 (「toForklift-42」) が返されます。最初に、送信する値の前に「toForklift-」を付けますが、その文字列を別の文字列に変更しましたが、括弧内に同じ文字列が表示されます。番号 42 を別の番号に変更しても、プログラムを実行すると、コンソールに同じ文字列が表示されます。以下は送信しているものです:as
送信用と受信用の 2 つのクラス。
leJOS NXJ NXTConnector を使用して接続を確立し、ストリームを開きます。
あなたの助けが必要です。私は6時間を費やしましたが、理由が見つかりません。何を送っても「toForklift-42」と出てくるのでわかりません。
最初は writeInt() メソッドで 42 を送信しようとしましたが、リーダー クラス側で readInt() を使用しましたが、次のような結果が得られました。
だから私はその理由を見つけるために文字列に変更し、見よ、何を送信してもその文字列を取得します。入力ストリームで文字列が固定され、何も送信されないようなものです。何が起こっているのかわかりません。
助けが必要
lejos-nxj - LejosRGBカラーセンサー
Lejosプログラミング言語でNXTRGBカラーセンサーを使用するコード例を持っている人はいますか?setType()とsetMode()のいくつかの異なる使用法を試しましたが、役に立ちませんでした。
java - アプリケーションと一緒にJDKを配布できますか?
私はEnchantingというアプリケーションに取り組んでいます。このアプリケーションは、 Scratchに基づいており、Javaソースコードを出力してコンパイルし、LEGO MindstormsNXTRobotsにアップロードします。
アプリケーションは非常に初期のものですが、ユーザーはそれをインストールするのに苦労しています。
現在、Windowsユーザーは次のことを行う必要があります。
- JavaDeveloperKitをダウンロードしてインストールします
- LeJOS(NXT用のJavaライブラリ)をダウンロードしてインストールします
- おそらく環境変数を微調整する
- その後、Enchanting自体をダウンロード、インストール、実行できます
JDKとLeJOSを含むインストーラーを提供できれば、実行時に環境変数を把握でき、プロセスは次のようになります。
- Enchantingをダウンロード、インストール、実行します
JDKを再配布する方法はありますか?
(ちなみに、Processing(簡略化されたテキストベースのプログラミング環境)はJDKに付属するバージョンを提供しているように見えるので、そうするための正当な方法があるようです)。
補遺:JavaがインストールされていないWindowsユーザーが、単一の.exeファイルを実行してJDK、LeJOS、およびEnchantingをインストールできるようにしたいと思います。