首页 理论教育 物联网操作系统Contiki:目标函数修改示例

物联网操作系统Contiki:目标函数修改示例

时间:2023-11-20 理论教育 版权反馈
【摘要】:图12-7网络拓扑图12-7 是可以使用的拓扑实例,一个目标函数基本上使用一个链路度量值并且有一个受到约束的函数尝试选择最佳路径用于路由。为了定义一个全新的目标函数文件,必须在目标函数中定义下面列出的函数,与此同时需要修改makefile文件,并且应该注意定义的新文件不能有编译和链接错误。因此,目标函数需要首先识别使用最小能量的,或者使用的能量在一个范围内的一些节点,并且使用这些节点到达目标节点具有最小的跳数。

物联网操作系统Contiki:目标函数修改示例

图12-7 网络拓扑

图12-7 是可以使用的拓扑实例,一个目标函数基本上使用一个链路度量值并且有一个受到约束的函数尝试选择最佳路径用于路由。为了定义一个全新的目标函数文件(不是修改现有的目标函数),必须在目标函数中定义下面列出的函数,与此同时需要修改makefile文件,并且应该注意定义的新文件不能有编译和链接错误。RPL目标函数的一些API函数如下所示:

(www.xing528.com)

修改目标函数的例子是负载均衡应用,新的目标函数应该能够达到如下目标:它应该选择一条能够最小化ETX 的路由,并且如果有具有相同ETX 或ETX 在预定义的范围内的多条路由,那么它应该最小化经由这些路由中的任何一条转发的分组的最大数量,这意味着当其他节点未被利用时,任何一个节点都不承担转发分组的负载。

正如前面所述,解决以上问题的一种方法是定义一个全新的目标函数,另一种解决办法是修改现有的程序文件rpl-mhrof.c。因为这个目标函数OF 已经使用了这个问题的最小ETX 部分,我们仅仅需要实现负载平衡部分。当一个子节点有多条路由,例如有几个双亲节点,就会存在负载平衡问题。因此,应该修改计算最优双亲节点的函数。

另一个可能的例子是选择最短路径,这些最短路径应该由使用最小能量的节点组成。因此,目标函数需要首先识别使用最小能量的,或者使用的能量在一个范围内的一些节点,并且使用这些节点到达目标节点具有最小的跳数。这可以应用于节点必须快速发送其数据而能量不足的节点不需要承担负载的情况。在这种情况下,使用能量度量的目标函数(在当前实现的rpl-mkrof.c文件中)可以和同时选择双亲节点和最小跳数的额外逻辑一起使用。

其他需要新的或修改的目标函数的场景是基于不同链路度量值,如吞吐量、链路质量级别、延迟等。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