当前位置: 首页 > 知识库问答 >
问题:

DODAG地层Cooja模拟中Z1和天空尘埃的意外行为

晋鹤轩
2023-03-14

当我注意到一些我没想到的事情时,我正在探索Contiki Cooja模拟器(使用Contiki NG)并尝试一个UDP服务器和几个具有不同mote类型的UDP客户端(来自示例/rpl-udp)。

当我将mote设置为z1/sky类型时,几乎所有客户端mote都只向服务器发送DAO。事实上,DODAG以星形拓扑结构结束(由于sky mote中的邻居表很小,所以多个客户端保持隔离)。

然而,在库贾尘粒的情况下,这不会发生;客户端也向其他客户端发送DAO。

z1微尘场景中的DAO模式

这是故意的还是默认的?如果是默认值,那么为什么?如何改变这种行为?

共有1个答案

乜承嗣
2023-03-14

最大路由表和邻居表大小受到Contiki-NG中编译常量的限制。在Sky和Z1上,它们特别小,因为这些平台没有太多RAM,并且可能会导致RPL出现一些问题。

例如,在Z1上设置了以下定义。特别是8的邻居表大小对于许多网络来说太小了。

#define NBR_TABLE_CONF_MAX_NEIGHBORS    8
#define NETSTACK_MAX_ROUTE_ENTRIES      8

对于未显式设置它们的平台,这些常量分别为16和16。

在库哈,它们要大得多:

#define NBR_TABLE_CONF_MAX_NEIGHBORS    300
#define NETSTACK_MAX_ROUTE_ENTRIES      300
 类似资料:
  • 我的能量估计在天空尘埃的Cooja模拟中没有意义。我想在加密之前和之后读取CPU、TX和RX值,并将数据从一个mote传输到另一个mote。总CPU的读数开始增加,但几轮之后又突然下降。我的理解是,它们不会重置,但会显示点击总数。因此,我从当前值中减去旧值以显示每个时期的消耗量。 这里是我调用的最强大的函数 这里有一些输出: 正如您所看到的,这些值并不相加。我错过了什么?ENERGEST\u开/关

  • 《尘埃树》是一款以灰尘为主题的模组树游戏。游戏有合成、解谜等元素,汉化还在进行中。

  • 我对库哈/康蒂基很陌生。我想做一个“天空贝壳”的例子,所以我试着做一些尘埃。我的问题是,我不知道如何访问mote(对于真正的设备,我们可以使用“makelogin”命令来处理它)。我做了一些搜索,但什么也没找到。有什么想法吗? n、 q.d

  • 我正在尝试使用Contiki 3.0和Cooja模拟器对RPL协议进行一些模拟。我正在使用sky motes,我想看看DODAG是如何形成的,并使用Collect视图监视网络的参数。我有一些问题: 1) 在何处以及如何更改目标函数? 2) 我的传感器能耗为1mW,我认为对于实际应用来说太多了,因为传感器需要工作几年 3)我可以在哪里更改模拟的其他参数?比如Tx/Rx数据包? 4) 如何解释coll

  • 我目前正在开发一个在Z1设备上运行的contiki程序,用于调试目的。我想向该设备发送通用异步收发设备消息,并发现Cooja似乎通过一个名为“在Z1上显示串行端口”的功能来支持它。该工具实际上帮助我读取从mote发送的通用异步收发设备消息,但当我尝试发回某些内容时,Int处理程序就不会被调用。以下是我如何在代码中初始化通用异步收发设备: 在处理程序本身中,我只切换所有LED(这肯定有效)-但是,它

  • 我使用Cooja和Contiki实现了一个6LowPAN网络模拟,现在我想在处理来自网络外部的数据后,为执行器(MOTE)发送一些命令。 这些命令将在处理从边界路由器接收到的数据后发送到motes。 如何从外部访问模拟网络中的特定mote并向其发送数据包?