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

📄 asyncnetlayer.h

📁 基于omnet++开发的Mf框架下的802.11协议仿真。
💻 H
字号:
/* -*- mode:c++ -*- ********************************************************
 * file:        AsyncNetwLayer.h
 *
 * author:      Yupeng.hu
 *
 * copyright:   (C) 2006 HUNAN Universtiy, ChangSha China
 *
 ***************************************************************************
 * part of:     Async Simulation
 * description: - Async Description
 *
 ***************************************************************************
 * changelog:   $Revision$
 *              last modified:   $Date: 2006-7-7 10:21 $
 *              by:              $Author: Yupeng.hu $
 ***************************************************************************/
//#include <fstream.h>
#ifndef ASYNCNETLAYER_H
#define ASYNCNETLAYER_H

#include <BasicNetwLayer.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <list>
#include <vector>
#include <string>

#define IS_CLUSTER 0
#define NO_CLUSTER 1
#define IS_CONNECT 2
#define NO_CONNECT 3
#define CLUSTER 4
#define CLUSTER_ACK 5
/**
 * @brief A simple shortest routing protocol
 **/
class AsyncNetLayer : public BasicNetwLayer
{
 
public:
 	  Module_Class_Members( AsyncNetLayer, BasicNetwLayer, 0 );
 	

  	/** @brief Initialization of omnetpp.ini parameters*/
  	virtual void initialize(int);

private:
 	  typedef std::map<int,int> ShortestNetwLayerTable; // destaddr -> port
    ShortestNetwLayerTable rtable;
    cTopology *topo;
    int maxHops;
    double delay[14][2];
    double mean[14]; 
        
protected:
  	/** @brief Handle self messages such as timer... */
    virtual void handleSelfMsg(cMessage*); //Add by Fang-shi
  	
  	/** @brief Handle messages from upper layer */
  	virtual void handleUpperMsg(NetwPkt*);

  	/** @brief Handle messages from lower layer */
  	virtual void handleLowerMsg(NetwPkt*);
  	
  	/** @brief Sends a message to the lower layer; waits delay seconds
      before sending*/
   	virtual void sendDown(NetwPkt*, int, int);
   	
   	/** @brief Sends a message to the lower layer */
  	virtual void sendDelayedDown(NetwPkt*, double, int, int);
  	
  	
  	/** @brief Handle upper&lower pkt */
  	void Routing(NetwPkt*);
  	
  	/** @brief transfer network layer module id to real index */
  	int NetModuleID2Index(int);
  	
  	/** @brief  find next hop to other nodes*/
  	void findNextHop(cTopology *);
  	
  	cStdDev qstats;
  	
  	virtual void sendClusterMsg();
  	virtual void sendClusterAckMsg();  //多的  	NetwPkt* buildClusterMsg();  
  	NetwPkt* buildClusterAckMsg();//多的  	
  	virtual void finish();
  	
  	/**@brief shi zhong diao du To jian li cujiegou */
  	cMessage *clusterEvent; //Add by Fang-shi
  	int status;//标注节点是否为簇头  	int conStatus;//标注节点是否已与簇头建立连接  	int clusterHead;
  	int r;
  	
  	int clu[15];   //多的,存放簇内节点的地址  	int head[8];//存放簇头地址
   
};

#endif

⌨️ 快捷键说明

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