public void onStart() { if (ignoredConversations == null) { ignoredConversations = new ConversationList(myAgent); } // Unless a template is explicitly set, we get messages matching the ontology, the served // performatives. if (template == null) { if (servedPerformatives != null) { template = MessageTemplate.and( MessageTemplate.MatchOntology(onto.getName()), new MessageTemplate( new MatchExpression() { public boolean match(ACLMessage msg) { int perf = msg.getPerformative(); for (int p : servedPerformatives) { if (p == perf) { return true; } } return false; } })); } else { // No performative specified --> Match all template = MessageTemplate.MatchOntology(onto.getName()); } } // Whatever template is used we avoid intercepting messages belonging to external conversations template = MessageTemplate.and(template, ignoredConversations.getMessageTemplate()); // Register Ontology and Language ContentManager cm = myAgent.getContentManager(); if (cm.lookupOntology(onto.getName()) == null) { cm.registerOntology(onto); } this.codec = (codec != null ? codec : new SLCodec()); if (cm.lookupLanguage(codec.getName()) == null) { cm.registerLanguage(codec); } }
public void setup() { System.out.println("ASU.setup()"); getContentManager().registerLanguage(codec); getContentManager().registerOntology(ontology); ACLMessage aclmsg = new ACLMessage(ACLMessage.REQUEST); AssignPowerRequest apr = new AssignPowerRequest(); apr.setAssignedPower(100000); aclmsg.setLanguage(codec.getName()); aclmsg.setOntology(ontology.getName()); aclmsg.setProtocol(FIPANames.InteractionProtocol.FIPA_REQUEST); aclmsg.setReplyByDate(new Date(System.currentTimeMillis() + 30000)); AMSAgentDescription[] agents = null; try { SearchConstraints c = new SearchConstraints(); c.setMaxResults(new Long(-1)); agents = AMSService.search(this, new AMSAgentDescription(), c); } catch (Exception e) { System.out.println("Problem searching AMS: " + e); e.printStackTrace(); } for (AMSAgentDescription agent : agents) { AID agentID = agent.getName(); try { getContentManager().fillContent(aclmsg, new Action(agentID, apr)); } catch (Exception e) { e.printStackTrace(); } System.out.println(agentID.getLocalName()); if (agentID.getLocalName().compareTo("TURBINE") != 0) continue; aclmsg.clearAllReceiver(); aclmsg.addReceiver(agentID); System.out.println("Sending to " + agentID); addBehaviour(new ASURequestInitiatorBehaviour(this, aclmsg)); try { Thread.yield(); Thread.sleep(5000); } catch (Exception e) { System.out.println("INTERRUPT"); } ACLMessage aclmsg2 = new ACLMessage(ACLMessage.REQUEST); BeginPowerTransitionRequest bptr = new BeginPowerTransitionRequest(); bptr.setAssignedPowerValid(false); aclmsg2.setLanguage(codec.getName()); aclmsg2.setOntology(ontology.getName()); aclmsg2.setProtocol(FIPANames.InteractionProtocol.FIPA_REQUEST); aclmsg2.setReplyByDate(new Date(System.currentTimeMillis() + 30000)); try { getContentManager().fillContent(aclmsg2, new Action(agentID, bptr)); } catch (Exception e) { e.printStackTrace(); } aclmsg2.clearAllReceiver(); aclmsg2.addReceiver(agentID); System.out.println("Sending to " + agentID); addBehaviour(new ASURequestInitiatorBehaviour(this, aclmsg2)); } }