0

我有一个带有 jQ​​uery 的独立 HTML 页面。jQuery 用于对 Python 后端进行 AJAX 调用。我需要将它与 Volttron Central 集成。我查看了文档,但没有部分讨论这个问题。我认为在文档中包含此类信息会很好。

我目前的方法是将后端 Python 转换为 Volttron 代理,但我不知道如何将前端 HTML 页面与 VC 集成。

任何建议从哪里开始?谢谢。

4

1 回答 1

1

当您有一个要注册自己的端点的代理时,您应该在 onstart 信号期间执行此操作。以下内容是从 volttron 中心代理中提取的。它展示了如何注册一个动态的端点(使用 volttron rpc 作为端点)以及静态的(简单地提供 html)。我已删除此示例中不必要的位。

onstart volttron 中央代码

为清楚起见,MASTER_WEB 和 VOLTTRON_CENTRAL 是那些在 volttron 实例上运行的特定代理的唯一标识符。

@Core.receiver('onstart')
def _starting(self, sender, **kwargs):
    """ Starting of the platform
    :param sender:
    :param kwargs:
    :return:
    """

    ...

    # Registers dynamic route.
    self.vip.rpc.call(MASTER_WEB, 'register_agent_route',
                      r'^/jsonrpc.*',
                      self.core.identity,
                      'jsonrpc').get(timeout=30)

    # Registers static route.
    self.vip.rpc.call(MASTER_WEB, 'register_path_route', VOLTTRON_CENTRAL,
                      r'^/.*', self._webroot).get(timeout=30)

由于您在启动时添加了路由,因此您还应该在代理停止时将其删除。onstop 参考代码

@Core.receiver("onstop")
def stopping(self, sender, **kwargs):
    '''
    Release subscription to the message bus because we are no longer able
    to respond to messages now.
    '''
    try:
        # unsubscribes to all topics that we are subscribed to.
        self.vip.pubsub.unsubscribe(peer='pubsub', prefix=None, callback=None)
    except KeyError:
        # means that the agent didn't start up properly so the pubsub
        # subscriptions never got finished.
        pass
于 2016-07-19T23:00:47.413 回答