2017-02-04 5 views
0

ソースには、「終了時に」フィールドに次のコードがあります。 TRUCK.ID_number = parameter; パラメータ=パラメータ+ 1;Anylogicは、1つのみではなくすべてのエンティティに値を割り当てています

その後、各トラックは受信しますID:1、2、3、...

問題は、すべてのトラックが同時に循環しているということであり、それは毎回新しいトラックが発生しているように見えますコードはすべてのトラックのIDをリセットします。

例:トラック4(ID = 4)がソースで作成されると、他のすべてのトラックがID 4を受信するため、各トラックの正しいIDを知ることができません。

私は間違っていますか?

+0

、それがどのようなタイプですか? 'int'ではなく' Integer'の場合は、 'ID_number'がオブジェクト参照であるため、あなたが挙げた症状を得るでしょう。このようなことがあった場合、私は答えでもっと説明することができます... –

+0

パラメータがメインウィンドウで保持されている、タイプ "int"。 私は本当にここで失われています。それは非常に単純なものでなければなりません...プロセス中に各エンティティのIDやその他の特性を記録し、最後に情報を収集します(シンク) – Leo

答えて

1

いくつか。まず、onExitコードボックスにキーワードagentを使用する必要があります。あなたのケースでは、agent.ID_number=parameter。 AnyLogicのコードボックス内のあらゆる場所にポップアップするこれらのキーワードをお読みください。また、私はそのトピックに私のブログを参照してください、「魔法の電球」それを呼び出す:(彼らは同じ集団に属している場合)

The magic lightbulb

第二には、新しく作成されたエージェントは、自動的に一意のインデックスを取得します。トラックエージェント内でgetIndex()メソッドを使用してアクセスできます。

+0

ありがとうございます!しかし、私はまだ私がここで何か間違っていると思っています。 コードを追加すると、エラーメッセージが表示されます。 agent.ID_number =パラメーター===>エージェントは可変 Agent.ID_number =パラメーターに解決することができない===> ID_numberのレゾルバではないか、フィールド Entity.ID_number =パラメータではないができ===>エンティティ変数に解決できません entity.ID_number =パラメータ===> ID_numberは解決できないか、フィールドではありません – Leo

+0

"エージェント"ではなく小文字の "エージェント"を使用する必要があります。これらのキーワードや一般的なJavaプログラミングを読む必要があります。大文字と小文字が区別されます。また、実際にキーワード "agent"をサポートするコードボックスに入力したことを確認してください(その方法については私のブログを参照してください)。 – Benjamin

-1

答えは:使用entity.ID_number =パラメータあなたは `parameter`フィールドを保持している

+0

レオでは、AnyLogic 6(およびAnyLogic 7で推奨されていないエンタープライズライブラリ)の「エンティティ」です。ただし、AnyLogic 7の「エージェント」です。旧バージョンのソフトウェアを使用する場合は、使用するバージョンを指定してください。乾杯 – Benjamin

関連する問題