单源节点、多目标节点中选择最近的sink节点传输

本文档描述了一个实验,旨在在一个已有模型上扩展,考虑多个Sink节点,并选择最近的Sink进行数据传输。实验中,作者增加了变量以存储目标节点信息,并更新了相关代码段以计算源节点到各Sink节点的距离,从而确定最短路径。重点在于找到源节点到所有Sink节点中最短的距离,以便优化数据包传输效率。
摘要由CSDN通过智能技术生成

实验目标:在第三章原有的模型上,加入多个SINK节点,选择最近的SINK节点进行数据包的传输。

具体实施过程:

1.在理解模型的整体结构的情况下,我增加了几个变量。

//目标节点数量

int GlobalSinkNum[1];

//最终目标节点ID

int FinalGlobalSinkID[1];

//最终目标节点数组下标

int FinalNumID[1];

//目标节点地址和坐标(将这几个变量改为了数组)

int GlobalSinkID[801];

double GlobalSinkX[801];

double GlobalSinkY[801];

 

同时在SinkInit,NodeInit,functionblock,GPSR,以及NotifyAppSendData和statevariables修改了相应的代码。

 

下面这段代码的功能是求出离SRC节点最近的Sink节点

TemSrcToSinkDistance=1410;

for(i=1 ;i<= GlobalSinkNum[0];i++)

       {

q = sqrt((GlobalSrcX -GlobalSinkX[i])*(GlobalSrcX - GlobalSinkX[i]) + (GlobalSrcY -GlobalSinkY[i])*(GlobalSrcY - GlobalSinkY[i]));

if(q<TemSrcToSinkDistance)

       {

TemSrcToSinkDistance=q;

FinalGlobalSinkID

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值