Communication ente deux agent en jade

chezwadi Messages postés 2 Date d'inscription jeudi 2 avril 2009 Statut Membre Dernière intervention 13 avril 2010 - 13 avril 2010 à 01:14
chezwadi Messages postés 2 Date d'inscription jeudi 2 avril 2009 Statut Membre Dernière intervention 13 avril 2010 - 13 avril 2010 à 12:05
salut
je voudrai faire un contrôle sur la réception et le renvoi d'un message entre deux agent mais ca ne marche pas.Voici mon code.Si vous pouvez m'aider, merci bien.
la c'est l'agent qui doit répondre:
addBehaviour(new CyclicBehaviour(this) {

@SuppressWarnings("static-access")
public void action() {
obj[0]="a";
// Attente de message (de l'agent Acheteur)
ACLMessage msg = receive(MessageTemplate.MatchPerformative(ACLMessage.INFORM));
if (msg != null) {

Object[] obj1 = null;
try {
obj1 = (Object[]) msg.getContentObject();
} catch (UnreadableException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (obj1[0]==obj[0]){
obj[1]=obj1[1];
System.out.println("lanouvelle valesur est"+obj);
}
ACLMessage reply = msg.createReply();

// Le contenu de réponse est recue
reply.setContent("recue");

// Envoyer la réponse à l'agent001
send(reply);
System.out.println(getLocalName()+" recue ");

// Suppression de l'agent002
doDelete();

}
else {

//Pendant que le message n'est pas encore arrivé le comportement est bloqué
block();
}
et ce lui de l'agent qui envoi le message
Object[] obj={"a",20};
protected void setup(){
System.out.println(getLocalName()+" STARTED");
try {
// Création de desciprion de l'agent [Vendeur]
DFAgentDescription dfd = new DFAgentDescription();
dfd.setName(getAID());
// Enregistrement de la description de l'agent dans DF (Directory Facilitator)
DFService.register(this, dfd);
System.out.println(getLocalName()+" REGISTERED WITH THE DF");
} catch (FIPAException e) {
e.printStackTrace();
}

/* Préparation du message à envoyer vers l'agent002
*/
ACLMessage msg = new ACLMessage(ACLMessage.INFORM);

// Remplissage de contenue du message
try {
msg.setContentObject(obj);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

// Préciser les agents destinataires du message qui est l'agent002 dans ce cas
msg.addReceiver(new AID("Agent002", AID.ISLOCALNAME));
// Envoyer le message a tout les agents
send(msg);
et encore merci bien
et c'est ma première fois que je participe dans ce site

2 réponses

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
13 avril 2010 à 07:41
Bonjour,

Peut être devrais tu expliquer quelle erreur tu obtiens, ce qui ne marche pas, est ce que c'est une erreur de compilation, d'execution, ou bien n'y a t'il pas d'erreur mais que ca ne fonctionne pas.
0
chezwadi Messages postés 2 Date d'inscription jeudi 2 avril 2009 Statut Membre Dernière intervention 13 avril 2010
13 avril 2010 à 12:05
Bonjour,
désolé de ne pas préciser la première fois mais mon m'affiche ceci:
ERROR: Agent Agent002 died without being properly terminated !!!
State was 2
et encore merci.
0
Rejoignez-nous