页面

2009-04-10

jadex example snippets of communicating with java object

  1. Sender ADF:

     <!-- query feature data -->
    <plan name="feature">

    <body class="unbc.mas.capp.setup.simple_hole.PlanProcessingSimpleHole2" />

    <trigger>
    <condition>$beliefbase.is_time_for_querying_feature</condition>
    </trigger>

    </plan>

    .
    .
    .

    <!-- query feature -->
    <messageevent name="query_feature" type="fipa">

    <parameter name="conversation-id" class="String">
    <value>SFipa.createUniqueId($scope.getAgentName())</value>
    </parameter>

    <parameter name="language" class="String" direction="fixed">
    <value>SFipa.NUGGETS_XML</value>
    </parameter>

    <parameter name="content-class" class="Class">
    <value>unbc.mas.capp.feature.SimpoleHole.class</value>
    </parameter>

    </messageevent>
  2. Sender plan body:

     public void body() {

    System.out.println("Setup: Query feature data time!!!!");

    SimpleHole sh = new SimpleHole("f_sh_001", 12.0f, 16.0f);

    IMessageEvent me = createMessageEvent("query_feature");
    me.getParameterSet(SFipa.RECEIVERS).addValue(new AgentIdentifier("workpiece", true));
    me.setContent(sh);

    System.out.println("Setup: Waiting for query result of feature ...");
    IMessageEvent reply = sendMessageAndWait(me, 2000);

    sh = (SimpleHole)reply.getContent();

    System.out.println("Setup: The feature:::");
    System.out.println("Setup: Hole diameter: " + sh.getDiameter());


    }

  3. Receiver ADF:

     <!-- plan to reply query for feature of simple hole -->
    <plan name="query_feature">

    <body class="unbc.mas.capp.workpiece.PlanWorkPiece2"></body>

    <trigger>
    <messageevent ref="query_feature"></messageevent>
    </trigger>

    </plan>

    .
    .
    .

    <!-- query feature -->
    <messageevent name="query_feature" type="fipa">

    <parameter name="content-class" class="Class">
    <value>unbc.mas.capp.feature.SimpoleHole.class</value>
    </parameter>

    </messageevent>

  4. Receiver plan body:

     public void body() {

    IMessageEvent me = (IMessageEvent)getInitialEvent();

    SimpleHole sh = (SimpleHole)me.getContent();
    System.out.println("Workpiece: Got feature object sh");

    sh.setDiameter(24.0f);

    IMessageEvent reply = me.createReply("query_feature", sh);
    sendMessage(reply);
    System.out.println("Workpiece: Replied query");

    }

没有评论: