Agentes Temporais ================= Em aplicações reais é comum que o comportamento do agente seja executado de tempos em tempos e não apenas uma vez, mas como fazer isso no PADE? :( Execução de um agente temporal ------------------------------ Este é um exemplo de um agente que executa indefinidamente um comportamento a cada 1,0 segundos: :: #!coding=utf-8 # Hello world temporal in PADE! # # Criado por Lucas S Melo em 21 de julho de 2015 - Fortaleza, Ceará - Brasil from pade.behaviours.protocols import TimedBehaviour from pade.misc.utility import display_message from pade.misc.common import set_ams, start_loop from pade.core.agent import Agent from pade.acl.aid import AID class ComportTemporal(TimedBehaviour): def __init__(self, agent, time): super(ComportTemporal, self).__init__(agent, time) def on_time(self): super(ComportTemporal, self).on_time() display_message(self.agent.aid.localname, 'Hello World!') class AgenteHelloWorld(Agent): def __init__(self, aid): super(AgenteHelloWorld, self).__init__(aid=aid, debug=False) comp_temp = ComportTemporal(self, 1.0) self.behaviours.append(comp_temp) if __name__ == '__main__': set_ams('localhost', 8000, debug=False) agents = list() agente_1 = AgenteHelloWorld(AID(name='agente_1')) agente_1.ams = {'name': 'localhost', 'port': 8000} agents.append(agente_1) start_loop(agents, gui=True) Execução de dois agentes temporais ---------------------------------- Mas e se eu quiser dois agentes com o mesmo comportamento!? Não tem problema, basta instanciar um outro agente com a mesma classe! :: if __name__ == '__main__': set_ams('localhost', 8000, debug=False) agents = list() agente_1 = AgenteHelloWorld(AID(name='agente_1')) agente_1.ams = {'name': 'localhost', 'port': 8000} agente_2 = AgenteHelloWorld(AID(name='agente_2')) agente_2.ams = {'name': 'localhost', 'port': 8000} agents.append(agente_1) agents.append(agente_2) start_loop(agents, gui=True)