多个源节点向多个目标节点发数据

本文介绍了一种实现多个源节点向多个目标节点发送数据的方法,通过建立源节点与最近Sink节点的映射表来确定数据传输路径。在数据包传输过程中,根据源节点ID获取目标节点ID,确保正确路由。示例中设定了特定的源节点和Sink节点,并提供了核心代码段来计算源节点到最近目标节点的距离。
摘要由CSDN通过智能技术生成

实现一下有多个源节点向多个目标节点发数据,(每个源节点判断离它最近的Sink节点,然后向它发数据)

总体思想:是通过数组给源节点和目标节点建立一个映射表,即对应的源节点指向对应的Sink节点。在数据包传输的过程中通过读取包中的源节点的ID,我这里是用源节点的ID得到目标节点的ID,当然也可以直接读取包中的目标节点的ID。进行包的传输。

 

在这里定义了2、3、761、252这四个节点为源节点。9、288、606、1、771为Sink节点。具体效果如下。当然你还可以增加节点。

 

具体的改动代码:wsn_global.h中

//目标节点数量

intGlobalSinkNum[1];

intGlobalSrcNum[1];

//目标节点地址和坐标

intGlobalSinkID[801];

intFinalGlobalSinkIDForSrcId[801];

intGlobalSinkIDForCalculateDistance[801];

int FinalNumID[801];

doubleGlobalSinkX[801];

doubleGlobalSinkY[801];

//源节点地址和坐标

intGlobalSrcID[801];

doubleGlobalSrcX[801];

doubleGlobalSrcY[801];

 

计算的核心代码:NotifyAppSendData中

这里是求出发包的源节点,距离它最近的目标节点的ID

TemSrcToSinkDistance=1410;

for(i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值