2017-09-21 8 views
1

JADEエージェントベースのモデリングから始めます。私のハロー世界の例は次のようになります -JADEエージェントのAIDを設定するには?

public class HelloWorldAgent extends Agent { 
protected void setup() { 
    System.out.println("Hello World! My AID is "+this.getAID()); 
} 
} 

そして、私はこのように、この外側を呼び出す -

public class Main { 
    public static void main(String[] args) { 
    HelloWorldAgent helloWorldAgent = new HelloWorldAgent(); 
    helloWorldAgent.setup(); 
    } 
} 

そして、私が見ている出力がある -

Hello World! My AID is null 

さて、私の質問getメソッドとsetメソッドがないため、AIDを設定する方法は何ですか。それが利用できないので、私はAIDが自動的に割り当てられるものだと思う。そうですか?はいの場合、エージェントがAIDを取得する方法を確認するにはどうすればよいですか?ありがとう。

答えて

3

まず、コンテナを作成することをお勧めします。あなたは、あなたのメインの方法でこの方法を試すことができます。

public static void main(String[] args) throws Exception { 
    ProfileImpl p = new ProfileImpl(); 
    p.setParameter(Profile.MAIN_HOST, "localhost"); 
    p.setParameter(Profile.GUI, "true"); 

    ContainerController cc = Runtime.instance().createMainContainer(p); 

    AgentController ac = cc.createNewAgent("myAgent", "HelloWorldAgent", new Object[] { }); 
    ac.start(); 
} 

getAID()のgetLocalName()このケースでは "myagentという" を返します。

0

JADEフレームワークを実際に使用していないことがわかります。 helloWorldAgent.setup()メソッドを呼び出すだけです。これを試して、JADEノートを起動してください。ブートオプション0,1,2は必要です。

public static void main(String[] args) { 
     // TODO code application logic here 
     String[] bootOptions = new String[7]; 
     bootOptions[0] = "-gui"; 
     bootOptions[1] = "-local-port"; 
     bootOptions[2] = "1111"; 
     bootOptions[3] = "-container-name"; 
     bootOptions[4] = "Launch container"; 
     bootOptions[5] = "-agents"; 
     bootOptions[6] = "myFirstAgent:package.HelloWorldAgent"; 
     jade.Boot.main(bootOptions); 


    } 
関連する問題