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
|
v1.3.8 - 16 Jan 2014
|
||||||
Added Free Space Path Loss model (with optional diffraction)
|
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 ked(double freq, double elev[], double rxh, double dkm){
|
||||||
double obh,obd,rxobaoi=0,d;
|
double obh,obd,rxobaoi=0,d;
|
||||||
|
|
||||||
obh=0;
|
obh=0; // Obstacle height
|
||||||
obd=0;
|
obd=0; // Obstacle distance
|
||||||
|
|
||||||
dkm=dkm*1000; // KM to metres
|
dkm=dkm*1000; // KM to metres
|
||||||
|
|
||||||
|
// walk along path
|
||||||
for(int n=2;n<(dkm/elev[1]);n++){
|
for(int n=2;n<(dkm/elev[1]);n++){
|
||||||
|
|
||||||
d = (n-2)*elev[1]; // no of points * delta = km
|
d = (n-2)*elev[1]; // no of points * delta = km
|
||||||
|
|
||||||
//Find dip(s)
|
//Find dip(s)
|
||||||
if(elev[n] > 0 && elev[n]<(obh+10)){
|
if(elev[n]<(obh+20)){
|
||||||
|
|
||||||
// Angle from Rx point to obstacle
|
// Angle from Rx point to obstacle
|
||||||
rxobaoi = incidenceAngle((obh-(elev[n]+rxh)),d-obd);
|
rxobaoi = incidenceAngle((obh-(elev[n]+rxh)),d-obd);
|
||||||
@@ -65,7 +66,7 @@ dkm=dkm*1000; // KM to metres
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(rxobaoi >= 0){
|
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{
|
}else{
|
||||||
return 0;
|
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 zc, zr;
|
||||||
double eno, enso, q;
|
double eno, enso, q;
|
||||||
long ja, jb, i, np;
|
long ja, jb, i, np;
|
||||||
double dkm, xkm;
|
//double dkm, xkm;
|
||||||
double fs;
|
double fs;
|
||||||
|
|
||||||
prop.hg[0]=tht_m;
|
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);
|
zc=qerfi(conf);
|
||||||
zr=qerfi(rel);
|
zr=qerfi(rel);
|
||||||
np=(long)elev[0]; //number of points
|
np=(long)elev[0]; //number of points
|
||||||
dkm=(elev[1]*elev[0])/1000.0; // total distance in km. elev[1]=90(m) (default)
|
//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
|
//xkm=elev[1]/1000.0; // distance between points in km
|
||||||
eno=eno_ns_surfref;
|
eno=eno_ns_surfref;
|
||||||
enso=0.0;
|
enso=0.0;
|
||||||
q=enso;
|
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 ztime, zloc, zconf;
|
||||||
double eno, enso, q;
|
double eno, enso, q;
|
||||||
long ja, jb, i, np;
|
long ja, jb, i, np;
|
||||||
double dkm, xkm;
|
//double dkm, xkm;
|
||||||
double fs;
|
double fs;
|
||||||
|
|
||||||
propmode=-1; // mode is undefined
|
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);
|
zconf=qerfi(confpct);
|
||||||
|
|
||||||
np=(long)elev[0];
|
np=(long)elev[0];
|
||||||
dkm=(elev[1]*elev[0])/1000.0;
|
//dkm=(elev[1]*elev[0])/1000.0;
|
||||||
xkm=elev[1]/1000.0;
|
//xkm=elev[1]/1000.0;
|
||||||
eno=eno_ns_surfref;
|
eno=eno_ns_surfref;
|
||||||
enso=0.0;
|
enso=0.0;
|
||||||
q=enso;
|
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 zc, zr;
|
||||||
double eno, enso, q;
|
double eno, enso, q;
|
||||||
long ja, jb, i, np;
|
long ja, jb, i, np;
|
||||||
double dkm, xkm;
|
//double dkm, xkm;
|
||||||
double fs;
|
double fs;
|
||||||
|
|
||||||
prop.hg[0]=tht_m;
|
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);
|
zc=qerfi(conf);
|
||||||
zr=qerfi(rel);
|
zr=qerfi(rel);
|
||||||
np=(long)elev[0];
|
np=(long)elev[0];
|
||||||
dkm=(elev[1]*elev[0])/1000.0;
|
//dkm=(elev[1]*elev[0])/1000.0;
|
||||||
xkm=elev[1]/1000.0;
|
//xkm=elev[1]/1000.0;
|
||||||
eno=eno_ns_surfref;
|
eno=eno_ns_surfref;
|
||||||
enso=0.0;
|
enso=0.0;
|
||||||
q=enso;
|
q=enso;
|
||||||
|
Reference in New Issue
Block a user