Salut;
je travaille sous la plateforme jade et j'ai programmée une communication entre deux agents ,et sa marche bien au niveau de l'interface associée à la plateforme jade lorsque j'utilise ses fonctionnalités par exemple un agent A envoie à un autre agent B un message avec la fonctionnalité Send Message, le B réagit de la façon dont javais programmée (il affiche ce que il a envoyé l'agent A dans la console de Eclipse) vu que j'utilise cette dernière puisque j'ai mis l'instruction Systèmes.out.println("ce qu'il a envoyé agent A") au niveau de l'application B.
Bref mon problème c'est que je n'arrive pas à envoyer le message via la console, car j'ai programmé l'agent A de tel sorte il envoie un message à l'agent B saisi par l'utilisateur(j'ai utilisé un Scanner) ensuite B affiche ce qu'il a reçu par A au niveau de la console .
et S.V.P un deuxième problème c'est que je n'arrive pas a voir le déroulement de l’exécution des deux agents sur la même console c.à.d si un agent est lancé je voie son traitement au niveau de la console mais lorsque je relance un autre agent le contenu de la console est vidé et rempli par les informations du traitement effectuer par l'agent dont je viens de la lancer ,donc est ce qu'il y une solution a mon problème me permettre de suivi le traitement des deux simultanément et chacun sa propre console ou bien je vais utiliser les interfaces graphiques.
*le code de l'application A nommée Pekee
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
 
package tp1;
 
import java.util.Scanner;
 
import jade.core.AID;
import jade.core.behaviours.SequentialBehaviour;
import jade.core.Agent;
import jade.core.behaviours.OneShotBehaviour;
import jade.core.behaviours.WakerBehaviour;
import jade.lang.acl.ACLMessage;
public class Pekee extends Agent {
	protected void setup(){
 
 
		  System.out.println("--------------*Agent Pekee*---------");
 
 
			SequentialBehaviour comportementSequentiel = new SequentialBehaviour();
 
			comportementSequentiel.addSubBehaviour(new OneShotBehaviour(){
				@Override
				public void action() {
					Scanner sc = new Scanner(System.in);
				System.out.println("Veuillez ecrire ce que je vais envoyer à Kivok: ");
				String str = sc.nextLine();
 
                    ACLMessage message = new ACLMessage(ACLMessage.INFORM);
                    message.addReceiver(new AID("mm", AID.ISLOCALNAME));
                    message.setContent(""+str);
                    send(message);
 
 
				}
			});
 
			addBehaviour(comportementSequentiel);
	}
 
	}
*le code de l'application B nommée Kivok
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
 
package tp1;
 
import jade.core.Agent;
import jade.core.behaviours.SequentialBehaviour;
import jade.lang.acl.ACLMessage;
 
import jade.core.behaviours.OneShotBehaviour;
import jade.core.behaviours.WakerBehaviour;
public class Kivok extends Agent{
	protected void setup(){
 
 
		  System.out.println("--------------*Agent Kivok*------------");
 
 
		  SequentialBehaviour comportementSequentiel = new SequentialBehaviour();
		  comportementSequentiel.addSubBehaviour(new OneShotBehaviour(){
				@Override
				public void action() {
 
					ACLMessage message =null ;
                  message = receive() ;
                  if (message == null){ block();
					System.out.println("je suis en attente");
				                        }
                  }
			});
 
			comportementSequentiel.addSubBehaviour(new OneShotBehaviour(){
				@Override
				public void action() {
					ACLMessage messageRecu = receive();
					System.out.println("voici ce que j'ai reçu de pekee "+messageRecu.getContent());
 
 
 
				}
			});
			addBehaviour(comportementSequentiel);
	}}
Merci d'avance et bien cordialement