VOLTTRON RPC调用机制
VOLTTRON RPC call mechanism
我阅读了 VOLTTRON 的文档,我仍然对理解与 volttron 中执行器代理的 pubsub 机制相关的 RPC 机制有疑问。
例如,我有一个主题为 "campus/building/unit" 的设备,我在星期一下午 5 点到 6 点之间为该设备预留了一个小时。
那么我如何 运行 我的代码用于此事件?
我是否需要从执行器代理订阅某个主题以捕获事件,或者我是否需要定期尝试通过 rpc 使用 setpoint 并查看是否未抛出异常,那么我们确实在设备上拥有独占锁,因此现在我们可以在设备上调用 getpoint/setpoint ?
当设备的预留时间块开始时,Actuator Agent 将开始在 pubsub 上发布该事实。
使用的主题是
devices/actuators/schedule/announce/<full device path>
或者你的情况
devices/actuators/schedule/announce/campus/building/unit
发布没有消息,header格式如下:
{
'requesterID': <Agent with access>,
'taskID': <Task associated with the time slot>
'window': <Seconds remaining in the time slot>
}
(如果这一切都在 header 中这一事实看起来很奇怪,那是因为这让人回想起 VOLTTRON Lite 时代,当时我们仍在决定什么属于 header 以及什么进入了消息。)
理想情况下,代理会安排一个时间块,然后订阅公告主题。该主题的处理程序将在分配的时间块内触发 activity 的开始。
请务必记住,Actuator Agent 会以设定的时间间隔使用更新后的 window 值重新发布相同的信息。 (默认情况下,这是每分钟一次,并且是可配置的)您可以使用 window 值在分配的时间段内触发操作。
我阅读了 VOLTTRON 的文档,我仍然对理解与 volttron 中执行器代理的 pubsub 机制相关的 RPC 机制有疑问。
例如,我有一个主题为 "campus/building/unit" 的设备,我在星期一下午 5 点到 6 点之间为该设备预留了一个小时。 那么我如何 运行 我的代码用于此事件? 我是否需要从执行器代理订阅某个主题以捕获事件,或者我是否需要定期尝试通过 rpc 使用 setpoint 并查看是否未抛出异常,那么我们确实在设备上拥有独占锁,因此现在我们可以在设备上调用 getpoint/setpoint ?
当设备的预留时间块开始时,Actuator Agent 将开始在 pubsub 上发布该事实。
使用的主题是
devices/actuators/schedule/announce/<full device path>
或者你的情况
devices/actuators/schedule/announce/campus/building/unit
发布没有消息,header格式如下:
{
'requesterID': <Agent with access>,
'taskID': <Task associated with the time slot>
'window': <Seconds remaining in the time slot>
}
(如果这一切都在 header 中这一事实看起来很奇怪,那是因为这让人回想起 VOLTTRON Lite 时代,当时我们仍在决定什么属于 header 以及什么进入了消息。)
理想情况下,代理会安排一个时间块,然后订阅公告主题。该主题的处理程序将在分配的时间块内触发 activity 的开始。
请务必记住,Actuator Agent 会以设定的时间间隔使用更新后的 window 值重新发布相同的信息。 (默认情况下,这是每分钟一次,并且是可配置的)您可以使用 window 值在分配的时间段内触发操作。