class StandAloneMatLab(Agent): '''The standalone version of the MatLab Agent''' @PubSub.subscribe('pubsub', _topics['volttron_to_matlab']) def print_message(self, peer, sender, bus, topic, headers, message): print('The Message is: ' + str(message)) message_out = script_runner(message) self.vip.pubsub.publish('pubsub', _topics['matlab_to_volttron'], message=message_out) if __name__ == '__main__': try: # If stdout is a pipe, re-open it line buffered if utils.isapipe(sys.stdout): # Hold a reference to the previous file object so it doesn't # get garbage collected and close the underlying descriptor. stdout = sys.stdout sys.stdout = os.fdopen(stdout.fileno(), 'w', 1) print(remote_url()) agent = StandAloneMatLab(address=remote_url(), identity='standalone_matlab') task = gevent.spawn(agent.core.run) try: task.join() finally: task.kill() except KeyboardInterrupt: pass
@RPC.export def foo(self): return 'Anybody can call this function via RPC' @RPC.export @RPC.allow('can_call_bar') def bar(self): return 'If you can see this, then you have the required capabilities' if __name__ == '__main__': try: # If stdout is a pipe, re-open it line buffered if utils.isapipe(sys.stdout): # Hold a reference to the previous file object so it doesn't # get garbage collected and close the underlying descriptor. stdout = sys.stdout sys.stdout = os.fdopen(stdout.fileno(), 'w', 1) print(remote_url()) agent = StandAloneWithAuth(address=remote_url(), identity=IDENTITY) task = gevent.spawn(agent.core.run) try: task.join() finally: task.kill() except KeyboardInterrupt: pass
message = {'timestamp': datetime.utcnow().isoformat() + 'Z', 'line': line} _log.debug('publishing message {} on topic {}'.format(message, topic)) self.vip.pubsub.publish(peer="pubsub", topic=topic, message=message) def get_end_position(self, f): f.seek(0, 2) return f.tell() if __name__ == '__main__': try: # If stdout is a pipe, re-open it line buffered if utils.isapipe(sys.stdout): # Hold a reference to the previous file object so it doesn't # get garbage collected and close the underlying descriptor. stdout = sys.stdout sys.stdout = os.fdopen(stdout.fileno(), 'w', 1) print(remote_url()) agent = StandAloneFileWatchPublisher(address=remote_url(), identity='standalone.filewatchpublisher') task = gevent.spawn(agent.core.run) try: task.join() finally: task.kill() except KeyboardInterrupt: pass
sys.stdout.write('publishing heartbeat.\n') now = datetime.utcnow().isoformat(' ') + 'Z' headers = { #'AgentID': self._agent_id, headers_mod.CONTENT_TYPE: headers_mod.CONTENT_TYPE.PLAIN_TEXT, headers_mod.DATE: now, } self.vip.pubsub.publish( 'pubsub', 'heartbeat/standalonelistener', headers, now).get(timeout=5) if __name__ == '__main__': try: # If stdout is a pipe, re-open it line buffered if utils.isapipe(sys.stdout): # Hold a reference to the previous file object so it doesn't # get garbage collected and close the underlying descriptor. stdout = sys.stdout sys.stdout = os.fdopen(stdout.fileno(), 'w', 1) print(remote_url()) agent = StandAloneListener(address=remote_url(), identity='standalone_listener') task = gevent.spawn(agent.core.run) try: task.join() finally: task.kill() except KeyboardInterrupt: pass
sys.stdout.write('publishing heartbeat.\n') now = datetime.utcnow().isoformat(' ') + 'Z' headers = { #'AgentID': self._agent_id, headers_mod.CONTENT_TYPE: headers_mod.CONTENT_TYPE.PLAIN_TEXT, headers_mod.DATE: now, } self.vip.pubsub.publish( 'pubsub', 'heartbeat/standalonelistener', headers, now).get(timeout=5) if __name__ == '__main__': try: # If stdout is a pipe, re-open it line buffered if utils.isapipe(sys.stdout): # Hold a reference to the previous file object so it doesn't # get garbage collected and close the underlying descriptor. stdout = sys.stdout sys.stdout = os.fdopen(stdout.fileno(), 'w', 1) print(remote_url()) agent = StandAloneListener(address=remote_url(), identity='Standalone Listener') task = gevent.spawn(agent.core.run) try: task.join() finally: task.kill() except KeyboardInterrupt: pass