Remove --aggressive entirely, replaced by "--fix --fix" to enable 2-bit FEC.

nb: messages with a correctable 2-bit error are only forwarded to network
clients that have enabled verbatim mode (and they will be forwarded with
the 2-bit error still present, so the downstream client must apply its own
correction if desired)
This commit is contained in:
Oliver Jowett 2019-11-27 21:09:19 +08:00
parent 8ffa43b65c
commit a8737f7916
2 changed files with 13 additions and 15 deletions

View File

@ -310,11 +310,9 @@ void showHelp(void) {
"--lon <longitude> Reference/receiver longitude for surface posn (opt)\n" "--lon <longitude> Reference/receiver longitude for surface posn (opt)\n"
"--max-range <distance> Absolute maximum range for position decoding (in nm, default: 300)\n" "--max-range <distance> Absolute maximum range for position decoding (in nm, default: 300)\n"
"--fix Enable single-bits error correction using CRC\n" "--fix Enable single-bits error correction using CRC\n"
"--no-fix Disable single-bits error correction using CRC\n" " (specify twice for two-bit error correction)\n"
"--no-fix Disable error correction using CRC\n"
"--no-crc-check Disable messages with broken CRC (discouraged)\n" "--no-crc-check Disable messages with broken CRC (discouraged)\n"
#ifdef ALLOW_AGGRESSIVE
"--aggressive More CPU for more messages (two bits fixes, ...)\n"
#endif
"--mlat display raw messages in Beast ascii mode\n" "--mlat display raw messages in Beast ascii mode\n"
"--stats With --ifile print stats at exit. No other output\n" "--stats With --ifile print stats at exit. No other output\n"
"--stats-range Collect/show range histogram\n" "--stats-range Collect/show range histogram\n"
@ -483,7 +481,7 @@ int main(int argc, char **argv) {
} else if (!strcmp(argv[j],"--measure-noise")) { } else if (!strcmp(argv[j],"--measure-noise")) {
// Ignored // Ignored
} else if (!strcmp(argv[j],"--fix")) { } else if (!strcmp(argv[j],"--fix")) {
Modes.nfix_crc = 1; ++Modes.nfix_crc;
} else if (!strcmp(argv[j],"--no-fix")) { } else if (!strcmp(argv[j],"--no-fix")) {
Modes.nfix_crc = 0; Modes.nfix_crc = 0;
} else if (!strcmp(argv[j],"--no-crc-check")) { } else if (!strcmp(argv[j],"--no-crc-check")) {
@ -547,11 +545,7 @@ int main(int argc, char **argv) {
} else if (!strcmp(argv[j],"--hae") || !strcmp(argv[j],"--gnss")) { } else if (!strcmp(argv[j],"--hae") || !strcmp(argv[j],"--gnss")) {
Modes.use_gnss = 1; Modes.use_gnss = 1;
} else if (!strcmp(argv[j],"--aggressive")) { } else if (!strcmp(argv[j],"--aggressive")) {
#ifdef ALLOW_AGGRESSIVE fprintf(stderr, "warning: --aggressive not supported in this build, option ignored (consider '--fix --fix' instead)\n");
Modes.nfix_crc = MODES_MAX_BITERRORS;
#else
fprintf(stderr, "warning: --aggressive not supported in this build, option ignored.\n");
#endif
} else if (!strcmp(argv[j],"--interactive")) { } else if (!strcmp(argv[j],"--interactive")) {
Modes.interactive = 1; Modes.interactive = 1;
} else if (!strcmp(argv[j],"--interactive-ttl") && more) { } else if (!strcmp(argv[j],"--interactive-ttl") && more) {
@ -627,6 +621,9 @@ int main(int argc, char **argv) {
if (!Modes.quiet) {showCopyright();} if (!Modes.quiet) {showCopyright();}
#endif #endif
if (Modes.nfix_crc > MODES_MAX_BITERRORS)
Modes.nfix_crc = MODES_MAX_BITERRORS;
// Initialization // Initialization
log_with_timestamp("%s %s starting up.", MODES_DUMP1090_VARIANT, MODES_DUMP1090_VERSION); log_with_timestamp("%s %s starting up.", MODES_DUMP1090_VARIANT, MODES_DUMP1090_VERSION);
modesInit(); modesInit();

View File

@ -120,9 +120,9 @@ void showHelp(void) {
"--lon <longitude> Reference/receiver longitude for surface posn (opt)\n" "--lon <longitude> Reference/receiver longitude for surface posn (opt)\n"
"--max-range <distance> Absolute maximum range for position decoding (in nm, default: 300)\n" "--max-range <distance> Absolute maximum range for position decoding (in nm, default: 300)\n"
"--no-crc-check Disable messages with broken CRC (discouraged)\n" "--no-crc-check Disable messages with broken CRC (discouraged)\n"
"--no-fix Disable single-bits error correction using CRC\n"
"--fix Enable single-bits error correction using CRC\n" "--fix Enable single-bits error correction using CRC\n"
"--aggressive More CPU for more messages (two bits fixes, ...)\n" " (specify twice for two-bit error correction)\n"
"--no-fix Disable error correction using CRC\n"
"--metric Use metric units (meters, km/h, ...)\n" "--metric Use metric units (meters, km/h, ...)\n"
"--show-only <addr> Show only messages from the given ICAO on stdout\n" "--show-only <addr> Show only messages from the given ICAO on stdout\n"
"--help Show this help\n", "--help Show this help\n",
@ -171,11 +171,9 @@ int main(int argc, char **argv) {
} else if (!strcmp(argv[j],"--no-crc-check")) { } else if (!strcmp(argv[j],"--no-crc-check")) {
Modes.check_crc = 0; Modes.check_crc = 0;
} else if (!strcmp(argv[j],"--fix")) { } else if (!strcmp(argv[j],"--fix")) {
Modes.nfix_crc = 1; ++Modes.nfix_crc;
} else if (!strcmp(argv[j],"--no-fix")) { } else if (!strcmp(argv[j],"--no-fix")) {
Modes.nfix_crc = 0; Modes.nfix_crc = 0;
} else if (!strcmp(argv[j],"--aggressive")) {
Modes.nfix_crc = MODES_MAX_BITERRORS;
} else if (!strcmp(argv[j],"--max-range") && more) { } else if (!strcmp(argv[j],"--max-range") && more) {
Modes.maxRange = atof(argv[++j]) * 1852.0; // convert to metres Modes.maxRange = atof(argv[++j]) * 1852.0; // convert to metres
} else if (!strcmp(argv[j],"--help")) { } else if (!strcmp(argv[j],"--help")) {
@ -194,6 +192,9 @@ int main(int argc, char **argv) {
#define MSG_DONTWAIT 0 #define MSG_DONTWAIT 0
#endif #endif
if (Modes.nfix_crc > MODES_MAX_BITERRORS)
Modes.nfix_crc = MODES_MAX_BITERRORS;
// Initialization // Initialization
view1090Init(); view1090Init();
modesInitNet(); modesInitNet();