Communication JADE

Résolu
sassion Messages postés 25 Date d'inscription lundi 1 mars 2010 Statut Membre Dernière intervention 23 août 2012 - 9 juil. 2012 à 21:10
happyranda Messages postés 20 Date d'inscription samedi 7 mai 2011 Statut Membre Dernière intervention 13 novembre 2012 - 13 nov. 2012 à 11:44
Bonjour,

Vraiment je suis bloqué. j'ai un problème lors d'envoie de message. AVEC JADE
En fait, j'utilise 3 familles d'agents qui s’exécutent simultanément. mon problème est que il y a un conflit de message, un message envoyé par Agent1 doit être traité au niveau du comportement 2 de l'agent Agent2 alors que ce message arrive a l'agent Agent2 lorsque ce lui ci est entrain d’exécuter le comportement 1 donc le message en question sera mal traité ou bien je vais avoir des exceptions

Sil vous plait aidez moi
A voir également:

31 réponses

womar2006 Messages postés 20 Date d'inscription mardi 17 octobre 2006 Statut Membre Dernière intervention 13 novembre 2012
12 oct. 2012 à 13:24
Salut,

est ce que chaque agent "receiver" a un behavior active ?
0
sassion Messages postés 25 Date d'inscription lundi 1 mars 2010 Statut Membre Dernière intervention 23 août 2012
12 oct. 2012 à 16:41
Bonjour,
lors de l'envoie et de la réception de message tu dois suivre les paramètres suivants:

Envoie de message:
ACLMessage mes1 =  new ACLMessage(ACLMessage.CFP);
mes1.addReceiver(new AID("AM"+agent, AID.ISLOCALNAME));
mes1.setConversationId("1");


Reception de message
MessageTemplate modele  = MessageTemplate.and(MessageTemplate.MatchPerformative(ACLMessage.INFORM),MessageTemplate.MatchConversationId("1"));	 
ACLMessage msg = myAgent.receive(modele);
while(msg==null && myAgent.getLocalName().equals("DM1")){
block();
modele = MessageTemplate.and(MessageTemplate.MatchPerformative(ACLMessage.INFORM),
                          MessageTemplate.MatchConversationId("1"));	 
 msg = myAgent.receive(modele);
  }
if(msg!=null){
}
0
happyranda Messages postés 20 Date d'inscription samedi 7 mai 2011 Statut Membre Dernière intervention 13 novembre 2012
12 oct. 2012 à 20:59
bonjour
pour l'agent émetteur qui envoi un chiffre aléatoire voila le code :
import jade.core.AID;
import jade.core.Agent;
import jade.core.behaviours.*;
import jade.lang.acl.*;

@SuppressWarnings({ "serial", "unused" })
public class SendAgentDetection extends Agent {


protected void setup(){

System.out.println("----------------agent Detection----------------");

}
private class envoiChiffre extends OneShotBehaviour{


@Override
public void action() {
System.out.println("envoi de la valeur ");

int V = (int)(Math.random()*10);
System.out.println("envoi de la valeur "+ V);
ACLMessage message = new ACLMessage(ACLMessage.INFORM);
message.addReceiver(new AID("agentverification",AID .ISLOCALNAME));
message.setContent(V+"");
send(message);
}

}
private class fin extends OneShotBehaviour{

@Override
public void action() {
System.out.println("arret de l'agent");
myAgent.doDelete();
}
}

}
le code de l'agent récepteur qui recevoir le chiffre et vérifie si ce chiffre est supérieur a après il affiche un message

import jade.core.Agent;
import jade.core.behaviours.*;
import jade.lang.acl.*;

@SuppressWarnings("serial")
public class ReceiverAgent extends Agent {
int V;

protected void setup()
{
addBehaviour(new CyclicBehaviour(this)
{
/**
*
*/
private static final long serialVersionUID = 1L;

public void action() {
ACLMessage messageRecu= receive();
V= Integer.parseInt(messageRecu.getContent());
if (V > 5)
System.out.println( " la valeur est " + V);
System.out.println( " good verification");
block();
}
// else envoi un message a l'agentINTERACTION


private ACLMessage receive() {
// TODO Auto-generated method stub
return null;
}
});


}
@SuppressWarnings("unused")
private class fin extends OneShotBehaviour{
@Override
public void action() {
System.out.println("fin de l'agent");
myAgent.doDelete();
}
}
}


ps : le problème quand je lance le programme il exécute que l'agent émetteur comment je peut l’exécuté les deux agents

