Sending messages

To send messages in PADE is very simple! The messages sended by PADE agents are in FIPA-ACL pattern and have the followinf fields:

  • conversation-id: unique id of a conversation;
  • performative: label of a message;
  • sender: sender of a message;
  • receivers: receivers of a message;
  • content: message content;
  • protocol: FIPA message protocol;
  • language: language used in the message content;
  • enconding: message codification;
  • ontology: ontology of the message;
  • reply-with:
  • reply-by
  • in-reply-to:

Mensagens FIPA-ACL no PADE

Uma mensagem FIPA-ACL pode ser montada no pade da seguinte forma:

from pade.acl.messages import ACLMessage, AID
message = ACLMessage(ACLMessage.INFORM)
message.set_protocol(ACLMessage.FIPA_REQUEST_PROTOCOL)
message.add_receiver(AID('agente_destino'))
message.set_content('Ola Agente')

Enviando uma mensagem com PADE

Uma vez que se está dentro de uma instância da classe Agent() a mensagem pode ser enviada, simplesmente utilizando o comando:

self.send(message)

Mensagem no padrão FIPA-ACL

Realizando o comando print message a mensagem no padão FIPA ACL será impressa na tela:

(inform
    :conversationID b2e806b8-50a0-11e5-b3b6-e8b1fc5c3cdf
    :receiver
        (set
            (agent-identifier
                :name agente_destino@localhost:51645
                :addresses
                    (sequence
                    localhost:51645
                    )
            )

        )
    :content "Ola Agente"
    :protocol fipa-request protocol
)

Mensagem no padrão XML

Mas também é possível obter a mensagem no formato XML por meio do comando print message.as_xml()

<?xml version="1.0" ?>
<ACLMessage date="01/09/2015 as 08:58:03:113891">
        <performative>inform</performative>
        <sender/>
        <receivers>
                <receiver>agente_destino@localhost:51645</receiver>
        </receivers>
        <reply-to/>
        <content>Ola Agente</content>
        <language/>
        <enconding/>
        <ontology/>
        <protocol>fipa-request protocol</protocol>
        <conversationID>b2e806b8-50a0-11e5-b3b6-e8b1fc5c3cdf</conversationID>
        <reply-with/>
        <in-reply-to/>
        <reply-by/>
</ACLMessage>