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

📄 core.em.c

📁 实验室前辈用OPNET做的光突发交换网络的仿真实验
💻 C
📖 第 1 页 / 共 3 页
字号:
		"op_ima_obj_attr_get(node_objid, \"user id\", &userid);",
		"//end of of conform the node id",
		"",
		"op_intrpt_schedule_self(op_sim_time(), 0);",
		PRGC_NIL);

	Ema_Object_Attr_Set (model_id, obj [11], 
		"name",                 COMP_CONTENTS, "init",
		"name",                 COMP_INTENDED, EMAC_DISABLED,
		"Enter Execs",          COMP_CONTENTS, prg_lptr [10],
		"status",               COMP_TOGGLE,   EMAC_ENABLED,
		"status",               COMP_INTENDED, EMAC_DISABLED,
		"position",             COMP_CONTENTS, obj [12],
		"initial",              COMP_TOGGLE,   EMAC_ENABLED,
		EMAC_EOL);


	/* assign attrs for object 'obj [13]' */
	/* create and init prg list 'prg_lptr [12]' */
	prg_lptr [12] = (Prg_List *)prg_list_create ();
	prg_list_strings_append (prg_lptr [12], 
		"//printf(\"Core->wait, userid=%d\\n\",userid);",
		"//getchar();",
		PRGC_NIL);

	/* create and init prg list 'prg_lptr [13]' */
	prg_lptr [13] = (Prg_List *)prg_list_create ();
	Ema_Object_Attr_Set (model_id, obj [13], 
		"name",                 COMP_CONTENTS, "wait",
		"name",                 COMP_INTENDED, EMAC_DISABLED,
		"Enter Execs",          COMP_CONTENTS, prg_lptr [12],
		"Exit Execs",           COMP_CONTENTS, prg_lptr [13],
		"position",             COMP_CONTENTS, obj [14],
		"initial",              COMP_TOGGLE,   EMAC_DISABLED,
		EMAC_EOL);


	/* assign attrs for object 'obj [15]' */
	/* create and init prg list 'prg_lptr [14]' */
	prg_lptr [14] = (Prg_List *)prg_list_create ();
	prg_list_strings_append (prg_lptr [14], 
		"self_objid = op_id_self ();",
		"node_objid = op_topo_parent (self_objid);",
		"subnet_objid = op_topo_parent (node_objid);",
		"topo_objid = op_rte_topo_from_objids();",
		"op_ima_obj_attr_get(node_objid, \"user id\", &userid);	",
		"//printf(\"S_M->data_recieve, userid=%d,op_time=%e\\n\",userid,op_sim_time());",
		"//",
		"",
		"intrupt_strum = op_intrpt_strm();",
		"//printf(\"sr_num=%d\\n\",intrupt_strum);",
		"//getchar();",
		"pkptr_burst = op_pk_get(intrupt_strum);",
		"",
		"",
		"temp_occupy_count = op_prg_list_size(s_metrix_list);",
		"//printf(\"S_M-->data_recieve;occuppy_count=%d,uerid=%d\\n\",temp_occupy_count,userid);",
		"//getchar();",
		"	",
		"for(i=0; i<temp_occupy_count; i++)",
		"{",
		"	//printf(\"i=%d\\n\",i);",
		"	temp_s_metrix = op_prg_list_access(s_metrix_list, i);",
		"	//printf(\"S_M->data_recieve;userid=%d,in_strm=%d,intr_in_strm=%d,out_strm=%d,op_time=%10e\\n\",userid,temp_s_metrix->input_strum,",
		"	//	intrupt_strum,temp_s_metrix->output_strum,op_sim_time());",
		"	if( (op_sim_time() - temp_s_metrix->s_time < 0.0000000001) && intrupt_strum == temp_s_metrix->input_strum)	",
		"	{	",
		"		//printf(\"S_M->data_recieve,success pass,userid=%d,out_strm=%d,op_time=%e\\n\",userid,temp_s_metrix->output_strum,op_sim_time());",
		"		//getchar();",
		"		",
		"		temp_flag_success = 1;",
		"	",
		"	}",
		"	else",
		"	{",
		"		//printf(\"S_M->data_recieve,fail pass,userid=%d,temp_s_metrix->s_time=10%e,op_time=%10e\\n\",userid,temp_s_metrix->s_time,op_sim_time());",
		"		//getchar();",
		"		temp_flag_success = 0;		",
		"	}",
		"	",
		"}		",
		"",
		"if(	temp_flag_success == 1)",
		"{",
		"	op_pk_send(pkptr_burst, temp_s_metrix->output_strum);",
		"}",
		"else",
		"{",
		"	op_pk_destroy(pkptr_burst);",
		"}	",
		"",
		"//printf(\"S_M->data_recieve; end \\n\");",
		PRGC_NIL);

	Ema_Object_Attr_Set (model_id, obj [15], 
		"name",                 COMP_CONTENTS, "data_recieve",
		"name",                 COMP_INTENDED, EMAC_DISABLED,
		"Enter Execs",          COMP_CONTENTS, prg_lptr [14],
		"status",               COMP_TOGGLE,   EMAC_ENABLED,
		"status",               COMP_INTENDED, EMAC_DISABLED,
		"position",             COMP_CONTENTS, obj [16],
		"initial",              COMP_TOGGLE,   EMAC_DISABLED,
		EMAC_EOL);


	/* assign attrs for object 'obj [17]' */
	Ema_Object_Attr_Set (model_id, obj [17], 
		"name",                 COMP_CONTENTS, "end",
		"position",             COMP_CONTENTS, obj [18],
		"initial",              COMP_TOGGLE,   EMAC_DISABLED,
		EMAC_EOL);


	/* assign attrs for object 'obj [19]' */
	/* create and init prg list 'prg_lptr [18]' */
	prg_lptr [18] = (Prg_List *)prg_list_create ();
	prg_list_strings_append (prg_lptr [18], 
		"self_objid = op_id_self ();",
		"node_objid = op_topo_parent (self_objid);",
		"subnet_objid = op_topo_parent (node_objid);",
		"topo_objid = op_rte_topo_from_objids();",
		"",
		"",
		"",
		"s_metrix_list = (List *)op_prg_mem_alloc(sizeof(List));",
		"op_prg_list_init(s_metrix_list);",
		PRGC_NIL);

	Ema_Object_Attr_Set (model_id, obj [19], 
		"name",                 COMP_CONTENTS, "S_M_init",
		"Enter Execs",          COMP_CONTENTS, prg_lptr [18],
		"status",               COMP_TOGGLE,   EMAC_ENABLED,
		"position",             COMP_CONTENTS, obj [20],
		"initial",              COMP_TOGGLE,   EMAC_DISABLED,
		EMAC_EOL);


	/* assign attrs for object 'obj [21]' */
	/* create and init prg list 'prg_lptr [20]' */
	prg_lptr [20] = (Prg_List *)prg_list_create ();
	prg_list_strings_append (prg_lptr [20], 
		"self_objid = op_id_self ();",
		"node_objid = op_topo_parent (self_objid);",
		"subnet_objid = op_topo_parent (node_objid);",
		"topo_objid = op_rte_topo_from_objids();",
		"",
		"",
		"//printf(\"S_M-->S_M_Update 0;userid=%d\\n\",userid);",
		"//getchar();	",
		"",
		"/*",
		"temp_ici = op_intrpt_ici();",
		"temp_s_metrix = (S_METRIX *)op_prg_mem_alloc(sizeof(S_METRIX));",
		"op_ici_attr_get(temp_ici,\"s_time\",temp_s_metrix->s_time);",
		"op_ici_attr_get(temp_ici,\"d_time\",&temp_s_metrix->d_time);",
		"op_ici_attr_get(temp_ici,\"input_strum\",&temp_s_metrix->input_strum);",
		"op_ici_attr_get(temp_ici,\"output_strum\",&temp_s_metrix->output_strum);",
		"*/",
		"",
		"s_metrix_pkptr = op_pk_get(0);",
		"",
		"temp_s_metrix = (S_METRIX *)op_prg_mem_alloc(sizeof(S_METRIX));",
		"",
		"op_pk_nfd_get (s_metrix_pkptr, \"s_time\", &temp_s_metrix->s_time);",
		"op_pk_nfd_get (s_metrix_pkptr, \"d_time\", &temp_s_metrix->d_time);",
		"op_pk_nfd_get (s_metrix_pkptr, \"input_strum\", &temp_s_metrix->input_strum);",
		"op_pk_nfd_get (s_metrix_pkptr, \"output_strum\", &temp_s_metrix->output_strum);",
		"",
		"",
		"op_prg_list_insert(s_metrix_list,temp_s_metrix,OPC_LISTPOS_TAIL);",
		"",
		"",
		"",
		"temp_occupy_count = op_prg_list_size(s_metrix_list);",
		"",
		"//printf(\"S_M-->S_M_Update 1;userid=%d,temp_occupy_count=%d\\n\",userid,temp_occupy_count);",
		"",
		"i=0;",
		"temp_flag_loop = 1;",
		"while(i<temp_occupy_count & temp_flag_loop == 1)	",
		"{",
		"",
		"	temp_s_metrix = op_prg_list_access(s_metrix_list, i);",
		"	if(op_sim_time() > temp_s_metrix->s_time + temp_s_metrix->d_time)",
		"	{	",
		"		op_prg_list_remove(s_metrix_list, i);",
		"		temp_flag_loop = 0;",
		"	}	",
		"	i++;",
		"}		",
		"",
		"//printf(\"S_M-->S_M_Update 2;userid=%d\\n\",userid);",
		"op_pk_destroy(s_metrix_pkptr);",
		"",
		PRGC_NIL);

	Ema_Object_Attr_Set (model_id, obj [21], 
		"name",                 COMP_CONTENTS, "S_M_Update",
		"Enter Execs",          COMP_CONTENTS, prg_lptr [20],
		"status",               COMP_TOGGLE,   EMAC_ENABLED,
		"position",             COMP_CONTENTS, obj [22],
		"initial",              COMP_TOGGLE,   EMAC_DISABLED,
		EMAC_EOL);


	/* assign attrs for object 'obj [23]' */
	Ema_Object_Attr_Set (model_id, obj [23], 
		"name",                 COMP_CONTENTS, "tr_0",
		"name",                 COMP_INTENDED, EMAC_DISABLED,
		"condition",            COMP_CONTENTS, "BEG_SIM",
		"executive",            COMP_CONTENTS, "",
		"executive",            COMP_INTENDED, EMAC_DISABLED,
		"dest state",           COMP_CONTENTS, obj [13],
		"src state",            COMP_CONTENTS, obj [11],
		"color",                COMP_CONTENTS, 0,
		"color",                COMP_INTENDED, EMAC_DISABLED,
		"path",                 COMP_ARRAY_CONTENTS (0), obj [24],
		"path",                 COMP_ARRAY_CONTENTS (1), obj [25],
		"label pos",            COMP_CONTENTS, obj [26],
		EMAC_EOL);


	/* assign attrs for object 'obj [27]' */
	Ema_Object_Attr_Set (model_id, obj [27], 
		"name",                 COMP_CONTENTS, "tr_3",
		"name",                 COMP_INTENDED, EMAC_DISABLED,
		"condition",            COMP_CONTENTS, "DATA_RECIEVE",
		"executive",            COMP_CONTENTS, "",
		"executive",            COMP_INTENDED, EMAC_DISABLED,
		"dest state",           COMP_CONTENTS, obj [15],
		"src state",            COMP_CONTENTS, obj [13],
		"color",                COMP_CONTENTS, 0,
		"color",                COMP_INTENDED, EMAC_DISABLED,
		"path",                 COMP_ARRAY_CONTENTS (0), obj [28],
		"path",                 COMP_ARRAY_CONTENTS (1), obj [29],
		"label pos",            COMP_CONTENTS, obj [30],
		EMAC_EOL);


	/* assign attrs for object 'obj [31]' */
	Ema_Object_Attr_Set (model_id, obj [31], 
		"name",                 COMP_CONTENTS, "tr_5",
		"name",                 COMP_INTENDED, EMAC_DISABLED,
		"condition",            COMP_CONTENTS, "",
		"executive",            COMP_CONTENTS, "",
		"executive",            COMP_INTENDED, EMAC_DISABLED,
		"dest state",           COMP_CONTENTS, obj [13],
		"src state",            COMP_CONTENTS, obj [15],
		"color",                COMP_CONTENTS, 0,
		"color",                COMP_INTENDED, EMAC_DISABLED,
		"path",                 COMP_ARRAY_CONTENTS (0), obj [32],
		"path",                 COMP_ARRAY_CONTENTS (1), obj [33],
		"label pos",            COMP_CONTENTS, obj [34],
		EMAC_EOL);


	/* assign attrs for object 'obj [35]' */
	Ema_Object_Attr_Set (model_id, obj [35], 
		"name",                 COMP_CONTENTS, "tr_20",
		"name",                 COMP_INTENDED, EMAC_DISABLED,
		"condition",            COMP_CONTENTS, "END_SIM",
		"executive",            COMP_CONTENTS, "",
		"dest state",           COMP_CONTENTS, obj [17],
		"src state",            COMP_CONTENTS, obj [13],
		"color",                COMP_CONTENTS, 0,
		"color",                COMP_INTENDED, EMAC_DISABLED,
		"path",                 COMP_ARRAY_CONTENTS (0), obj [36],
		"path",                 COMP_ARRAY_CONTENTS (1), obj [37],
		"label pos",            COMP_CONTENTS, obj [38],
		EMAC_EOL);


	/* assign attrs for object 'obj [39]' */
	Ema_Object_Attr_Set (model_id, obj [39], 
		"name",                 COMP_CONTENTS, "tr_22",
		"name",                 COMP_INTENDED, EMAC_DISABLED,
		"condition",            COMP_CONTENTS, "S_M_INIT",
		"executive",            COMP_CONTENTS, "",
		"executive",            COMP_INTENDED, EMAC_DISABLED,
		"dest state",           COMP_CONTENTS, obj [19],
		"src state",            COMP_CONTENTS, obj [13],
		"color",                COMP_CONTENTS, 0,
		"color",                COMP_INTENDED, EMAC_DISABLED,
		"path",                 COMP_ARRAY_CONTENTS (0), obj [40],
		"path",                 COMP_ARRAY_CONTENTS (1), obj [41],
		"label pos",            COMP_CONTENTS, obj [42],
		EMAC_EOL);


	/* assign attrs for object 'obj [43]' */
	Ema_Object_Attr_Set (model_id, obj [43], 
		"name",                 COMP_CONTENTS, "tr_23",
		"name",                 COMP_INTENDED, EMAC_DISABLED,
		"condition",            COMP_CONTENTS, "",
		"condition",            COMP_INTENDED, EMAC_DISABLED,
		"executive",            COMP_CONTENTS, "",
		"executive",            COMP_INTENDED, EMAC_DISABLED,
		"dest state",           COMP_CONTENTS, obj [13],
		"src state",            COMP_CONTENTS, obj [19],
		"color",                COMP_CONTENTS, 0,
		"color",                COMP_INTENDED, EMAC_DISABLED,
		"path",                 COMP_ARRAY_CONTENTS (0), obj [44],
		"path",                 COMP_ARRAY_CONTENTS (1), obj [45],
		"label pos",            COMP_CONTENTS, obj [46],
		EMAC_EOL);


	/* assign attrs for object 'obj [47]' */
	Ema_Object_Attr_Set (model_id, obj [47], 
		"name",                 COMP_CONTENTS, "tr_24",
		"name",                 COMP_INTENDED, EMAC_DISABLED,
		"condition",            COMP_CONTENTS, "S_M_UPDATE",
		"executive",            COMP_CONTENTS, "",
		"executive",            COMP_INTENDED, EMAC_DISABLED,
		"dest state",           COMP_CONTENTS, obj [21],
		"src state",            COMP_CONTENTS, obj [13],
		"color",                COMP_CONTENTS, 0,
		"color",                COMP_INTENDED, EMAC_DISABLED,
		"path",                 COMP_ARRAY_CONTENTS (0), obj [48],
		"path",                 COMP_ARRAY_CONTENTS (1), obj [49],
		"label pos",            COMP_CONTENTS, obj [50],
		EMAC_EOL);


	/* assign attrs for object 'obj [51]' */
	Ema_Object_Attr_Set (model_id, obj [51], 
		"name",                 COMP_CONTENTS, "tr_27",
		"name",                 COMP_INTENDED, EMAC_DISABLED,
		"condition",            COMP_CONTENTS, "",
		"condition",            COMP_INTENDED, EMAC_DISABLED,
		"executive",            COMP_CONTENTS, "",
		"executive",            COMP_INTENDED, EMAC_DISABLED,
		"dest state",           COMP_CONTENTS, obj [13],

⌨️ 快捷键说明

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