@Override public void action() { MessageTemplate messageTemplate = MessageTemplate.MatchConversationId(CONVID_ACL_MESSAGE); ACLMessage messageRecu = myAgent.receive(messageTemplate); if (messageRecu != null) { // Si le problème n'est pas chargé, refuser if (((AgentGestionPopulation) myAgent).getMonProbleme() == null) { ACLMessage refuse = new ACLMessage(ACLMessage.REFUSE); gererMessage(refuse, messageRecu, "problem is not loaded"); } // Si l'acte est de type REQUEST, analyser le message if (messageRecu.getPerformative() == ACLMessage.REQUEST) { // Si le language est correct, traiter la demande de génération if (messageRecu.getLanguage() != null && messageRecu.getLanguage().equals(LANGUAGE_ACL_MESSAGE)) { String content = messageRecu.getContent(); // Si le contenu est conforme (nb d'individus), les générer if (content != null) { try { int nbIndividu = Integer.parseInt(content); // throw NumberFormatException ACLMessage agreeMessage = new ACLMessage(ACLMessage.AGREE); gererMessage(agreeMessage, messageRecu, ""); ProblemeCARP p = ((AgentGestionPopulation) myAgent).getMonProbleme(); ((AgentGestionPopulation) myAgent) .getPopulationGlobale() .genererIndividus(nbIndividu, p); ACLMessage informMessage = new ACLMessage(ACLMessage.INFORM); gererMessage(informMessage, messageRecu, "done"); } catch (NumberFormatException nfException) { ACLMessage refuse = new ACLMessage(ACLMessage.REFUSE); gererMessage(refuse, messageRecu, "invalid arguments"); } } else { ACLMessage refuse = new ACLMessage(ACLMessage.REFUSE); gererMessage(refuse, messageRecu, "invalid arguments"); } } else { ACLMessage refuse = new ACLMessage(ACLMessage.REFUSE); gererMessage(refuse, messageRecu, "invalid ACL language"); } } else { ACLMessage notUnderstoodMessage = new ACLMessage(ACLMessage.NOT_UNDERSTOOD); gererMessage(notUnderstoodMessage, messageRecu, "AGPop only serves request"); } } else block(); }
@Override public void action() { SNumGente numGente = new SNumGente(2); STemperatura sense = new STemperatura(); AireAcond vent = new AireAcond(); imprimir = sense.toString() + vent.toString(); if (sense.getVar() > 20) { vent.encender(); } else { if (sense.getVar() < 13) { vent.apagar(); } } System.out.println(sense.toString()); System.out.println(vent.toString()); ACLMessage mensajeRioCoca = getAgent().blockingReceive(); if (mensajeRioCoca != null) { System.out.println(getAgent().getLocalName() + ": acaba de recibir el siguiente mensaje: "); System.out.println(mensajeRioCoca); } ACLMessage respuestaRioCoca = new ACLMessage(ACLMessage.INFORM); respuestaRioCoca.setSender(getAgent().getAID()); respuestaRioCoca.setLanguage(mensajeRioCoca.getLanguage()); respuestaRioCoca.addReceiver(mensajeRioCoca.getSender()); respuestaRioCoca.setContent(String.valueOf(numGente.getVar())); System.out.println(getAgent().getLocalName() + ": Enviando contestacion"); System.out.println(respuestaRioCoca); getAgent().send(respuestaRioCoca); // throw new UnsupportedOperationException("Not supported yet."); //To change body of generated // methods, choose Tools | Templates. }