亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? aodv_waypoint_mob.pr.c

?? aodv的仿真代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* Process model C form file: aodv_waypoint_mob.pr.c *//* Portions of this file copyright 1992-2001 by OPNET Technologies, Inc. *//* This variable carries the header into the object file */static const char aodv_waypoint_mob_pr_c [] = "MIL_3_Tfile_Hdr_ 80C 30A op_runsim 7 3C064A77 3C064A77 1 manet.antd.nist.gov lmiller 0 0 none none 0 0 none 0 0 0 0 0 0                                                                                                                                                                                                                                                                                                                                                                                                        ";#include <string.h>/* OPNET system definitions */#include <opnet.h>#if defined (__cplusplus)extern "C" {#endifFSM_EXT_DECS#if defined (__cplusplus)} /* end of 'extern "C"' */#endif/* Header Block *//* Include directives */#include <math.h>#include "Aodv_Utils.h"/* PI constant      */#define PI	 3.141592654/* Transition codes */#define MOVE_CODE        0#define START_PAUSE_CODE 1#define END_PAUSE_CODE   2#define STAT_CODE        3/* Transition macro */#define MOVE          (op_intrpt_type () == OPC_INTRPT_SELF && op_intrpt_code() == MOVE_CODE)#define START_PAUSE   (PAUSE == 1)#define KEEP_MOVING   (PAUSE == 0)#define END_PAUSE     (op_intrpt_type () == OPC_INTRPT_SELF && op_intrpt_code() == END_PAUSE_CODE)#define STATS         (op_intrpt_type () == OPC_INTRPT_SELF && op_intrpt_code() == STAT_CODE)#define FIX           (MOBILE == 0) #define MOBIL         (MOBILE == 1)/* Mobility status */#define Disabled 0#define Enabled  1#define N_MAX 55#define TRACE_LEV_1 1/* Declare global vars */double avg_speed;typedef struct{	double x;	double y;	}Position;Position position_map[N_MAX];Position last_position_map[N_MAX];double   avg_dist_from_nodes[N_MAX];double   last_avg_dist_from_nodes[N_MAX];double   total_relative_deplacement[N_MAX];int      connectivity_map[N_MAX][N_MAX];void     aodv_mob_print_conn_map();int      nb_links;/* End of Header Block */#if !defined (VOSD_NO_FIN)#undef	BIN#undef	BOUT#define	BIN		FIN_LOCAL_FIELD(last_line_passed) = __LINE__ - _block_origin;#define	BOUT	BIN#define	BINIT	FIN_LOCAL_FIELD(last_line_passed) = 0; _block_origin = __LINE__;#else#define	BINIT#endif /* #if !defined (VOSD_NO_FIN) *//* State variable definitions */typedef struct	{	/* Internal state tracking for FSM */	FSM_SYS_STATE	/* State Variables */	Distribution *	         		one;	Objid	                  		node_id;	Objid	                  		process_id;	Objid	                  		net_id;	int	                    		MOBILE;	double	                 		XMAX;	double	                 		XMIN;	double	                 		YMAX;	double	                 		YMIN;	int	                    		DEBUG;	int	                    		node_addr;	double	                 		TRANSMISSION_RANGE;	int	                    		num_nodes;	double	                 		my_avg_speed;	double	                 		distance_to_cover;	double	                 		PAUSE_TIME;	double	                 		MVT_STEP;	double	                 		SPEED_LIMIT;	double	                 		direction_angle;	double	                 		step_range;	double	                 		DISTANCE_LIMIT;	Distribution *	         		uniform_double_x;	Distribution *	         		uniform_double_y;	int	                    		PAUSE;	double	                 		x_target;	double	                 		y_target;	} aodv_waypoint_mob_state;#define pr_state_ptr            		((aodv_waypoint_mob_state*) SimI_Mod_State_Ptr)#define one                     		pr_state_ptr->one#define node_id                 		pr_state_ptr->node_id#define process_id              		pr_state_ptr->process_id#define net_id                  		pr_state_ptr->net_id#define MOBILE                  		pr_state_ptr->MOBILE#define XMAX                    		pr_state_ptr->XMAX#define XMIN                    		pr_state_ptr->XMIN#define YMAX                    		pr_state_ptr->YMAX#define YMIN                    		pr_state_ptr->YMIN#define DEBUG                   		pr_state_ptr->DEBUG#define node_addr               		pr_state_ptr->node_addr#define TRANSMISSION_RANGE      		pr_state_ptr->TRANSMISSION_RANGE#define num_nodes               		pr_state_ptr->num_nodes#define my_avg_speed            		pr_state_ptr->my_avg_speed#define distance_to_cover       		pr_state_ptr->distance_to_cover#define PAUSE_TIME              		pr_state_ptr->PAUSE_TIME#define MVT_STEP                		pr_state_ptr->MVT_STEP#define SPEED_LIMIT             		pr_state_ptr->SPEED_LIMIT#define direction_angle         		pr_state_ptr->direction_angle#define step_range              		pr_state_ptr->step_range#define DISTANCE_LIMIT          		pr_state_ptr->DISTANCE_LIMIT#define uniform_double_x        		pr_state_ptr->uniform_double_x#define uniform_double_y        		pr_state_ptr->uniform_double_y#define PAUSE                   		pr_state_ptr->PAUSE#define x_target                		pr_state_ptr->x_target#define y_target                		pr_state_ptr->y_target/* This macro definition will define a local variable called	*//* "op_sv_ptr" in each function containing a FIN statement.	*//* This variable points to the state variable data structure,	*//* and can be used from a C debugger to display their values.	*/#undef FIN_PREAMBLE#define FIN_PREAMBLE	aodv_waypoint_mob_state *op_sv_ptr = pr_state_ptr;/* Function Block */enum { _block_origin = __LINE__ };/*************************/* Prints a major message *************************/void aodv_mob_print_major(char * msg, int trace_level)	{	char msg1[64];	char msg2[64];	if(DEBUG >= trace_level)		{		printf("\n\n|------------------------------------------------------------------------------|\n");		sprintf(msg1,"|====]  Node %d  [====|  @  Mobility", node_addr);		printf("%s",msg1);		sprintf(msg2,"Time: %f |", op_sim_time());				aodv_justify(strlen(msg1),msg2,80);		printf("|------------------------------------------------------------------------------|");				printf("\n\t\t- %s\n",msg);		}	}/****************************/* Prints a minor message *****************************/void aodv_mob_print_minor(char * msg, int trace_level)	{	if(DEBUG >= trace_level)		{		printf("\t\t> %s\n", msg);			   		}	}/*****************************Init connectivity map*******************************/void aodv_mob_init_conn_map()	{		double distance_i_j;	int i,j;	double xi,xj,yi,yj;		// Init to zero	for(i = 0; i < num_nodes; i++)		{		// init total relative deplacement table		total_relative_deplacement[i] = 0;		// init conn map		for(j = 0; j < num_nodes; j++)			connectivity_map[i][j] = 0;			}		//aodv_mob_print_major("Connectivity Map:",TRACE_LEV_1);	// Update connectivity	for(i = 1; i < num_nodes; i++)		{			xi = position_map[i].x;		yi = position_map[i].y;							for(j=0; j < i; j++)			{			xj = position_map[j].x;			yj = position_map[j].y;										distance_i_j= sqrt((xi-xj)*(xi-xj) + (yi-yj)*(yi-yj));			if(distance_i_j <= TRANSMISSION_RANGE)				{				nb_links++;				connectivity_map[i][j] = 1;				}			}		}		}/*******************************Update connectivity map********************************/void aodv_mob_update_conn_map()	{	double distance_i_j;	int i,j;	double xi,xj,yi,yj;		i = node_addr;	xi = position_map[i].x;	yi = position_map[i].y;				//printf("\t\t> New neighbors: ");	for(j=0; j < num_nodes; j++)		{		if(j != i)			{			xj = position_map[j].x;			yj = position_map[j].y;									distance_i_j= sqrt((xi-xj)*(xi-xj) + (yi-yj)*(yi-yj));			if(distance_i_j > TRANSMISSION_RANGE)				{				if(i>j)					{					if(connectivity_map[i][j] == 1)						{						nb_links--;						if(DEBUG) printf("\t\t>> Link toward [%d] has broken.\n",j);						}					connectivity_map[i][j] = 0;					}				else					{					if(connectivity_map[j][i] == 1)						{						nb_links--;						if(DEBUG) printf("\t\t>> Link toward [%d] has broken.\n",j);						}										connectivity_map[j][i] = 0;					}				}			else				{				//printf("[%d]  ",j);				if(i>j)					{					if(connectivity_map[i][j] == 0)						{						nb_links++;						if(DEBUG) printf("\t\t>> Link toward [%d] has formed.\n",j);											}					connectivity_map[i][j] = 1;					}				else					{					if(connectivity_map[j][i] == 0)						{						nb_links++;						if(DEBUG) printf("\t\t>> Link toward [%d] has formed.\n",j);											}					connectivity_map[j][i] = 1;					}				}			}		}	//printf("\n");	}/*Print connectivity map*/void aodv_mob_print_conn_map()	{	int i,j;	int conn_i_j;	int neighbor;		for(i = 0; i < num_nodes; i++)		{			if(DEBUG > 3) printf("\t\t> Node [%d] Neighbors: ",i);		for(j=0; j < num_nodes; j++)			{			if(j != i)				{				neighbor = j;				if(i>j)					conn_i_j = connectivity_map[i][j];				else					conn_i_j = connectivity_map[j][i];				if(conn_i_j)					if(DEBUG > 3) printf("[%d]  ",neighbor);				}			}		if(DEBUG > 3) printf("\n");		}	}/********************************/* Compute relative distances/* for a given node********************************/doubleaodv_mob_compute_relative_dist(int current_node, Position position_table[N_MAX])	{	double distance_i_j = 0;	int i,j;	double xi,xj,yi,yj;		i = current_node;	xi = position_table[i].x;	yi = position_table[i].y;				for(j=0; j < num_nodes; j++)		{		if(j != i)			{			xj = position_table[j].x;			yj = position_table[j].y;									distance_i_j+= sqrt((xi-xj)*(xi-xj) + (yi-yj)*(yi-yj));			}		}	return (double) distance_i_j/(num_nodes-1.0);	}/*****************************/* Collect stats******************************/voidaodv_mob_collect_stats()	{	int i;	aodv_mob_print_major("Collecting stats",TRACE_LEV_1);	// For each node in the network	for(i = 0; i < num_nodes; i++)		{		// Compute the current avg distance		avg_dist_from_nodes[i] = aodv_mob_compute_relative_dist(i, position_map);		// Compute the last avg distance		last_avg_dist_from_nodes[i] = aodv_mob_compute_relative_dist(i, last_position_map);			// Record the total relative deplacement		total_relative_deplacement[i]+= sqrt((avg_dist_from_nodes[i] - last_avg_dist_from_nodes[i])*(avg_dist_from_nodes[i] - last_avg_dist_from_nodes[i]));		}	// Schedule inerrupt to update mobility	op_intrpt_schedule_self(op_sim_time()+ MVT_STEP,STAT_CODE);	}/* End of Function Block *//* Undefine optional tracing in FIN/FOUT/FRET *//* The FSM has its own tracing code and the other *//* functions should not have any tracing.		  */#undef FIN_TRACING#define FIN_TRACING#undef FOUTRET_TRACING#define FOUTRET_TRACING#if defined (__cplusplus)extern "C" {#endif	void aodv_waypoint_mob (void);	Compcode aodv_waypoint_mob_init (void **);	void aodv_waypoint_mob_diag (void);	void aodv_waypoint_mob_terminate (void);	void aodv_waypoint_mob_svar (void *, const char *, char **);#if defined (__cplusplus)} /* end of 'extern "C"' */#endif/* Process model interrupt handling procedure */voidaodv_waypoint_mob (void)	{	int _block_origin = 0;	FIN (aodv_waypoint_mob ());	if (1)		{		Objid	       params_comp_attr_objid;		Objid          params_attr_objid;		double	       rand, prev_angle,x,y,z,x_pos,y_pos,z_pos;		double         first_interval;		char           msg[64];		int            i;		double         pause_time;		FSM_ENTER (aodv_waypoint_mob)		FSM_BLOCK_SWITCH			{			/*---------------------------------------------------------*/			/** state (init) enter executives **/			FSM_STATE_ENTER_FORCED_NOLABEL (0, "init", "aodv_waypoint_mob () [init enter execs]")				{				// init Objids				process_id = op_id_self();				node_id = op_topo_parent (process_id);				op_ima_obj_attr_get(node_id,"wlan_mac.station_address",&node_addr);				op_ima_obj_attr_get(node_id, "DEBUG", &DEBUG);				// Disable DEBUG				DEBUG = 0;				net_id = op_topo_parent(node_id);				// Load Mobility parameters				op_ima_obj_attr_get (process_id, "Mobility Parameters", &params_comp_attr_objid);				params_attr_objid = op_topo_child (params_comp_attr_objid, OPC_OBJTYPE_GENERIC, 0);				op_ima_obj_attr_get(params_attr_objid, "MOBILITY"   , &MOBILE);				op_ima_obj_attr_get(params_attr_objid, "PAUSE_TIME" , &PAUSE_TIME);				op_ima_obj_attr_get(params_attr_objid, "MVT_STEP"   , &MVT_STEP);				op_ima_obj_attr_get(params_attr_objid, "SPEED_LIMIT", &SPEED_LIMIT);				op_ima_obj_attr_get(params_attr_objid, "X_MIN"      , &XMIN);				op_ima_obj_attr_get(params_attr_objid, "X_MAX"      , &XMAX);				op_ima_obj_attr_get(params_attr_objid, "Y_MIN"      , &YMIN);				op_ima_obj_attr_get(params_attr_objid, "Y_MAX"      , &YMAX);				op_ima_sim_attr_get(OPC_IMA_DOUBLE,"Wireless LAN Range (meters)",&TRANSMISSION_RANGE);				/* Read the number of nodes in the network */				num_nodes = op_topo_object_count (OPC_OBJTYPE_NDMOB);				if(num_nodes > N_MAX)					{					op_sim_end("Network contains more than N_MAX nodes","Change N_MAX value in all files and restart all over again","","");					}				// Pick a random init position				uniform_double_x = op_dist_load ("uniform", XMIN, XMAX);				x_pos = op_dist_outcome(uniform_double_x);				uniform_double_y = op_dist_load ("uniform", YMIN, YMAX);				y_pos = op_dist_outcome(uniform_double_y);								// Set the current position of the node				op_ima_obj_attr_set(node_id,"x position",x_pos);				op_ima_obj_attr_set(node_id,"y position",y_pos);								// Register its position in the connectivity map				position_map[node_addr].x = x_pos;				position_map[node_addr].y = y_pos;				// Register its last position in the connectivity map				last_position_map[node_addr].x = x_pos;				last_position_map[node_addr].y = y_pos;				// Compute DISTANCE_LIMIT				DISTANCE_LIMIT = sqrt((XMAX - XMIN)*(XMAX - XMIN)+(YMAX - YMIN)*(YMAX - YMIN));				// initialize distributions for random movement				one = op_dist_load ("uniform", -1, 1);								// Begin				// If MOBILITY attribute is set to Enabled, then node is 				// really entitled to travel through the network.				// In this case, transit to "Init_Mvt" state. Otherwise, go to "Idle" state.				// The number of established links is initially set to 0				nb_links = 0;				// Init avg speed				avg_speed = PAUSE_TIME;				// The last node updates the connectivity map.				if(node_addr == (num_nodes -1))					{					aodv_mob_init_conn_map();					aodv_mob_print_conn_map();					op_intrpt_schedule_self(op_sim_time()+ 0.5*MVT_STEP,STAT_CODE);					}				}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美亚洲高清一区| 亚洲男人都懂的| 18成人在线观看| 麻豆精品国产91久久久久久| 99久久精品99国产精品| 欧美不卡在线视频| 亚洲一区二区av电影| 成人久久18免费网站麻豆| 欧美一级久久久| 亚洲国产精品嫩草影院| 91美女片黄在线| 中文字幕在线一区| 国产综合久久久久久鬼色| 制服视频三区第一页精品| 一区二区三区资源| 99视频有精品| 亚洲国产精品传媒在线观看| 国产一区在线视频| 欧美电影免费观看高清完整版在线| 亚洲一区二区三区影院| 91农村精品一区二区在线| 国产精品久久久一本精品| 丁香婷婷综合激情五月色| 久久久久九九视频| 国产在线不卡一卡二卡三卡四卡| 日韩三级av在线播放| 日本欧美大码aⅴ在线播放| 欧美精品一二三四| 亚州成人在线电影| 欧美片网站yy| 日本不卡在线视频| 精品久久久久久久人人人人传媒 | 中日韩av电影| 国产精品亚洲专一区二区三区| 精品国产91久久久久久久妲己 | 一区二区三区加勒比av| 一本在线高清不卡dvd| 亚洲欧美二区三区| 日本韩国精品在线| 亚洲国产一区二区在线播放| 欧美酷刑日本凌虐凌虐| 香蕉影视欧美成人| 精品久久国产97色综合| 国产一本一道久久香蕉| 国产视频一区二区在线| 99re热视频这里只精品| 一区二区久久久久| 91精品国产综合久久久久久漫画 | 极品少妇一区二区| 久久欧美一区二区| 成人av在线一区二区| 亚洲视频一二区| 欧美日韩成人在线一区| 国产一区二区三区精品视频| 国产精品午夜春色av| 欧美日韩色一区| 精品综合免费视频观看| 国产精品伦理在线| 欧美日韩在线播| 国内精品视频一区二区三区八戒| 中文字幕亚洲在| 777色狠狠一区二区三区| 国产乱妇无码大片在线观看| 中文字幕佐山爱一区二区免费| 欧美女孩性生活视频| 国产盗摄视频一区二区三区| 中文字幕日韩一区| 欧美一区二区三区视频免费| 成人av电影在线网| 青青青伊人色综合久久| 亚洲欧美自拍偷拍| 欧美一二三区在线| 91毛片在线观看| 极品少妇一区二区| 天堂va蜜桃一区二区三区漫画版| 久久精品水蜜桃av综合天堂| 欧美丝袜丝交足nylons| 成人黄色综合网站| 久久99精品网久久| 亚洲成在线观看| 中文字幕中文字幕一区二区| 精品电影一区二区三区| 欧美日韩免费电影| 99久久综合精品| 精品一区精品二区高清| 天堂va蜜桃一区二区三区| 国产精品福利一区二区| 久久久精品国产免费观看同学| 欧美主播一区二区三区美女| 成人久久18免费网站麻豆| 蜜桃久久久久久| 天天色天天操综合| 一区二区三区四区乱视频| 中文字幕高清一区| 国产午夜久久久久| 日韩精品一区二区在线| 欧美日韩久久一区二区| 91免费国产在线| 成人精品高清在线| 国产成人av网站| 国产一区二区调教| 精品一区二区三区影院在线午夜 | 欧美精品精品一区| 欧美在线短视频| 91豆麻精品91久久久久久| 97精品超碰一区二区三区| 成人精品电影在线观看| 豆国产96在线|亚洲| 丁香六月久久综合狠狠色| 国产一区二区女| 国产伦精品一区二区三区视频青涩 | 精品国内二区三区| 日韩美女一区二区三区四区| 日韩一区二区三区视频在线观看| 欧美日韩日日骚| 欧美高清性hdvideosex| 91麻豆精品国产91久久久久 | 99re成人精品视频| 91麻豆免费看| 91搞黄在线观看| 欧美日本在线看| 91精品国产欧美一区二区18| 欧美一区二区三区小说| 亚洲精品一区二区三区蜜桃下载| 精品国产一区a| 欧美韩国日本一区| 中文字幕亚洲在| 亚洲一区二区三区四区在线 | thepron国产精品| 一本色道亚洲精品aⅴ| 欧洲av在线精品| 91精品婷婷国产综合久久性色| 日韩久久免费av| 欧美国产日韩亚洲一区| 一区二区三区视频在线观看| 五月激情综合网| 狠狠久久亚洲欧美| 99re8在线精品视频免费播放| 欧美日韩不卡一区二区| 精品国产sm最大网站免费看| 国产精品国产馆在线真实露脸| 亚洲午夜精品久久久久久久久| 免费成人在线网站| zzijzzij亚洲日本少妇熟睡| 欧美视频一区二区三区四区| 日韩精品中文字幕在线不卡尤物 | 亚洲综合av网| 亚洲一级二级在线| 国产永久精品大片wwwapp| www.成人在线| 欧美大胆人体bbbb| 一区二区三区在线高清| 全部av―极品视觉盛宴亚洲| av在线不卡网| 日韩一区二区在线观看| 国产精品国产三级国产普通话蜜臀 | 亚洲视频一区二区免费在线观看 | 色婷婷综合中文久久一本| 666欧美在线视频| 国产精品日韩成人| 日韩精品欧美精品| 丁香婷婷综合激情五月色| 日韩一区二区中文字幕| 亚洲丝袜制服诱惑| 国产精品一区二区免费不卡| 欧美三级蜜桃2在线观看| 久久久久久久久久久黄色| 亚洲成av人片在线观看无码| 成人国产精品视频| 2021久久国产精品不只是精品| 亚洲国产精品麻豆| 色综合中文字幕国产| 日韩一级高清毛片| 亚洲va韩国va欧美va| 99精品视频在线播放观看| 欧美精品一区二区久久婷婷| 同产精品九九九| 91成人在线观看喷潮| 国产精品成人免费在线| 国产精品一区专区| 精品免费视频一区二区| 日韩电影免费在线看| 欧美日韩一区二区三区在线看| 亚洲欧洲韩国日本视频| 成人午夜视频在线观看| 久久精品一级爱片| 国产美女视频91| 久久综合丝袜日本网| 国产在线视视频有精品| 欧美高清激情brazzers| 亚洲国产美国国产综合一区二区| 99精品一区二区三区| 中文字幕国产一区| 成人深夜视频在线观看| 亚洲国产精品激情在线观看| 成人免费看视频| 中文字幕一区在线观看| 成人福利电影精品一区二区在线观看| 久久一二三国产| 国产成人精品免费在线|