function demoRouteEStar
%
% demoRouteEStar
%
% This demo loads the satellite system GlobalStar
% with 6 ES and 2 MS and simulates this system over
% 10 min. In the demo the routing paths between Phoenix
% and Rome and between Rome and Phoenix are shown.
% The used routing algorithm is the Dijkstra algorithm
% and routing is only possible between MS and LEO
% satellites for the uplink, between satellites and MS
% for the downlink, between satellites and ES for
% up/down link and between ES for cross links
%
% Author : Horst Salzwedel
loadreplaceAll("./EStar.data");
%addStation("Buenos Aires",I_earth,0.00-34.57,-58.05,0.01);
setSimEpoch(2000,3,26,8,0,0);
ES1 = "Honolulu";
ES2 = "Seattle";
ES3 = "Dallas";
ES4 = "New York";
ES5 = "Reykjavik";
ES6 = "Berlin";
MS1 = "Phoenix";
MS2 = "Rom";
t = 0:10:200;
% initialize values for Iridium
earth1 = NodeNumber(MS1) + 1;
earth2 = NodeNumber(MS2) + 1;
% other values
n = NumberOfNodes(4);
nES = NumberOfNodes(1);
nMS = NumberOfNodes(2);
nS = nES + nMS;
% open display
id = 1;
iLEO = nS + 1;
z = zeros(n-iLEO+1);
% time steps
for i1 = 1:max(size(t))
tnow=t(i1);
clearGraphic(id);
setSimTime(tnow);
g_all=GeoPosition(4)*r2d;
[d,r,a,el,v] = RelPosition ();
% visibility between ES
v(1:6,1:6) = [1 1 0 0 0 0
1 1 1 0 0 0
0 1 1 1 0 0
0 0 1 1 1 0
0 0 0 1 1 1
0 0 0 0 1 1];
v(iLEO:n,iLEO:n) = z;
% cost = 10E10*ones(104);
cost = zeros(104);
cost(1:56,1:56) = d.*v;
cost(1:6,57:104) = cost(1:6,9:56);
cost(57:104,7:8) = cost(9:56,7:8);
% routing
routes1 = RoutingDijkstra(cost,earth1,earth2);
nr = max(size(routes1));
for j=1:nr
if (routes1(j) > 56)
routes1(j) = routes1(j) - 48;
endif
endfor
setLineColor(id,"white");
lon1 = g_all(2,routes1);
lat1=g_all(1,routes1);
drawPline(id,lon1,lat1);
% end of routing calculation
endfor
fprintf(stdout, "press space ...\n"), pause();
demos
%endfunction