Skip to content
Jereme Haack edited this page Sep 12, 2014 · 1 revision

Full code of agent detailed in AgentDevelopment.

import sys

from volttron.lite.agent import BaseAgent, PublishMixin
from volttron.lite.agent import utils, matching
from volttron.lite.messaging import headers as headers_mod


class TestAgent(PublishMixin, BaseAgent):
    
    
    @matching.match_start('heartbeat/listeneragent')
    def on_heartbeat_topic(self, topic, headers, message, match):
           print "TestAgent got\nTopic: {topic}, {headers}, Message: {message}".format(topic=topic, headers=headers, message=message)



def main(argv=sys.argv):
    '''Main method called by the eggsecutable.'''
    utils.default_main(TestAgent,
                       description='Test Agent',
                       argv=argv)


if <u>name</u> == '<u>main</u>':
    # Entry point for script
    try:
        sys.exit(main())
    except KeyboardInterrupt:
        pass

Contents of setup.py for TestAgent:

from setuptools import setup, find_packages

setup(
    name = "testagent",
    version = ".1",
    #Automatically find required packages
    packages = find_packages(),
    #specify the method to call when this egg is executed
    entry_points = {
        'setuptools.installation': [
                                    'eggsecutable = tester.testagent:main',
        ]
    }
    

      )

Contents of testeragent.launch.json

{
    "agent": {
        "exec": "testeragent-0.1-py2.7.egg --config \"%c\" --sub \"%s\" --pub \"%p\""
    },
    "agentid": "Test1",
    "message": "hello"    
}

Arguments for testeragent:

--config_path Agents/TestAgent/testeragent.launch.json --pub ipc:///tmp/volttron-lite-agent-publish --sub ipc:///tmp/volttron-lite-agent-subscribe

Clone this wiki locally