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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
| addBehaviour(new SimpleBehaviour(this)
{
private static final long serialVersionUID = 1L;
public void action()
{
// Attente de message (de l'agent Coordonnateur)
ACLMessage msg_reçu = receive(MessageTemplate.MatchPerformative(ACLMessage.INFORM));
if (msg_reçu != null)
{
System.out.println(myAgent.getLocalName()+" a reçu le type de la tache et la quantité : "+msg_reçu.getContent()+" de la part de "+msg_reçu.getSender().getLocalName());
nom_op=myAgent.getLocalName();
num=Integer.parseInt(nom_op.substring(2,3));
System.out.println("*** L'opérateur numéro: "+num+"***\n");
ch1=msg_reçu.getContent();
System.out.println("Type de tache:"+ch1.charAt(0));
char c=ch1.charAt(0);
codeASCII = (int)c -65;
ch2=msg_reçu.getContent().substring(2,5);
Qt=Integer.parseInt(ch2);
System.out.println("Quantité demandé: "+Qt);
Double Temp= comp[codeASCII][num-1]* Qt;
System.out.println("Temps d'exécution de la tache = "+Temp+" pour l'opérateur: "+ num);
}
else
{
block();
}
}
public boolean done()
{
return true;
}
});
getJFrame().setVisible(true);
// Envoie du cout d'execution
addBehaviour(new WakerBehaviour(this,40000)
{
private static final long serialVersionUID = 1L;
public void onWake()
{
ACLMessage msg1 = new ACLMessage(ACLMessage.INFORM);
msg1.setContent(msg_rep);
msg1.addReceiver(new AID("Superviseur", AID.ISLOCALNAME));
send(msg1);
}
});
addBehaviour(new WakerBehaviour(this,42000)
{
private static final long serialVersionUID = 1L;
public void onWake()
{
ACLMessage msg_reçu1 = receive(MessageTemplate.MatchPerformative(ACLMessage.INFORM));
if (msg_reçu1!=null)
{if (msg_reçu1.getContent().equalsIgnoreCase("Commencer"))
{
System.out.println("L'opérateur "+myAgent.getLocalName()+" dit: WWWWWWéééééééééééééé");
temps_tache=(long) ((val_cout*Qt)*1000);
System.out.println(temps_tache);
myAgent.doWait(temps_tache);
System.out.println("Terminé");
ACLMessage msg1 = new ACLMessage(ACLMessage.INFORM);
msg1.setContent(msg_rep);
msg1.addReceiver(new AID("Superviseur", AID.ISLOCALNAME));
send(msg1);
}
}
else{block();}
}
});
} |
Partager