kopia lustrzana https://github.com/rs1729/RS
RS92: sat exclude linErr-radius
rodzic
3d295866bc
commit
0b8c35cbe1
|
@ -90,7 +90,7 @@ typedef struct {
|
||||||
int jahr; int monat; int tag;
|
int jahr; int monat; int tag;
|
||||||
int wday;
|
int wday;
|
||||||
int std; int min; float sek;
|
int std; int min; float sek;
|
||||||
double lat; double lon; double h;
|
double lat; double lon; double alt;
|
||||||
double vH; double vD; double vU;
|
double vH; double vD; double vU;
|
||||||
int sats[4];
|
int sats[4];
|
||||||
double dop;
|
double dop;
|
||||||
|
@ -114,8 +114,10 @@ int option_verbose = 0, // ausfuehrliche Anzeige
|
||||||
option_iter = 0,
|
option_iter = 0,
|
||||||
option_vel = 0, // velocity
|
option_vel = 0, // velocity
|
||||||
option_aux = 0, // Aux/Ozon
|
option_aux = 0, // Aux/Ozon
|
||||||
|
option_der = 0, // linErr
|
||||||
rawin = 0;
|
rawin = 0;
|
||||||
double dop_limit = 9.9;
|
double dop_limit = 9.9;
|
||||||
|
double d_err = 10000;
|
||||||
|
|
||||||
int rollover = 0,
|
int rollover = 0,
|
||||||
err_gps = 0;
|
err_gps = 0;
|
||||||
|
@ -1051,7 +1053,7 @@ int get_GPSkoord(int N) {
|
||||||
fprintf(stdout, "\n");
|
fprintf(stdout, "\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
gpx.lat = gpx.lon = gpx.h = 0;
|
gpx.lat = gpx.lon = gpx.alt = 0;
|
||||||
|
|
||||||
if (option_vergps != 2) {
|
if (option_vergps != 2) {
|
||||||
for (i0=0;i0<N;i0++) { for (i1=i0+1;i1<N;i1++) { for (i2=i1+1;i2<N;i2++) { for (i3=i2+1;i3<N;i3++) {
|
for (i0=0;i0<N;i0++) { for (i1=i0+1;i1<N;i1++) { for (i2=i1+1;i2<N;i2++) { for (i3=i2+1;i3<N;i3++) {
|
||||||
|
@ -1106,7 +1108,7 @@ int get_GPSkoord(int N) {
|
||||||
if (gdop > 0 && gdop < gdop0) { // wenn fehlerhafter Sat, diter wohl besserer Indikator
|
if (gdop > 0 && gdop < gdop0) { // wenn fehlerhafter Sat, diter wohl besserer Indikator
|
||||||
gpx.lat = lat;
|
gpx.lat = lat;
|
||||||
gpx.lon = lon;
|
gpx.lon = lon;
|
||||||
gpx.h = alt;
|
gpx.alt = alt;
|
||||||
gpx.dop = gdop;
|
gpx.dop = gdop;
|
||||||
gpx.diter = diter;
|
gpx.diter = diter;
|
||||||
gpx.sats[0] = prn[i0]; gpx.sats[1] = prn[i1]; gpx.sats[2] = prn[i2]; gpx.sats[3] = prn[i3];
|
gpx.sats[0] = prn[i0]; gpx.sats[1] = prn[i1]; gpx.sats[2] = prn[i2]; gpx.sats[3] = prn[i3];
|
||||||
|
@ -1143,7 +1145,7 @@ int get_GPSkoord(int N) {
|
||||||
gpx.diter = dist(0, 0, 0, dpos_ecef[0], dpos_ecef[1],dpos_ecef[2]);
|
gpx.diter = dist(0, 0, 0, dpos_ecef[0], dpos_ecef[1],dpos_ecef[2]);
|
||||||
|
|
||||||
// Sat mit schlechten Daten suchen
|
// Sat mit schlechten Daten suchen
|
||||||
if (gpx.diter > 4000) {
|
if (gpx.diter > d_err) {
|
||||||
if (N > 5) { // 5; 4 kann auch funktionieren
|
if (N > 5) { // 5; 4 kann auch funktionieren
|
||||||
for (n = 0; n < N; n++) {
|
for (n = 0; n < N; n++) {
|
||||||
k = 0;
|
k = 0;
|
||||||
|
@ -1232,7 +1234,7 @@ int get_GPSkoord(int N) {
|
||||||
if (option_vergps == 2) {
|
if (option_vergps == 2) {
|
||||||
gpx.lat = lat;
|
gpx.lat = lat;
|
||||||
gpx.lon = lon;
|
gpx.lon = lon;
|
||||||
gpx.h = alt;
|
gpx.alt = alt;
|
||||||
gpx.dop = gdop;
|
gpx.dop = gdop;
|
||||||
num = N;
|
num = N;
|
||||||
|
|
||||||
|
@ -1324,8 +1326,8 @@ int print_position() { // GPS-Hoehe ueber Ellipsoid
|
||||||
if (n > 0) {
|
if (n > 0) {
|
||||||
fprintf(stdout, " ");
|
fprintf(stdout, " ");
|
||||||
|
|
||||||
if (almanac) fprintf(stdout, " lat: %.4f lon: %.4f alt: %.1f ", gpx.lat, gpx.lon, gpx.h);
|
if (almanac) fprintf(stdout, " lat: %.4f lon: %.4f alt: %.1f ", gpx.lat, gpx.lon, gpx.alt);
|
||||||
else fprintf(stdout, " lat: %.5f lon: %.5f alt: %.1f ", gpx.lat, gpx.lon, gpx.h);
|
else fprintf(stdout, " lat: %.5f lon: %.5f alt: %.1f ", gpx.lat, gpx.lon, gpx.alt);
|
||||||
|
|
||||||
if (option_verbose && option_vergps != 8) {
|
if (option_verbose && option_vergps != 8) {
|
||||||
fprintf(stdout, " (d:%.1f)", gpx.diter);
|
fprintf(stdout, " (d:%.1f)", gpx.diter);
|
||||||
|
@ -1496,11 +1498,20 @@ int main(int argc, char *argv[]) {
|
||||||
}
|
}
|
||||||
else return -1;
|
else return -1;
|
||||||
}
|
}
|
||||||
|
else if ( (strcmp(*argv, "--der") == 0) ) {
|
||||||
|
++argv;
|
||||||
|
if (*argv) {
|
||||||
|
d_err = atof(*argv);
|
||||||
|
if (d_err <= 0 || d_err >= 100000) d_err = 10000;
|
||||||
|
else option_der = 1;
|
||||||
|
}
|
||||||
|
else return -1;
|
||||||
|
}
|
||||||
else if ( (strcmp(*argv, "--exsat") == 0) ) {
|
else if ( (strcmp(*argv, "--exsat") == 0) ) {
|
||||||
++argv;
|
++argv;
|
||||||
if (*argv) {
|
if (*argv) {
|
||||||
exSat = atoi(*argv);
|
exSat = atoi(*argv);
|
||||||
if (exSat < 1 || exSat > 32) return -1;
|
if (exSat < 1 || exSat > 32) exSat = -1;
|
||||||
}
|
}
|
||||||
else return -1;
|
else return -1;
|
||||||
}
|
}
|
||||||
|
@ -1533,6 +1544,7 @@ int main(int argc, char *argv[]) {
|
||||||
almanac = 1;
|
almanac = 1;
|
||||||
}
|
}
|
||||||
fclose(fp_alm);
|
fclose(fp_alm);
|
||||||
|
if (!option_der) d_err = 4000;
|
||||||
}
|
}
|
||||||
if (fp_eph) {
|
if (fp_eph) {
|
||||||
/* i = read_RNXephemeris(fp_eph, eph);
|
/* i = read_RNXephemeris(fp_eph, eph);
|
||||||
|
@ -1547,6 +1559,7 @@ int main(int argc, char *argv[]) {
|
||||||
almanac = 0;
|
almanac = 0;
|
||||||
}
|
}
|
||||||
fclose(fp_eph);
|
fclose(fp_eph);
|
||||||
|
if (!option_der) d_err = 1000;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -61,7 +61,7 @@ typedef struct {
|
||||||
int jahr; int monat; int tag;
|
int jahr; int monat; int tag;
|
||||||
int wday;
|
int wday;
|
||||||
int std; int min; float sek;
|
int std; int min; float sek;
|
||||||
double lat; double lon; double h;
|
double lat; double lon; double alt;
|
||||||
double vH; double vD; double vU;
|
double vH; double vD; double vU;
|
||||||
int sats[4];
|
int sats[4];
|
||||||
double dop;
|
double dop;
|
||||||
|
@ -84,8 +84,10 @@ int option_verbose = 0, // ausfuehrliche Anzeige
|
||||||
option_iter = 0,
|
option_iter = 0,
|
||||||
option_vel = 0, // velocity
|
option_vel = 0, // velocity
|
||||||
option_aux = 0, // Aux/Ozon
|
option_aux = 0, // Aux/Ozon
|
||||||
|
option_der = 0, // linErr
|
||||||
rawin = 0;
|
rawin = 0;
|
||||||
double dop_limit = 9.9;
|
double dop_limit = 9.9;
|
||||||
|
double d_err = 10000;
|
||||||
|
|
||||||
int rollover = 0,
|
int rollover = 0,
|
||||||
err_gps = 0;
|
err_gps = 0;
|
||||||
|
@ -1021,7 +1023,7 @@ int get_GPSkoord(int N) {
|
||||||
fprintf(stdout, "\n");
|
fprintf(stdout, "\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
gpx.lat = gpx.lon = gpx.h = 0;
|
gpx.lat = gpx.lon = gpx.alt = 0;
|
||||||
|
|
||||||
if (option_vergps != 2) {
|
if (option_vergps != 2) {
|
||||||
for (i0=0;i0<N;i0++) { for (i1=i0+1;i1<N;i1++) { for (i2=i1+1;i2<N;i2++) { for (i3=i2+1;i3<N;i3++) {
|
for (i0=0;i0<N;i0++) { for (i1=i0+1;i1<N;i1++) { for (i2=i1+1;i2<N;i2++) { for (i3=i2+1;i3<N;i3++) {
|
||||||
|
@ -1076,7 +1078,7 @@ int get_GPSkoord(int N) {
|
||||||
if (gdop > 0 && gdop < gdop0) { // wenn fehlerhafter Sat, diter wohl besserer Indikator
|
if (gdop > 0 && gdop < gdop0) { // wenn fehlerhafter Sat, diter wohl besserer Indikator
|
||||||
gpx.lat = lat;
|
gpx.lat = lat;
|
||||||
gpx.lon = lon;
|
gpx.lon = lon;
|
||||||
gpx.h = alt;
|
gpx.alt = alt;
|
||||||
gpx.dop = gdop;
|
gpx.dop = gdop;
|
||||||
gpx.diter = diter;
|
gpx.diter = diter;
|
||||||
gpx.sats[0] = prn[i0]; gpx.sats[1] = prn[i1]; gpx.sats[2] = prn[i2]; gpx.sats[3] = prn[i3];
|
gpx.sats[0] = prn[i0]; gpx.sats[1] = prn[i1]; gpx.sats[2] = prn[i2]; gpx.sats[3] = prn[i3];
|
||||||
|
@ -1113,7 +1115,7 @@ int get_GPSkoord(int N) {
|
||||||
gpx.diter = dist(0, 0, 0, dpos_ecef[0], dpos_ecef[1],dpos_ecef[2]);
|
gpx.diter = dist(0, 0, 0, dpos_ecef[0], dpos_ecef[1],dpos_ecef[2]);
|
||||||
|
|
||||||
// Sat mit schlechten Daten suchen
|
// Sat mit schlechten Daten suchen
|
||||||
if (gpx.diter > 4000) {
|
if (gpx.diter > d_err) {
|
||||||
if (N > 5) { // 5; 4 kann auch funktionieren
|
if (N > 5) { // 5; 4 kann auch funktionieren
|
||||||
for (n = 0; n < N; n++) {
|
for (n = 0; n < N; n++) {
|
||||||
k = 0;
|
k = 0;
|
||||||
|
@ -1202,7 +1204,7 @@ int get_GPSkoord(int N) {
|
||||||
if (option_vergps == 2) {
|
if (option_vergps == 2) {
|
||||||
gpx.lat = lat;
|
gpx.lat = lat;
|
||||||
gpx.lon = lon;
|
gpx.lon = lon;
|
||||||
gpx.h = alt;
|
gpx.alt = alt;
|
||||||
gpx.dop = gdop;
|
gpx.dop = gdop;
|
||||||
num = N;
|
num = N;
|
||||||
|
|
||||||
|
@ -1260,8 +1262,8 @@ int print_position() { // GPS-Hoehe ueber Ellipsoid
|
||||||
if (n > 0) {
|
if (n > 0) {
|
||||||
fprintf(stdout, " ");
|
fprintf(stdout, " ");
|
||||||
|
|
||||||
if (almanac) fprintf(stdout, " lat: %.4f lon: %.4f alt: %.1f ", gpx.lat, gpx.lon, gpx.h);
|
if (almanac) fprintf(stdout, " lat: %.4f lon: %.4f alt: %.1f ", gpx.lat, gpx.lon, gpx.alt);
|
||||||
else fprintf(stdout, " lat: %.5f lon: %.5f alt: %.1f ", gpx.lat, gpx.lon, gpx.h);
|
else fprintf(stdout, " lat: %.5f lon: %.5f alt: %.1f ", gpx.lat, gpx.lon, gpx.alt);
|
||||||
|
|
||||||
if (option_verbose && option_vergps != 8) {
|
if (option_verbose && option_vergps != 8) {
|
||||||
fprintf(stdout, " (d:%.1f)", gpx.diter);
|
fprintf(stdout, " (d:%.1f)", gpx.diter);
|
||||||
|
@ -1414,11 +1416,20 @@ int main(int argc, char *argv[]) {
|
||||||
}
|
}
|
||||||
else return -1;
|
else return -1;
|
||||||
}
|
}
|
||||||
|
else if ( (strcmp(*argv, "--der") == 0) ) {
|
||||||
|
++argv;
|
||||||
|
if (*argv) {
|
||||||
|
d_err = atof(*argv);
|
||||||
|
if (d_err <= 0 || d_err >= 100000) d_err = 10000;
|
||||||
|
else option_der = 1;
|
||||||
|
}
|
||||||
|
else return -1;
|
||||||
|
}
|
||||||
else if ( (strcmp(*argv, "--exsat") == 0) ) {
|
else if ( (strcmp(*argv, "--exsat") == 0) ) {
|
||||||
++argv;
|
++argv;
|
||||||
if (*argv) {
|
if (*argv) {
|
||||||
exSat = atoi(*argv);
|
exSat = atoi(*argv);
|
||||||
if (exSat < 1 || exSat > 32) return -1;
|
if (exSat < 1 || exSat > 32) exSat = -1;
|
||||||
}
|
}
|
||||||
else return -1;
|
else return -1;
|
||||||
}
|
}
|
||||||
|
@ -1450,6 +1461,7 @@ int main(int argc, char *argv[]) {
|
||||||
almanac = 1;
|
almanac = 1;
|
||||||
}
|
}
|
||||||
fclose(fp_alm);
|
fclose(fp_alm);
|
||||||
|
if (!option_der) d_err = 4000;
|
||||||
}
|
}
|
||||||
if (fp_eph) {
|
if (fp_eph) {
|
||||||
/* i = read_RNXephemeris(fp_eph, eph);
|
/* i = read_RNXephemeris(fp_eph, eph);
|
||||||
|
@ -1464,6 +1476,7 @@ int main(int argc, char *argv[]) {
|
||||||
almanac = 0;
|
almanac = 0;
|
||||||
}
|
}
|
||||||
fclose(fp_eph);
|
fclose(fp_eph);
|
||||||
|
if (!option_der) d_err = 1000;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Ładowanie…
Reference in New Issue