0001
0002
0003
0004
0005 function stats = simulhope_stats(par,bs,mob,msg_mcn,msg_std)
0006
0007
0008 relative_delay_std = [msg_std.time_delivered] - [msg_std.init_time];
0009 relative_delay_mcn = [msg_mcn.time_delivered] - [msg_mcn.init_time];
0010
0011
0012 stats.pdf_delay_std = histc(relative_delay_std(find(isnan([msg_std.time_delivered])==0)),[0:par.tmax]);
0013 stats.pdf_delay_mcn = histc(relative_delay_mcn(find(isnan([msg_mcn.time_delivered])==0)),[0:par.tmax]);
0014
0015
0016 stats.cdf_delay_std = cumsum(stats.pdf_delay_std)./par.msg;
0017 stats.cdf_delay_mcn = cumsum(stats.pdf_delay_mcn)./par.msg;
0018
0019
0020 stats.std_delivered = size(find(isnan([msg_std.time_delivered])==0),2);
0021 stats.mcn_delivered = size(find(isnan([msg_mcn.time_delivered])==0),2);
0022
0023
0024 stats.std_dropped = size(find(isnan([msg_std.time_delivered])==1),2);
0025 stats.mcn_dropped = size(find(isnan([msg_mcn.time_delivered])==1),2);
0026
0027 stats.msg_delivered = [stats.std_delivered stats.std_dropped; stats.mcn_delivered stats.mcn_dropped];
0028 stats.msg_delivered_percentage = stats.msg_delivered./par.msg;
0029
0030
0031 hop_nb_tmp = [msg_mcn.nbr_hop];
0032 stats.max_nb_hop = max(hop_nb_tmp);
0033 hop_nb = hop_nb_tmp(find(~isnan([msg_mcn.time_delivered])));
0034 stats.hop_dist = histc(hop_nb,[0:stats.max_nb_hop]);
0035 stats.hop_dist_percentage = stats.hop_dist./stats.mcn_delivered;
0036
0037 stats.buffer_self = reshape([mob.buffer_self],par.tmax,par.mob);
0038 stats.buffer_mcn = reshape([mob.buffer_mcn],par.tmax,par.mob);
0039 stats.buffer_std = reshape([mob.buffer_std],par.tmax,par.mob);
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055
0056
0057
0058
0059
0060
0061
0062
0063
0064
0065
0066
0067
0068
0069
0070