完成前面3个脚本的分析,最后进行ns-leach.tcl脚本的分析.首先我们看下这个脚本要使用的有哪些功能.
Application/LEACH instproc init args {} 对leach进行初始化,即构造函数。
下面是leach的一些方法
Application/LEACH instproc start {} {}
Application/LEACH instproc getRandomNumber {llim ulim} {} 得到随机数
Application/LEACH instproc node {} {}
Application/LEACH instproc nodeID {} {}
Application/LEACH instproc mac {} {}
Application/LEACH instproc getX {} {}
Application/LEACH instproc getY {} {}
Application/LEACH instproc getER {} {}
Application/LEACH instproc GoToSleep {} {} 节点进行休眠
Application/LEACH instproc WakeUp {} {}节点醒来
Application/LEACH instproc setCode code {}{}
Application/LEACH instproc checkAlive {} {} 节点是否存活
Application/LEACH instproc isClusterHead? {} {} 判断是否是簇头节点
Application/LEACH instproc hasbeenClusterHead? {} {} 判断是否成为过簇头节点
Application/LEACH instproc hasnotbeenClusterHead {} {}
hasbeench=0不是簇头节点
Application/LEACH instproc setClusterHead {} {} 设置为簇头节点
Application/LEACH instproc unsetClusterHead {} {} 设置为非簇头节点
Application/LEACH instproc decideClusterHead {} {} 决定簇头节点,非常重要
Application/LEACH instproc advertiseClusterHead {} {} 广播簇头节点
Application/LEACH instproc findBestCluster {} {} 找到最佳簇
Application/LEACH instproc informClusterHead {} {} 通知簇头节点
Application/LEACH instproc createSchedule {} {} 创建TDMA调度
接收功能:
Application/LEACH instproc recv {args} {}
Application/LEACH instproc recvADV_CH {msg} {}
Application/LEACH instproc recvJOIN_REQ {nodeID} {}
Application/LEACH instproc recvADV_SCH {order} {}
Application/LEACH instproc recvDATA {msg} {}
发送功能:
Application/LEACH instproc sendData {} {}
Application/LEACH instproc send {mac_dst link_dst type msgdata_size dist code} {}
Application/LEACH instproc send_now {mac_dst link_dst type msg data_size dist code} {}
Application/LEACH instproc SendDataToBS {} {}
Application/LEACH instproc SendMyDataToBS {} {}