MANET Simulator developing diary

本文详细介绍了MANET仿真器的框架结构及关键参数设置,包括基本变量、NS运行设置、日志文件记录开关和基本宏定义。特别讨论了通过调整NS速度比来优化运行效率的方法,并解释了日志文件记录开关的作用。最后,文章提供了简化操作的代码宏定义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     Framework of this simulator has already developed after 2 weeks' effort.

     The basic of the simulator is the "BaseDef.h" shown as follow:

#ifndef _BASE_DEF_H_
#define _BASE_DEF_H_
#include <cstdlib>

// --------------------------------------- A. Variables ------------------------------------------
// MN's transmission range.
const int MN_TR = 1;  // Variable parameter.

// SIR parameters.
const double SIR_ACTIVE_TIME = 100;

// Nodes' number.
const int MN_NUM = 1080;

// Node's velocity.
const double MN_VELOCITY = 10;

// ------------------------------------------ B. NS Running settings ----------------------------------------
// Simulator's speed ratio.
const unsigned int NS_SPEED_RATIO = 5;

// Simulator parameters.
const unsigned int NS_LOGICAL_LAST_TIME = 500;
const unsigned int NS_SIMUL_LAST_TIME =(int) (NS_LOGICAL_LAST_TIME/NS_SPEED_RATIO);
const unsigned int NS_TOLERATE_DELAY = 70;

// Topology parameters.
const double TOPO_MIN_X = 0.0;
const double TOPO_MIN_Y = 0.0;
const double TOPO_WIDTH = 600.0;
const double TOPO_HEIGHT = 600.0;

// Simulator's deviation parameters.
const double PI = 3.1415926;
const double SPACE_DEVIATION = 0.6;

// ------------------------------------------ C. NS LogFile recording switches ----------------------------------------
const bool IS_COUT_OPEN = true;
const bool IS_RUNLOG_OPEN = false;
const bool IS_FWLOG_OPEN = false;
const bool IS_LOCLOG_OPEN = false;
const bool IS_SIRLOG_OPEN = false;

// ---------------------------------------- D. Basic #defines ---------------------------------------------
// Basic operation.
#define _in
#define _out
#define SAFELY_DELETE_PTR( pX ) \
{ \
if ( NULL != pX )\
{ \
delete pX; \
pX = NULL; \
} \
}

#endif

// BaseDef.h :~

 

   From it, we see that in section A, we set 4 significant variable parameters, they are the base parameter of my MANETSimulator. In section B, there're several important settings about the NS(Network Simulator) running, e.g., the const UINT NS_SPEED_RATIO, it controls the speed ratio of the NS. At the beginning, I did not consider this speed ratio of NS, however, the original edition of MANETSimulator runs in the logical time slot, as you know, it is even slower than the real time. It is normal that I need 5 minuts or more to run every round of simulation. We can not tolerate the so slow effectiveness. So, the speed ratio NS_SPEED_RATIO is introduced at last, to control the speed of NS, and let NS runs in a fast logical time, at last, the consumption of running time is reduced much.

   But, if I use this speed ratio, I need adjust the value of MNode's velocity when I get the MN's velocity, as shown as follow:

double MNode::GetVelocity()
{
return m_dVelocity*NS_SPEED_RATIO;  // !! Adjust the velocity
}

 

   In section C, I utilize 4 parameters as the LogFiles' recording switches to contol the printing of trace data. It is convenient so much.

   And in the last section D, those are 3 basic macros of operating code, and they are so easy but practical.

 

Davy_H

2011-03-27

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值