📄 testbed.m
字号:
function [connection, dist] = testbed(fn, n_packets, testbed_prefix)%based on the measurement result, plot the toplogy,% and calculate the shortest distances, diameter, etcLINK_QUALITY_THRESHOLD = 80; %from LinkEstimator.hthres = 255/LINK_QUALITY_THRESHOLD;USE_REALTIME_DATA = 1;MAX_NODE_ID = 42;if nargin<2 n_packets = 100;endlink = load([testbed_prefix '.link']);delivery = zeros(MAX_NODE_ID, MAX_NODE_ID)+1e-5;for i=1:length(link) src = link(i,1); dest = link(i,2); %delivery(src,dest) = delivery(src,dest) + link(i,4)/2; %delivery(dest, src) = delivery(dest, src) + link(i,3)/2; if dest<50 %filter out some wierd node number delivery(dest, src) = link(i,3)+1e-5; if delivery(src,dest)<1 delivery(src,dest) = link(i,4); end endendif USE_REALTIME_DATA delivery = delivery; n_packets = 255; idx= 1:MAX_NODE_ID; rev_idx = 1:MAX_NODE_ID;else loss = load(fn); idx = loss(1,:); for i=1:length(idx) rev_idx(idx(i)) = i; end [m n] = size(loss); delivery = loss(2:m,:);end%etx = n_packets./delivery * n_packets./delivery';etx = n_packets./delivery';tmp = find(etx==Inf);connection = (n_packets./delivery<=thres).*(n_packets./delivery'<=thres)dist = allpair_dijkstra(connection);etx_dist = allpair_dijkstra(etx);%coord = mds(dist,2);coord = load('~/GeoRouting/cr/eval/coords_new');visualize(connection, coord(idx,:), 1:6)%%%%%%%%%%%s4 = load([testbed_prefix '.routing']); instances = length(s4);for i=1:instances src = rev_idx(s4(i,1)); dest = rev_idx(s4(i,2)); stretch(i) = s4(i,3)/dist(src, dest); transmission_stretch(i) = (s4(i,3)+s4(i,4))/etx_dist(src, dest);endfigure(2)plot_cumu_matrix(stretch)figure(3)plot_cumu_matrix(transmission_stretch)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -