我做了这个.ini文件试图模拟放置在铁路中的线性WSN所消耗的能量,但能量消耗不是我预期的,我不明白,有人知道发生了什么吗?
我希望Node 0成为cordinatoor,Node 9成为能够感知并将数据转发到Node 0的节点
代码:
else if (CommonObjRepository.getMessage().contentEquals("Login")) {
// This is where exception is being thrown //
String Message = wait
.until(ExpectedConditions
.visibilityOfElementLocated(By.xpath("html/body/div[1]/div/div/div[2]/div/div[2]/div/div/p")))
.getText();
assertEquals(ReadProperties.GetConstant("XXTTX"), Message);
CommonObjRepository.getLog().info("***** XXXYYYZZZ *****");
}
结果如下: ./../../bin/CastaliaResults -i 180424-155036.txt -s consume -n
ResourceManager:消耗能源 + --------- + --------- + -------- + --------- + --------- + -------- + --------- + --------- + --------- + --------- + | node = 0 | node = 1 | node = 2 | node = 3 | node = 4 | node = 5 | node = 6 | node = 7 | node = 8 | node = 9 | + --------- + --------- + -------- + --------- + --------- + -------- + --------- + --------- + --------- + --------- + | 475.988 | 158.176 | 162.13 | 475.997 | 475.999 | 476 | 475.998 | 475.998 | 475.997 | 475.999 | + --------- + --------- + -------- + --------- + --------- + -------- + --------- + --------- + --------- + --------- + < / p>
这些结果是不正确的,因为节点0应该是迄今为止消耗更多的节点,因为它必须协调网络,并且应该将能量消耗从9增加到1,节能9增加节能消耗。
对于我从Castalia获得的结果中看到的,似乎静态路由不起作用,因为节点1和2具有较少的能量消耗,因为在范围内与节点0通信并且其他节点消耗最大值由于与协调员的距离而定义的能量。
答案 0 :(得分:1)
您得到的结果是准确的,它们不是您所期望的。
我注意到你的ini文件的第一件事是你正在使用应用程序级静态路由和802.15.4 MAC。这两个不会一起工作。 802.15.4 MAC Castalia实现仅允许协调器(在您的情况下为节点0)与从属节点之间的流量。从节点不能直接相互通信。因此,您无法将数据包从节点9路由到节点8。 Castalia User's manual在第4.3.3节中明确说明了
此外,您的网络似乎甚至没有按照您的预期形成(节点0是协调器,节点1-9是从属节点)。您的传输功率太低,因此节点0的信标无法到达很远的距离。从能量输出来看,我认为可以安全地假设信标不会比节点2更远。只有节点1和2与协调器相关联。一旦关联,节点就进入一个工作周期(让收音机打开和关闭)。这就是为什么你看到它们消耗更少的能量。其余的节点可能总是试图收听信标。这就是为什么你看到它们消耗更多的能量。
研究您想要使用的协议,以便深入了解它们。阅读Castalia手册,了解Castalia如何实现这些协议的细节。打开不同模块(例如MAC,App)的跟踪信息,以更好地了解他们在您的特定情况下正在做什么。