Contiki 如何在Cooja模拟器中计算吞吐量
大家好 我在cooja模拟器中使用示例/ipv6/rpl udp文件。如何测量网络中的吞吐量 在client.c代码中使用命令“powertrace_start(CLOCK_SECOND*60);”可以获得powertrace输出 我能用这个方法吗 吞吐量=数据包接收/模拟时间 模拟时间=(能量测试类型传输+能量测试类型监听)/32768 这个方法正确吗 提前感谢,Contiki 如何在Cooja模拟器中计算吞吐量,contiki,Contiki,大家好 我在cooja模拟器中使用示例/ipv6/rpl udp文件。如何测量网络中的吞吐量 在client.c代码中使用命令“powertrace_start(CLOCK_SECOND*60);”可以获得powertrace输出 我能用这个方法吗 吞吐量=数据包接收/模拟时间 模拟时间=(能量测试类型传输+能量测试类型监听)/32768 这个方法正确吗 提前感谢, Nasrin不,这是不正确的,因为ENERGEST\u TYPE.*是常数 一种方法是使用 例如,假设您有一个C程序,该程序在节点
Nasrin不,这是不正确的,因为
ENERGEST\u TYPE.*
是常数
一种方法是使用
例如,假设您有一个C程序,该程序在节点每次向另一个节点发送消息时打印“Message Transmited”,并在每次作为消息接收时打印“Message received”
Cooja脚本可以自动运行特定时间的模拟,并统计消息。此代码适用于我:
TIMEOUT(100000); // simulation duration in milliseconds
num_messages_tx = 0;
num_messages_rx = 0;
timeout_function = function () {
log.log("Script timed out.\n");
log.log("Messages transmitted: " + num_messages_tx + " \n");
log.log("Messages received: " + num_messages_rx + " \n");
log.testOK();
}
while (true) {
if (msg) {
if(msg.startsWith("Message transmitted")) {
num_messages_tx += 1;
}
if(msg.startsWith("Message received")) {
num_messages_rx += 1;
}
}
YIELD();
}
要开始使用它,请将代码(其JavaScript)保存在文件test.js
中,并将其添加到.csc
Cooja配置文件中:
<plugin>
org.contikios.cooja.plugins.ScriptRunner
<plugin_config>
<scriptfile>[CONFIG_DIR]/test.js</scriptfile>
<active>true</active>
</plugin_config>
<width>457</width>
<z>4</z>
<height>427</height>
<location_x>3</location_x>
<location_y>404</location_y>
</plugin>
org.contikios.cooja.plugins.ScriptRunner
[CONFIG_DIR]/test.js
真的
457
4.
427
3.
404
亲爱的@kfx,谢谢你的回答。使用此方法,我将获得接收和发送的数据包总数。此数量应按什么时间划分?以计算网络中的“吞吐量”。(数据包大小为59字节,模拟时间=30分钟)一个选项是使用模拟持续时间。在示例中,TIMEOUT(100000)
设置模拟的总持续时间。在这种情况下,吞吐量值将非常低。我可以在powertarce.c中使用“全部传输/32768”和“全部侦听/32768”的总次数吗?亲爱的@kfx,谢谢你的回答。在这种情况下,吞吐量值将非常低。我可以在powertarce.c中使用“全部传输/32768”和“全部侦听/32768”的总次数吗?