graphics_gen.pl
上传用户:wzkunzhan
上传日期:2022-04-23
资源大小:2618k
文件大小:13k
源码类别:

模拟服务器

开发平台:

Visual C++

  1. # File: graphics_ge.pl
  2. #
  3. # Modified OpenPhone based Voice Evaluation Tool (MOBVET) Version 0.1
  4. # --------------------------------------------------------------------
  5. # Voice Over IP Laboratory (http://www.voip.nce.ufrj.br)
  6. # Federal University of Rio de Janeiro
  7. # Copyright (c) 2002-2004 UFRJ (Federal University of Rio de Janeiro).
  8. # The contents of this file are subject to the Mozilla Public License
  9. # Version 1.0 (the "License"); you may not use this file except in
  10. # compliance with the License. You may obtain a copy of the License at
  11. # http://www.mozilla.org/MPL/
  12. #! c:perlbinperl.exe -w
  13. use GD::Graph::lines;
  14. use Emodel;
  15. require 'save.pl';
  16. grafico ("sideA");
  17. grafico ("sideB");
  18. sub grafico 
  19. {
  20. $origem = shift;
  21. $logmos = $origem . ".mos";
  22. $logvql = $origem . ".vql";
  23. $logppl = $origem . ".ppl";
  24. #valores a serem completados
  25. $codec = "G711";
  26. $ta = 0;
  27. open( LOGMOS, "<$logmos");
  28. foreach $line (<LOGMOS>) {
  29. $mos_eoc = $line;
  30. }
  31. @net_delay = ();
  32. @lost = ();
  33. @too_late = ();
  34. @jitter = ();
  35. @ie_emodel = ();
  36. @id_emodel = ();
  37. @r_emodel = ();
  38. @mos_emodel = ();
  39. @ie_emodel_ext = ();
  40. @id_emodel_ext = ();
  41. @r_emodel_ext = ();
  42. @mos_emodel_ext = ();
  43. #@I1_ext = ();
  44. #@I2_ext = ();
  45. #@Ieav_ext = ();
  46. open( LOGVQL, "<$logvql");
  47. foreach $line (<LOGVQL>)
  48. {
  49. #($time, $ie_e, $id_e, $r_e, $mos_e, $ie_ee, $id_ee, $r_ee, $mos_ee, $I1_ee, $I2_ee, $Ieav_ee)  = split(" ", $line);
  50. ($time, $ie_e, $id_e, $r_e, $mos_e, $ie_ee, $id_ee, $r_ee, $mos_ee)  = split(" ", $line);
  51.         @row_ie_emodel = ($time, $ie_e);
  52.        
  53.         
  54. for(my $i=0; $i <= $#row_ie_emodel; $i++) { 
  55. push @{$ie_emodel[$i]}, $row_ie_emodel[$i];
  56. }
  57.         @row_id_emodel = ($time, $id_e);
  58.         
  59. for(my $i=0; $i <= $#row_id_emodel; $i++) { 
  60. push @{$id_emodel[$i]}, $row_id_emodel[$i];
  61. }
  62.         @row_r_emodel = ($time, $r_e);
  63.         
  64. for(my $i=0; $i <= $#row_r_emodel; $i++) { 
  65. push @{$r_emodel[$i]}, $row_r_emodel[$i];
  66. }
  67.         @row_mos_emodel = ($time, $mos_e);
  68.         
  69. for(my $i=0; $i <= $#row_mos_emodel; $i++) { 
  70. push @{$mos_emodel[$i]}, $row_mos_emodel[$i];
  71. }
  72.         @row_ie_emodel_ext = ($time, $ie_ee);
  73.         
  74. for(my $i=0; $i <= $#row_ie_emodel_ext; $i++) { 
  75. push @{$ie_emodel_ext[$i]}, $row_ie_emodel_ext[$i];
  76. }
  77.         @row_id_emodel_ext = ($time, $id_ee);
  78.         
  79. for(my $i=0; $i <= $#row_id_emodel_ext; $i++) { 
  80. push @{$id_emodel_ext[$i]}, $row_id_emodel_ext[$i];
  81. }
  82.         @row_r_emodel_ext = ($time, $r_ee);
  83.         
  84. for(my $i=0; $i <= $#row_r_emodel_ext; $i++) { 
  85. push @{$r_emodel_ext[$i]}, $row_r_emodel_ext[$i];
  86. }
  87.         @row_mos_emodel_ext = ($time, $mos_ee);
  88.         
  89.       
  90.         
  91. for(my $i=0; $i <= $#row_mos_emodel_ext; $i++) { 
  92. push @{$mos_emodel_ext[$i]}, $row_mos_emodel_ext[$i];
  93. }
  94. #@row_I1_ext = ($time, $I1_ee);
  95. #for(my $i=0; $i <= $#row_I1_ext; $i++) { 
  96. # push @{$I1_ext[$i]}, $row_I1_ext[$i];
  97. #}
  98. #@row_I2_ext = ($time, $I2_ee);
  99. #for(my $i=0; $i <= $#row_I2_ext; $i++) { 
  100. # push @{$I2_ext[$i]}, $row_I2_ext[$i];
  101. #}
  102. #@row_Ieav_ext = ($time, $Ieav_ee);
  103. #for(my $i=0; $i <= $#row_Ieav_ext; $i++) { 
  104. # push @{$Ieav_ext[$i]}, $row_Ieav_ext[$i];
  105. #}
  106. }
  107. close(LOGVQL);
  108. open( LOGPPL, "<$logppl");
  109. foreach $line (<LOGPPL>)
  110. {
  111. ($time, $rtt, $psent, $plost, $ptoo_late, $djitter) = split(" ",$line);
  112. #print "$time n";
  113. $ta = $rtt/2; #plota somente atraso na rede.
  114.         @row_net_delay = ($time, $ta);
  115.         
  116. for(my $i=0; $i <= $#row_net_delay; $i++) { 
  117. push @{$net_delay[$i]}, $row_net_delay[$i];
  118. }
  119.         @row_lost = ($time, $plost);
  120.         
  121. for(my $i=0; $i <= $#row_lost; $i++) { 
  122. push @{$lost[$i]}, $row_lost[$i];
  123. }
  124.         @row_too_late = ($time, $ptoo_late);
  125.         
  126. for(my $i=0; $i <= $#row_too_late; $i++) { 
  127. push @{$too_late[$i]}, $row_too_late[$i];
  128. }
  129.         @row_jitter = ($time, $djitter);
  130.         
  131. for(my $i=0; $i <= $#row_jitter; $i++) { 
  132. push @{$jitter[$i]}, $row_jitter[$i];
  133. }
  134. }
  135. close(LOGPPL);
  136. #Graficos
  137. $ie_e_graph = new GD::Graph::lines();
  138. $id_e_graph = new GD::Graph::lines();
  139. $r_e_graph = new GD::Graph::lines();
  140. $mos_e_graph = new GD::Graph::lines();
  141. $ie_ee_graph = new GD::Graph::lines();
  142. $id_ee_graph = new GD::Graph::lines();
  143. $r_ee_graph = new GD::Graph::lines();
  144. $mos_ee_graph = new GD::Graph::lines();
  145. $net_delay_graph = new GD::Graph::lines();
  146. $lost_graph = new GD::Graph::lines();
  147. $too_late_graph = new GD::Graph::lines();
  148. $jitter_graph = new GD::Graph::lines();
  149. #$I1_ee_graph = new GD::Graph::lines();
  150. #$I2_ee_graph = new GD::Graph::lines();
  151. #$Ieav_ee_graph = new GD::Graph::lines();
  152. $ie_e_graph->set(
  153.         dclrs => [ qw(red) ],
  154. x_label => 'Seconds in call',        
  155. y_label => 'Ie',
  156.         title => 'Ie - Equipment Impairment',
  157.         x_labels_vertical => 1,
  158.         y_max_value => 100,
  159.         y_min_value => 1,
  160. #       y_tick_number => 6,
  161. #       y_label_skip => 2,
  162. x_label_skip => 10,
  163.         markers => [1, 5],
  164.         transparent => 0,
  165. );
  166. $id_e_graph->set(
  167.         dclrs => [ qw(red) ],
  168. x_label => 'Seconds in call',        
  169. y_label => 'Milliseconds',
  170.         title => 'Id - Delay Impairment',
  171.         x_labels_vertical => 1,
  172.         y_max_value => 100,
  173.         y_min_value => 1,
  174. #       y_tick_number => 6,
  175. #       y_label_skip => 2,
  176. x_label_skip => 10,
  177.         markers => [1, 5],
  178.         transparent => 0,
  179. );
  180. $r_e_graph->set(
  181.         dclrs => [ qw(red) ],
  182. x_label => 'Seconds in call',        
  183. y_label => 'R-factor',
  184.         title => 'R-factor - Emodel ITU-T G.107',
  185.         x_labels_vertical => 1,
  186.         y_max_value => 100,
  187.         y_min_value => 1,
  188. #       y_tick_number => 6,
  189. #       y_label_skip => 2,
  190. x_label_skip => 10,
  191.         markers => [1, 5],
  192.         transparent => 0,
  193. );
  194. $mos_e_graph->set(
  195.         dclrs => [ qw(red) ],
  196. x_label => 'Seconds in call',        
  197. y_label => 'MOS',
  198.         title => 'Mean Opnion Score',
  199.         x_labels_vertical => 1,
  200.         y_max_value => 5,
  201.         y_min_value => 1,
  202. #       y_tick_number => 6,
  203. #       y_label_skip => 2,
  204. x_label_skip => 10,
  205.         markers => [1, 5],
  206.         transparent => 0,
  207. );
  208. $ie_ee_graph->set(
  209.         dclrs => [ qw(red) ],
  210. x_label => 'Seconds in call',        
  211. y_label => 'Ie',
  212.         title => 'Ie - Equipment Impairment',
  213.         x_labels_vertical => 1,
  214.         y_max_value => 100,
  215.         y_min_value => 1,
  216. #       y_tick_number => 6,
  217. #       y_label_skip => 2,
  218. x_label_skip => 10,
  219.         markers => [1, 5],
  220.         transparent => 0,
  221. );
  222. $id_ee_graph->set(
  223.         dclrs => [ qw(red) ],
  224. x_label => 'Seconds in call',        
  225. y_label => 'Milliseconds',
  226.         title => 'Id - Delay Impairment',
  227.         x_labels_vertical => 1,
  228.         y_max_value => 100,
  229.         y_min_value => 1,
  230. #       y_tick_number => 6,
  231. #       y_label_skip => 2,
  232. x_label_skip => 10,
  233.         markers => [1, 5],
  234.         transparent => 0,
  235. );
  236. $r_ee_graph->set(
  237.         dclrs => [ qw(red) ],
  238. x_label => 'Seconds in call',        
  239. y_label => 'R-factor',
  240.         title => 'R-factor',
  241.         x_labels_vertical => 1,
  242.         y_max_value => 100,
  243.         y_min_value => 1,
  244. #       y_tick_number => 6,
  245. #       y_label_skip => 2,
  246. x_label_skip => 10,
  247.         markers => [1, 5],
  248.         transparent => 0,
  249. );
  250. $mos_ee_graph->set(
  251.         dclrs => [ qw(red) ],
  252. x_label => 'Seconds in call',        
  253. y_label => 'MOS',
  254.         title => 'Mean Opnion Score',
  255.         x_labels_vertical => 1,
  256.         y_max_value => 5,
  257.         y_min_value => 1,
  258. #       y_tick_number => 6,
  259. #       y_label_skip => 2,
  260. x_label_skip => 10,
  261.         markers => [1, 5],
  262.         transparent => 0,
  263. );
  264. $net_delay_graph->set(
  265.         dclrs => [ qw(red) ],
  266. x_label => 'Seconds in call',        
  267. y_label => 'Milliseconds',
  268.         title => 'Network Delay',
  269.         x_labels_vertical => 1,
  270. #       y_max_value => 5,
  271. #       y_min_value => 1,
  272. #       y_tick_number => 6,
  273. #       y_label_skip => 2,
  274. x_label_skip => 10,
  275.         markers => [1, 5],
  276.         transparent => 0,
  277. );
  278. $lost_graph->set(
  279.         dclrs => [ qw(red) ],
  280. x_label => 'Seconds in call',        
  281. y_label => 'Packets',
  282.         title => 'Packets Lost',
  283.         x_labels_vertical => 1,
  284. #       y_max_value => 5,
  285. #       y_min_value => 1,
  286. #       y_tick_number => 6,
  287. #       y_label_skip => 2,
  288. x_label_skip => 10,
  289.         markers => [1, 5],
  290.         transparent => 0,
  291. );
  292. $too_late_graph->set(
  293.         dclrs => [ qw(red) ],
  294. x_label => 'Seconds in call',        
  295. y_label => 'Packets',
  296.         title => 'Packets Discarded (Jitter Buffer)',
  297.         x_labels_vertical => 1,
  298. #       y_max_value => 5,
  299. #       y_min_value => 1,
  300. #       y_tick_number => 6,
  301. #       y_label_skip => 2,
  302. x_label_skip => 10,
  303.         markers => [1, 5],
  304.         transparent => 0,
  305. );
  306. $jitter_graph->set(
  307.         dclrs => [ qw(red) ],
  308. x_label => 'Seconds in call',        
  309. y_label => 'Milliseconds',
  310.         title => 'Jitter',
  311.         x_labels_vertical => 1,
  312. #       y_max_value => 5,
  313. #       y_min_value => 1,
  314. #       y_tick_number => 6,
  315. #       y_label_skip => 2,
  316. x_label_skip => 10,
  317.         markers => [1, 5],
  318.         transparent => 0,
  319. );
  320. #$I1_ee_graph->set(
  321. #        dclrs => [ qw(red) ],
  322. # x_label => 'Seconds in call',        
  323. # y_label => 'Ie',
  324. #        title => 'I1',
  325. #        x_labels_vertical => 1,
  326. ##       y_max_value => 100,
  327. #        y_min_value => 0,
  328. ##       y_tick_number => 6,
  329. ##       y_label_skip => 2,
  330. ## x_label_skip => 5,
  331. #        markers => [1, 5],
  332. #        transparent => 0,
  333. #);
  334. #$I2_ee_graph->set(
  335. #        dclrs => [ qw(red) ],
  336. # x_label => 'Seconds in call',        
  337. # y_label => 'Ie',
  338. #        title => 'I2',
  339. #        x_labels_vertical => 1,
  340. ##       y_max_value => 100,
  341. #        y_min_value => 0,
  342. ##       y_tick_number => 6,
  343. ##       y_label_skip => 2,
  344. ## x_label_skip => 5,
  345. #        markers => [1, 5],
  346. #        transparent => 0,
  347. #);
  348. #$Ieav_ee_graph->set(
  349. #        dclrs => [ qw(red) ],
  350. # x_label => 'Seconds in call',        
  351. # y_label => 'Ie',
  352. #        title => 'Ieav',
  353. #        x_labels_vertical => 1,
  354. ##       y_max_value => 100,
  355. #        y_min_value => 0,
  356. ##       y_tick_number => 6,
  357. ##       y_label_skip => 2,
  358. ## x_label_skip => 5,
  359. #        markers => [1, 5],
  360. #        transparent => 0,
  361. #);
  362. $ie_e_graph->set_legend( 'Ie' );
  363. $ie_e_graph->plot(@ie_emodel);
  364. $name1 = $origem . "IE-Emodel" ;
  365. $name1save = $name1;
  366. save_chart($ie_e_graph, $name1save);
  367. $id_e_graph->set_legend( 'Id' );
  368. $id_e_graph->plot(@id_emodel);
  369. $name2 =  $origem . "ID-Emodel";
  370. $name2save =  $name2;
  371. save_chart($id_e_graph, $name2save);
  372. $r_e_graph->set_legend( 'R-Factor' );
  373. $r_e_graph->plot(@r_emodel);
  374. $name3 =  $origem . "R-Emodel";
  375. $name3save =  $name3;
  376. save_chart($r_e_graph, $name3save);
  377. $mos_e_graph->set_legend( 'MOS' );
  378. $mos_e_graph->plot(@mos_emodel);
  379. $name4 =  $origem . "MOS-E-model";
  380. $name4save = $name4;
  381. save_chart($mos_e_graph, $name4save);
  382. $ie_ee_graph->set_legend( 'Ie' );
  383. $ie_ee_graph->plot(@ie_emodel_ext);
  384. $name5 =  $origem . "IE-Emodel-ext";
  385. $name5save = $name5;
  386. save_chart($ie_ee_graph, $name5save);
  387. $id_ee_graph->set_legend( 'Id' );
  388. $id_ee_graph->plot(@id_emodel_ext);
  389. $name6 =  $origem . "ID-Emodel-ext";
  390. $name6save = $name6;
  391. save_chart($id_ee_graph, $name6save);
  392. $r_ee_graph->set_legend( 'R-Factor' );
  393. $r_ee_graph->plot(@r_emodel_ext);
  394. $name7 =  $origem . "R-Emodel-ext";
  395. $name7save =  $name7;
  396. save_chart($r_ee_graph, $name7save);
  397. $mos_ee_graph->set_legend( 'MOS' );
  398. $mos_ee_graph->plot(@mos_emodel_ext);
  399. $name8 =  $origem .  "MOS-Emodel-ext";
  400. $name8save =  $name8;
  401. save_chart($mos_ee_graph, $name8save);
  402. $net_delay_graph->set_legend( 'Network Delay' );
  403. $net_delay_graph->plot(@net_delay);
  404. $name9 =  $origem . "Net-Delay";
  405. $name9save =  $name9;
  406. save_chart($net_delay_graph, $name9save);
  407. $lost_graph->set_legend( 'Packets Lost' );
  408. $lost_graph->plot(@lost);
  409. $name10 =   $origem . "Net-loss" ;
  410. $name10save = $name10;
  411. save_chart($lost_graph, $name10save);
  412. $too_late_graph->set_legend( 'Packets Discarded' );
  413. $too_late_graph->plot(@too_late);
  414. $name11 =  $origem .  "Buffer-loss";
  415. $name11save =  $name11;
  416. save_chart($too_late_graph, $name11save);
  417. $jitter_graph->set_legend( 'Jitter' );
  418. $jitter_graph->plot(@jitter);
  419. $name12 =  $origem .  "Jitter";
  420. $name12save =  $name12;
  421. save_chart($jitter_graph, $name12save);
  422. #$I1_ee_graph->set_legend( 'I1' );
  423. #$I1_ee_graph->plot(@I1_ext);
  424. #$name13 =  $origem .  "I1";
  425. #$name13save =  $name13;
  426. #save_chart($I1_ee_graph, $name13save);
  427. #$I2_ee_graph->set_legend( 'I2' );
  428. #$I2_ee_graph->plot(@I2_ext);
  429. #$name14 =  $origem .  "I2";
  430. #$name14save =  $name14;
  431. #save_chart($I2_ee_graph, $name14save);
  432. #$Ieav_ee_graph->set_legend( 'Ieav' );
  433. #$Ieav_ee_graph->plot(@Ieav_ext);
  434. #$name15 =  $origem .  "Ieav";
  435. #$name15save =  $name15;
  436. #save_chart($Ieav_ee_graph, $name15save);
  437. }