merciiiiiiiiiiiiiiii
0
sassion Messages postés 25 Date d'inscription lundi 1 mars 2010 Statut Membre Dernière intervention 23 août 2012
12 oct. 2012 à 21:53
lors de la création des agents ils sont déjà lancé et travaillent de manière asynchrone chacun de sa part et pour les messages fait comme je t'ai dit et tout marchera Bien.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
happyranda Messages postés 20 Date d'inscription samedi 7 mai 2011 Statut Membre Dernière intervention 13 novembre 2012
12 oct. 2012 à 22:15
re salut sassion
j'ai pas bien compris ce que tu ma dis si possible donne moi plus de détails sur le code est ce je met ça a la place de mon code ou bien dans une nouvelle classe ....???
Envoie de message:
ACLMessage mes1 = new ACLMessage(ACLMessage.CFP); 
mes1.addReceiver(new AID("AM"+agent, AID.ISLOCALNAME)); 
mes1.setConversationId("1");


Reception de message
MessageTemplate modele = MessageTemplate.and(MessageTemplate.MatchPerformative(ACLMessage.INFORM),MessageTemplate.MatchConversationId("1"));
ACLMessage msg = myAgent.receive(modele); 
while(msg==null && myAgent.getLocalName().equals("DM1")){ 
block(); 
modele = MessageTemplate.and(MessageTemplate.MatchPerformative(ACLMessage.INFORM), 
MessageTemplate.MatchConversationId("1")); 
msg = myAgent.receive(modele); 
} 
if(msg!=null){ 
} 
0
sassion Messages postés 25 Date d'inscription lundi 1 mars 2010 Statut Membre Dernière intervention 23 août 2012
13 oct. 2012 à 14:46
tu ajoute ça dans les comportements des messges tu dois ajouter ces paramètres lors de lenvoie et la reception de message
0
happyranda Messages postés 20 Date d'inscription samedi 7 mai 2011 Statut Membre Dernière intervention 13 novembre 2012
22 oct. 2012 à 22:46
bonjour
svp je travail avec la plateforme jade
j'ai une erreur et je ne sais pas c koi la signification ou comment
je pu résoudre c pbm

ATTENTION: Automatic main-detection mechanism initialization failed
(Error setting up multicast socket [nested java.net.SocketException:
IP_ADD_MEMBERSHIP failed (out of hardware filters?)]). Mechanism
disabled!

aidée moi svppppppp merci d'avance .
salutation
0
happyranda Messages postés 20 Date d'inscription samedi 7 mai 2011 Statut Membre Dernière intervention 13 novembre 2012
13 nov. 2012 à 10:45
bonjour ;
les amis aid moi svppppppppppp

j'ai crée deux agent émetteur et récepteur mais lors de l'envoi message l'agent émetteur initialise son adresse dans le champs de reciever au lieu dans le champs sender
0
womar2006 Messages postés 20 Date d'inscription mardi 17 octobre 2006 Statut Membre Dernière intervention 13 novembre 2012
13 nov. 2012 à 10:55
Bonjour Happyranda,

Vous pouvez spécifier le destinataire en utilisant msg.addReceiver(agent id de vos destinataires)

Cordialement womar.

bonjour ;
les amis aid moi svppppppppppp

j'ai crée deux agent émetteur et récepteur mais lors de l'envoi message l'agent émetteur initialise son adresse dans le champs de reciever au lieu dans le champs sender.



Il meurt d'envie de devenir .....
0
happyranda Messages postés 20 Date d'inscription samedi 7 mai 2011 Statut Membre Dernière intervention 13 novembre 2012
13 nov. 2012 à 11:42
re bonjour
oui j'ai specifier le distinataire avec
message.addReceiver(new AID("Smith", AID.ISLOCALNAME));
send(message);


mais le probleme lorsque j'utilise l'interface jade pour envoyé le message il m'affiche dans la fenetre de ACLMessage dans le chmaps receiver le nom de l'agent emetteur au lieu de le mettre dans le champs de sender

sender :
receiver : Agent2@randa-PC:1999/JADE

je ne sais pas si j'arrive a t'expliqué mon pbm
merci d'avance
0
happyranda Messages postés 20 Date d'inscription samedi 7 mai 2011 Statut Membre Dernière intervention 13 novembre 2012
13 nov. 2012 à 11:44
re bonjour
oui j'ai specifier le distinataire avec
message.addReceiver(new AID("Smith", AID.ISLOCALNAME));
send(message);


mais le probleme lorsque j'utilise l'interface jade pour envoyé le message il m'affiche dans la fenetre de ACLMessage dans le chmaps receiver le nom de l'agent emetteur au lieu de le mettre dans le champs de sender

sender :
receiver :Smith @randa-PC:1999/JADE

je ne sais pas si j'arrive a t'expliqué mon pbm
merci d'avance CHER AMIIIIIIIIIII
0
Rejoignez-nous