正如Castalia的惯常做法是,应用程序模块使用由传感器管理器处理的requestsensorreading()函数请求传感器读取。传感器管理器将请求转发给物理流程,物理流程会回复其值。
我想要做的是,我希望物理过程以设定的时间间隔广播其值。传感器装置的灵敏度> 0和少数节点将接收该值。我怎么能做到这一点?是否可以在物理过程中使用timerFiredCallback函数和BROADCAST_NETWORK_ADDRESS?
答案 0 :(得分:0)
你似乎对Castalia的基本模型感到困惑。物理过程不是发送网络广播消息的传感器节点。它是一个模型模块 传感器节点中的传感器正在采样的物理过程。此外,物理过程没有一个值。值根据空间和时间而变化,具体取决于您定义的特定模型(手册中有大量关于如何定义物理过程的信息)。您可以定义一个物理过程,只返回空间中每个点的一个值,每个时间点,但我不确定你为什么要在模拟中使用这样的过程。
物理过程不会“广播其价值”。传感器节点对物理过程进行采样,并根据空间,时间和过程的特定模型获取值。不同的传感器节点可能会返回不同的值。要实现您的目标,您只需让所有传感器节点定期对物理过程进行采样。有一些应用程序的例子可以做到这一点。
回顾一下:您可以定义物理过程的行为方式,然后让传感器节点对其进行采样(如您所知,使用方法requestSensorReading()
从Application模块中)。