向 Volttron Central 添加新页面

Add a new page to Volttron Central

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

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

有什么建议从哪里开始?谢谢。

当您有一个代理要注册自己的端点时,您应该在启动信号期间执行此操作。以下内容摘自 volttron 中央代理。它展示了如何注册一个动态端点(使用 volttron rpc 作为端点)以及静态端点(其中 html 被简单地提供)。我已经删除了这个例子中不需要的部分。

onstart volttron central code

为清楚起见,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)

由于您添加了 onstart 路由,因此您还应该在代理停止时将其删除。 onstop referenced code

@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