📄 obs_sink.em.c
字号:
"op_pk_destroy (pktr);",
"",
"",
"",
"/*",
"if(jj==0)",
"{ ",
"printf(\"strm index in num = %d\\n\",op_strm_max_index_in());",
"printf(\"strm index out num = %d\\n\",op_strm_max_index_out());",
"jj=1;",
"}",
"*/",
PRGC_NIL);
Ema_Object_Attr_Set (model_id, obj [17],
"name", COMP_CONTENTS, "arrival",
"Enter Execs", COMP_CONTENTS, prg_lptr [16],
"status", COMP_TOGGLE, EMAC_ENABLED,
"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],
"printf(\"total_successed_burst_length_related_hop = %f, count=%d\\n\",total_successed_burst_length_related_hop,total_successed_burst_count);",
"",
"self_objid = op_id_self ();",
"node_objid = op_topo_parent (self_objid);",
"subnet_objid = op_topo_parent (node_objid);",
"op_ima_obj_attr_get(node_objid, \"user id\", &userid);",
"",
"if(userid == 14)",
"{",
"",
" op_ima_obj_attr_get(self_objid, \"file name\", &file_name);",
" op_ima_obj_attr_get(self_objid, \"sim_time\", &sim_time);",
"",
" loss = 0.0;",
" fis_loss = 0;",
"",
" total_average_hop = 0.0;",
" b_total_average_hop = 0.0;",
" ",
" total_average_delay = 0.0;",
" b_total_average_delay = 0.0;",
" ",
" total_gen_bcp = 0;",
" total_all_succ = 0;",
" utilization = 0.0;",
" backup_count = 0;",
"",
" s_bcp = 0;",
" f_bcp = 0;",
" /////////////////////////////// loss rate hop delay ////////////////////////////",
" ",
" for(i=1;i<NODE_NUM;i++)",
" {",
" for(j=1;j<NODE_NUM;j++)",
" {",
" if(i != j)",
" {",
" ",
" ",
" fail[i][j] = fail[i][j] + fis_fail[i][j];",
" ",
" s_bcp = s_bcp + succ[i][j];",
" f_bcp = f_bcp + fail[i][j];",
" ",
" if(fail[i][j] == 0) loss_rate[i][j] = 0;",
" else loss_rate[i][j] = (double)fail[i][j] / ((double)succ[i][j]+(double)fail[i][j]);",
" loss = loss + loss_rate[i][j];",
"",
" fis_loss = fis_loss + fis_fail[i][j];",
" ",
" if(sum_hop[i][j] == 0) average_hop[i][j] = 0;",
" else average_hop[i][j] = (double)sum_hop[i][j] / (double)succ[i][j];",
" ",
" if(b_sum_hop[i][j] == 0) b_average_hop[i][j] = 0;",
" else ",
" { ",
" b_average_hop[i][j] = (double)b_sum_hop[i][j] / (double)b_succ[i][j];",
" backup_count++;",
" } ",
" ",
" total_average_hop = (double)(total_average_hop + average_hop[i][j]);",
" b_total_average_hop = (double)(b_total_average_hop+b_average_hop[i][j]);",
" ",
" if(sum_delay == 0) average_delay[i][j] = 0;",
" else average_delay[i][j] = (double)sum_delay[i][j] / (double)succ[i][j];",
"",
" if(b_sum_delay[i][j] == 0) b_average_delay[i][j] = 0;",
" else b_average_delay[i][j] = (double)b_sum_delay[i][j] / (double)b_succ[i][j];",
" ",
" total_average_delay = total_average_delay + average_delay[i][j];",
" b_total_average_delay = b_total_average_delay + b_average_delay[i][j];",
" utilization = utilization + burst_time[i][j];",
" ",
" ",
"/* printf(\"fail = %d\\n\", fail[i][j]);",
" printf(\"succ = %d\\n\", succ[i][j]);",
" printf(\"loss_rate = %f\\n\", loss_rate[i][j]);",
" printf(\"loss = %f\\n\", loss);",
" printf(\"sum_hop = %d\\n\", sum_hop[i][j]);",
" printf(\"b_sum_hop = %d\\n\", b_sum_hop[i][j]);",
" printf(\"average_hop = %f\\n\", average_hop[i][j]);",
" printf(\"b_average_hop = %f\\n\", b_average_hop[i][j]);",
" printf(\"sum_delay = %f\\n\", sum_delay[i][j]);",
" printf(\"b_sum_delay =%f\\n\", b_sum_delay[i][j]);",
" printf(\"average_delay = %f\\n\", average_delay[i][j]);",
" printf(\"b_average_delay = %f\\n\", b_average_delay[i][j]);",
" if(burst_time[i][j] !=0) printf(\"burst_time = %f\\n\", burst_time[i][j]);",
"*/",
" }",
" }",
" total_gen_bcp = total_gen_bcp + gen_bcp[i];",
" total_all_succ = total_all_succ + all_succ[i];",
"// printf(\"gen = %d succ = %d\\n\", gen_bcp[i], all_succ[i]);",
"// printf(\"succ = %d fail = %d\\n\", s_bcp, f_bcp);",
"// getchar();",
"",
" }",
"",
" loss = (double) loss / 16;",
" total_average_hop = (double) total_average_hop /16;",
PRGC_NIL);
prg_list_strings_append (prg_lptr [18],
" b_total_average_hop = (double) b_total_average_hop / backup_count;",
" total_average_delay = (double) total_average_delay / 16;",
" b_total_average_delay = (double) b_total_average_delay / backup_count;",
" ",
" utilization = (double) utilization / (4*WAVE_NUM*sim_time);",
" throughput = (double) total_all_succ / total_gen_bcp;",
" ",
" back_average_delay = (double) back_sum_delay/back_succ;",
" back_average_hop = (double) back_sum_hop/back_succ;",
" back_throughput = (double) back_succ/gen_backup_bcp;",
" back_loss = (double) (back_fail+back_fis_fail)/(gen_backup_bcp+back_fis_fail);",
" back_utilization = (double) back_burst_time/(back_average_hop*WAVE_NUM*1);",
" ",
" /*",
" printf(\"back_average_delay = %f\\n\", back_average_delay);",
" printf(\"back_average_hop = %f\\n\", back_average_hop);",
" printf(\"back_succ = %d\\n\", back_succ);",
" printf(\"back_fail = %d\\n\", back_fail);",
" printf(\"back_fis_fail = %d\\n\", back_fis_fail);",
" printf(\"gen_backup_bcp = %d\\n\", gen_backup_bcp);",
" printf(\"back_throughput = %f\\n\", back_throughput);",
" printf(\"back_loss = %f\\n\", back_loss);",
" printf(\"back_burst_time = %f\\n\", back_burst_time);",
" printf(\"back_utilization = %f\\n\", back_utilization);",
" ",
" //getchar();",
" ",
" ",
" printf(\"LOSS = %f\\n\", loss);",
" printf(\"FIS_LOSS = %d\\n\", fis_loss);",
" printf(\"TOTAL_AVERAGE_HOP = %f\\n\", total_average_hop);",
" printf(\"B_TOTAL_AVERAGE_HOP = %f\\n\", b_total_average_hop);",
" printf(\"TOTAL_AVERAGE_DELAY = %f\\n\", total_average_delay);",
" printf(\"B_TOTAL_AVERAGE_DELAY = %f\\n\", b_total_average_delay);",
" printf(\"utilization = %f\\n\", utilization);",
" printf(\"throughput = %f\\n\", throughput);",
" */",
" //***************************************************************************",
" strcpy(f_name,\"d:/data/bak-\");",
" strcat(f_name, file_name);",
" ",
" if((fp = fopen(f_name, \"w\")) == NULL)",
" {",
" printf(\"cannot open file \\n\");",
" exit(1);",
" }",
" fprintf(fp, \"%s\\t\", f_name);",
" fprintf(fp, \"b_average_hop:\\t %f\\t\", back_average_hop);",
" fprintf(fp, \"b_average delay:\\t%f\\t\", back_average_delay);",
" fprintf(fp, \"b_loss:\\t%f\\t\", back_loss);",
" fprintf(fp, \"b_throughput:\\t%f\\t\", back_throughput);",
" fprintf(fp, \"all_utilization:\\t%f\\t\", utilization);",
" fprintf(fp, \"b_utilization:\\t%f\\t\", back_utilization);",
" fprintf(fp, \"back_succ:\\t%d\\t\", back_succ);",
" fprintf(fp, \"back_fail:\\t%d\\t\", back_fail);",
" fprintf(fp, \"back_fis_fail:\\t%d\\t\", back_fis_fail);",
" fprintf(fp, \"gen_backup_bcp:\\t%d\\n\", gen_backup_bcp);",
"",
" ",
" fclose(fp);",
" ",
" ",
" //***************************************************************************",
" strcpy(f_name,\"d:/data/all-\");",
" strcat(f_name, file_name);",
" ",
" if((fp = fopen(f_name, \"w\")) == NULL)",
" {",
" printf(\"cannot open file \\n\");",
" exit(1);",
" }",
" fprintf(fp, \"%s\\t\", f_name);",
" fprintf(fp, \"fail:\\t%d\\t\", f_bcp);",
" fprintf(fp, \"succ:\\t%d\\t\", s_bcp);",
" fprintf(fp, \"fis loss rate:\\t%d\\t\", fis_loss);",
" fprintf(fp, \"average_hop:\\t%f\\t\", total_average_hop);",
" fprintf(fp, \"b_average_hop:\\t %f\\t\", b_total_average_hop);",
" fprintf(fp, \"average delay:\\t %f\\t\", total_average_delay);",
" fprintf(fp, \"b_average delay:\\t%f\\t\", b_total_average_delay);",
" fprintf(fp, \"utilization:\\t%f\\t\", utilization);",
" fprintf(fp, \"loss rate:\\t%f\\t\", loss);",
" fprintf(fp, \"throughput:\\t%f\\n\", throughput);",
" ",
" for(i=1;i<NODE_NUM;i++)",
" {",
" for(j=1;j<NODE_NUM;j++)",
" {",
" if(i != j)",
" {",
"",
" if((fail[i][j] > 0) || (succ[i][j] > 0)) ",
" {",
" fprintf(fp,\"fail[%d][%d] = %d\\n\", i, j, fail[i][j]);",
" fprintf(fp,\"succ[%d][%d] = %d\\n\", i, j, succ[i][j]);",
" fprintf(fp,\"loss_rate[%d][%d] = %f\\n\", i,j,loss_rate[i][j]);",
" }",
" }",
" }",
" } ",
" ",
PRGC_NIL);
prg_list_strings_append (prg_lptr [18],
" fclose(fp);",
" ",
" }",
"",
PRGC_NIL);
/* create and init prg list 'prg_lptr [19]' */
prg_lptr [19] = (Prg_List *)prg_list_create ();
Ema_Object_Attr_Set (model_id, obj [19],
"name", COMP_CONTENTS, "end",
"Enter Execs", COMP_CONTENTS, prg_lptr [18],
"Exit Execs", COMP_CONTENTS, prg_lptr [19],
"status", COMP_TOGGLE, EMAC_DISABLED,
"position", COMP_CONTENTS, obj [20],
"initial", COMP_TOGGLE, EMAC_DISABLED,
EMAC_EOL);
/* assign attrs for object 'obj [21]' */
Ema_Object_Attr_Set (model_id, obj [21],
"name", COMP_CONTENTS, "tr_77",
"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 [15],
"src state", COMP_CONTENTS, obj [17],
"color", COMP_CONTENTS, 0,
"color", COMP_INTENDED, EMAC_DISABLED,
"path", COMP_ARRAY_CONTENTS (0), obj [22],
"path", COMP_ARRAY_CONTENTS (1), obj [23],
"label pos", COMP_CONTENTS, obj [24],
EMAC_EOL);
/* assign attrs for object 'obj [25]' */
Ema_Object_Attr_Set (model_id, obj [25],
"name", COMP_CONTENTS, "tr_83",
"name", COMP_INTENDED, EMAC_DISABLED,
"condition", COMP_CONTENTS, "ARRIVAL",
"executive", COMP_CONTENTS, "",
"executive", COMP_INTENDED, EMAC_DISABLED,
"dest state", COMP_CONTENTS, obj [17],
"src state", COMP_CONTENTS, obj [15],
"color", COMP_CONTENTS, 0,
"color", COMP_INTENDED, EMAC_DISABLED,
"path", COMP_ARRAY_CONTENTS (0), obj [26],
"path", COMP_ARRAY_CONTENTS (1), obj [27],
"label pos", COMP_CONTENTS, obj [28],
EMAC_EOL);
/* assign attrs for object 'obj [29]' */
Ema_Object_Attr_Set (model_id, obj [29],
"name", COMP_CONTENTS, "tr_85",
"name", COMP_INTENDED, EMAC_DISABLED,
"condition", COMP_CONTENTS, "END_SIM",
"executive", COMP_CONTENTS, "",
"executive", COMP_INTENDED, EMAC_DISABLED,
"dest state", COMP_CONTENTS, obj [19],
"src state", COMP_CONTENTS, obj [17],
"color", COMP_CONTENTS, 0,
"color", COMP_INTENDED, EMAC_DISABLED,
"path", COMP_ARRAY_CONTENTS (0), obj [30],
"path", COMP_ARRAY_CONTENTS (1), obj [31],
"label pos", COMP_CONTENTS, obj [32],
EMAC_EOL);
/* assign attrs for object 'obj [33]' */
Ema_Object_Attr_Set (model_id, obj [33],
"name", COMP_CONTENTS, "tr_87",
"name", COMP_INTENDED, EMAC_DISABLED,
"condition", COMP_CONTENTS, "END_SIM",
"executive", COMP_CONTENTS, "",
"executive", COMP_INTENDED, EMAC_DISABLED,
"dest state", COMP_CONTENTS, obj [19],
"src state", COMP_CONTENTS, obj [15],
"color", COMP_CONTENTS, 0,
"color", COMP_INTENDED, EMAC_DISABLED,
"path", COMP_ARRAY_CONTENTS (0), obj [34],
"path", COMP_ARRAY_CONTENTS (1), obj [35],
"label pos", COMP_CONTENTS, obj [36],
EMAC_EOL);
/* assign attrs for object 'obj [37]' */
Ema_Object_Attr_Set (model_id, obj [37],
"name", COMP_CONTENTS, "tr_89",
"name", COMP_INTENDED, EMAC_DISABLED,
"condition", COMP_CONTENTS, "BEG_SIM",
"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 [38],
"path", COMP_ARRAY_CONTENTS (1), obj [39],
"label pos", COMP_CONTENTS, obj [40],
EMAC_EOL);
/* assign attrs for object 'obj [41]' */
Ema_Object_Attr_Set (model_id, obj [41],
"name", COMP_CONTENTS, "tr_91",
"name", COMP_INTENDED, EMAC_DISABLED,
"condition", COMP_CONTENTS, "default",
"executive", COMP_CONTENTS, "",
"executive", COMP_INTENDED, EMAC_DISABLED,
"dest state", COMP_CONTENTS, obj [15],
"src state", COMP_CONTENTS, obj [15],
"color", COMP_CONTENTS, 0,
"color", COMP_INTENDED, EMAC_DISABLED,
"path", COMP_ARRAY_CONTENTS (0), obj [42],
"path", COMP_ARRAY_CONTENTS (1), obj [43],
"path", COMP_ARRAY_CONTENTS (2), obj [44],
"path", COMP_ARRAY_CONTENTS (3), obj [45],
"label pos", COMP_CONTENTS, obj [46],
EMAC_EOL);
/* assign attrs for object 'obj [14]' */
Ema_Object_Attr_Set (model_id, obj [14],
"x", COMP_CONTENTS, (double) 90,
"y", COMP_CONTENTS, (double) 90,
EMAC_EOL);
/* assign attrs for object 'obj [16]' */
Ema_Object_Attr_Set (model_id, obj [16],
"x", COMP_CONTENTS, (double) 330,
"y", COMP_CONTENTS, (double) 90,
EMAC_EOL);
/* assign attrs for object 'obj [18]' */
Ema_Object_Attr_Set (model_id, obj [18],
"x", COMP_CONTENTS, (double) 330,
"y", COMP_CONTENTS, (double) 270,
EMAC_EOL);
/* assign attrs for object 'obj [20]' */
Ema_Object_Attr_Set (model_id, obj [20],
"x", COMP_CONTENTS, (double) 90,
"y", COMP_CONTENTS, (double) 270,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -