📄 route.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 + -