⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 route.h

📁 一个WSN的树状路由,对于那些学WSN路由方面的朋友应该有说帮助.
💻 H
字号:
/*
****************************************************************************
*              宁波中科集成电路设计中心  版权所有 Copyright 2005
*						http:\\www.nbicc.com
*文件名:  route.h
*程序员:  蒋文丰
*主要内容  路由算法

*如有问题或BUG,请登录www.wsn.net.cn 提问或用邮件和作者联系
****************************************************************************
*/

#ifndef _ROUTE_H
#define _ROUTE_H

#include "type.h"
#include "message.h"
#include "app.h"

#define MAXNEIGHBOR 30 //每个节点最大的邻节点数
#define INVALID_NODE_ID 255 

typedef struct RoutePacket {
  bool QueueUseEnable; //是否有可用缓存区
  uint8_t metric; //本节点所属的层号
  uint8_t outdegree;//节点的出度
  uint8_t neighbor[MAXNEIGHBOR];
} RoutePacket;  

typedef struct Neighbor {
  uint8_t addr;//邻居节点号,INVALID_NODE_ID标示无效的表项
  uint8_t state;//物理链路是否对称
  uint8_t metric;//邻居节点层号
  uint16_t broadseqno; //收到的最新的广播包号
  uint16_t prebroadseqno; //定期更新的时候用来放此时的broadseqno,如果定期更新的时候broadseqno==prebroadseqno该纪录项失效
  uint8_t sendfailtime;//以该节点为下一跳传送失败的次数,>=5次该邻居表项失效
  uint8_t outdegree;//节点的出度
} MHopNeighbor;

MHopNeighbor nbrTable[MAXNEIGHBOR];//路由表


void RoutInit(void);
void routeTimerTask(void);
void routeBroadcastDone(OSMACMsgPtr msg);
void routeReceiveBroadcast(OSMACMsgPtr receivemsg);
uint8_t CheckRoute(OSMACMsgPtr Msg);
void RouteChangeP(uint8_t addr);
void RouteChangeV(uint8_t addr);
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -