forked from ExternalVendorCode/Signal-Server
v2.23
Bug fixes, multi-core support, Improved diffraction model
This commit is contained in:
17
CHANGELOG
17
CHANGELOG
@@ -1,4 +1,19 @@
|
||||
Signal Server 1.3.8 changelog
|
||||
Signal Server changelog
|
||||
|
||||
v2.23 - 14 August 2014
|
||||
Improved diffraction model to work only for dips deeper than 20m and not to exaggerate result by an arbitrary figure (3)
|
||||
Fixed false 'frequency too low' error message for FSPL model which was intended for Hata models only.
|
||||
|
||||
v2.22 -
|
||||
Fixed LOS not outputting bounds
|
||||
|
||||
v2.2 -
|
||||
Made .dot output opt in to save some disk space
|
||||
Changed version number to line 1 of main.cpp instead of buried in code in two places.
|
||||
|
||||
v2.1 -
|
||||
Added experimental dual core support with -haf
|
||||
Requires double the RAM
|
||||
|
||||
v1.3.8 - 16 Jan 2014
|
||||
Added Free Space Path Loss model (with optional diffraction)
|
||||
|
9
hata.cpp
9
hata.cpp
@@ -37,17 +37,18 @@ compromise for increased speed which adds a realistic diffraction effect.
|
||||
double ked(double freq, double elev[], double rxh, double dkm){
|
||||
double obh,obd,rxobaoi=0,d;
|
||||
|
||||
obh=0;
|
||||
obd=0;
|
||||
obh=0; // Obstacle height
|
||||
obd=0; // Obstacle distance
|
||||
|
||||
dkm=dkm*1000; // KM to metres
|
||||
|
||||
// walk along path
|
||||
for(int n=2;n<(dkm/elev[1]);n++){
|
||||
|
||||
d = (n-2)*elev[1]; // no of points * delta = km
|
||||
|
||||
//Find dip(s)
|
||||
if(elev[n] > 0 && elev[n]<(obh+10)){
|
||||
if(elev[n]<(obh+20)){
|
||||
|
||||
// Angle from Rx point to obstacle
|
||||
rxobaoi = incidenceAngle((obh-(elev[n]+rxh)),d-obd);
|
||||
@@ -65,7 +66,7 @@ dkm=dkm*1000; // KM to metres
|
||||
}
|
||||
|
||||
if(rxobaoi >= 0){
|
||||
return (rxobaoi * 3) / (300/freq); // Exaggerate diffraction angle and divide by wavelength (m)
|
||||
return rxobaoi / (300/freq); // Diffraction angle divided by wavelength (m)
|
||||
}else{
|
||||
return 0;
|
||||
}
|
||||
|
18
itm.cpp
18
itm.cpp
@@ -1204,7 +1204,7 @@ void point_to_point(double elev[], double tht_m, double rht_m, double eps_dielec
|
||||
double zc, zr;
|
||||
double eno, enso, q;
|
||||
long ja, jb, i, np;
|
||||
double dkm, xkm;
|
||||
//double dkm, xkm;
|
||||
double fs;
|
||||
|
||||
prop.hg[0]=tht_m;
|
||||
@@ -1216,8 +1216,8 @@ void point_to_point(double elev[], double tht_m, double rht_m, double eps_dielec
|
||||
zc=qerfi(conf);
|
||||
zr=qerfi(rel);
|
||||
np=(long)elev[0]; //number of points
|
||||
dkm=(elev[1]*elev[0])/1000.0; // total distance in km. elev[1]=90(m) (default)
|
||||
xkm=elev[1]/1000.0; // distance between points in km
|
||||
//dkm=(elev[1]*elev[0])/1000.0; // total distance in km. elev[1]=90(m) (default)
|
||||
//xkm=elev[1]/1000.0; // distance between points in km
|
||||
eno=eno_ns_surfref;
|
||||
enso=0.0;
|
||||
q=enso;
|
||||
@@ -1295,7 +1295,7 @@ void point_to_pointMDH (double elev[], double tht_m, double rht_m, double eps_di
|
||||
double ztime, zloc, zconf;
|
||||
double eno, enso, q;
|
||||
long ja, jb, i, np;
|
||||
double dkm, xkm;
|
||||
//double dkm, xkm;
|
||||
double fs;
|
||||
|
||||
propmode=-1; // mode is undefined
|
||||
@@ -1310,8 +1310,8 @@ void point_to_pointMDH (double elev[], double tht_m, double rht_m, double eps_di
|
||||
zconf=qerfi(confpct);
|
||||
|
||||
np=(long)elev[0];
|
||||
dkm=(elev[1]*elev[0])/1000.0;
|
||||
xkm=elev[1]/1000.0;
|
||||
//dkm=(elev[1]*elev[0])/1000.0;
|
||||
//xkm=elev[1]/1000.0;
|
||||
eno=eno_ns_surfref;
|
||||
enso=0.0;
|
||||
q=enso;
|
||||
@@ -1382,7 +1382,7 @@ void point_to_pointDH (double elev[], double tht_m, double rht_m, double eps_die
|
||||
double zc, zr;
|
||||
double eno, enso, q;
|
||||
long ja, jb, i, np;
|
||||
double dkm, xkm;
|
||||
//double dkm, xkm;
|
||||
double fs;
|
||||
|
||||
prop.hg[0]=tht_m;
|
||||
@@ -1394,8 +1394,8 @@ void point_to_pointDH (double elev[], double tht_m, double rht_m, double eps_die
|
||||
zc=qerfi(conf);
|
||||
zr=qerfi(rel);
|
||||
np=(long)elev[0];
|
||||
dkm=(elev[1]*elev[0])/1000.0;
|
||||
xkm=elev[1]/1000.0;
|
||||
//dkm=(elev[1]*elev[0])/1000.0;
|
||||
//xkm=elev[1]/1000.0;
|
||||
eno=eno_ns_surfref;
|
||||
enso=0.0;
|
||||
q=enso;
|
||||
|
Reference in New Issue
Block a user