Sylphase SDGPS
The software-defined GPS(/GNSS) toolkit
sdgps --help
Usage: build/main [OPTION]... [PIPELINE]...
Allowed options:
--help produce help message
--print-mallocs
print a message on every malloc
--abort-on-malloc
crash on malloc
--malloc-stats
show malloc stats in status line and at program termination
--timestamp
prefix all printed lines with timestamp
--log FILENAME
log all console output to file
--no-node-monitor
disable tracking of per-thread/per-node CPU usage and sleep time (normally displayable via keybind) to avoid overhead
--version
print version and exit
PIPELINE
To run a pipeline, use this syntax for PIPELINE:
NODETYPE [NODEOPTION]... [! NODETYPE [NODEOPTION]...]...
To run a utility, use this syntax for PIPELINE:
UTILITY [UTILITYOPTION]...
To get options available for a given node or utility, use this syntax for PIPELINE:
NODETYPE/UTILITY --help
To list all available nodes and utilities, provide PIPELINE of "help" or empty PIPELINE.
Available interfaces:
* cooked
* cooked2
* observables
* orientation_trajectory
* raw
* solution
* wrench
Available node types:
* _generate-cooked-test-stream (->cooked)
* _generate-cooked2-test-stream (->cooked2)
* _generate-observables-test-stream (->observables)
* _generate-orientation-trajectory-test-stream (->orientation_trajectory)
* _generate-raw-test-stream (->raw)
* _generate-solution-test-stream (->solution)
* _generate-wrench-test-stream (->wrench)
* abort-signal-tracking (*->*)
* analyze-stream (*->*)
* apply-magnetometer-calibration (*->*)
* background (*->*)
* buffer (*->*)
* buffer-cooked-from (->cooked)
* buffer-cooked2-from (->cooked2)
* buffer-observables-from (->observables)
* buffer-orientation-trajectory-from (->orientation_trajectory)
* buffer-raw-from (->raw)
* buffer-solution-from (->solution)
* buffer-wrench-from (->wrench)
* characterize-channel-rx (raw->[raw])
* characterize-channel-tx (->raw)
* concatenate-cooked-streams (->cooked)
* concatenate-cooked2-streams (->cooked2)
* concatenate-observables-streams (->observables)
* concatenate-orientation-trajectory-streams (->orientation_trajectory)
* concatenate-raw-streams (->raw)
* concatenate-solution-streams (->solution)
* concatenate-wrench-streams (->wrench)
* connect-cooked-tcp (->cooked)
* connect-cooked-unix (->cooked)
* connect-cooked2-tcp (->cooked2)
* connect-cooked2-unix (->cooked2)
* connect-observables-tcp (->observables)
* connect-observables-unix (->observables)
* connect-orientation-trajectory-tcp (->orientation_trajectory)
* connect-orientation-trajectory-unix (->orientation_trajectory)
* connect-raw-tcp (->raw)
* connect-raw-unix (->raw)
* connect-solution-tcp (->solution)
* connect-solution-unix (->solution)
* connect-wrench-tcp (->wrench)
* connect-wrench-unix (->wrench)
* cooked-to-raw (cooked->raw)
* cooked2-to-raw (cooked2->raw)
* decimate-observables (observables->observables)
* decimate-solution (solution->solution)
* decoder (cooked2->observables)
* decrease-bit-depth (*->*)
* dummy-cooked-sink (cooked->cooked)
* export-json (*->*)
* export-json-tcp (*->*)
* export-json-unix (*->*)
* extrapolate-realtime-trajectory (solution->solution)
* fabricate-dropped-packets (*->*)
* fake-gnss-outage (observables->observables)
* fake-packet-loss (*->*)
* filter-cooked2-signals (cooked2->cooked2)
* filter-observables-svs (observables->observables)
* generate-rf-delay-calibration-waveform (->raw)
* generate-simple-trajectory (->solution)
* generate-vcxo-waveform (*->*)
* gpsdo (solution->[solution])
* inertial-kf2 (observables->solution)
* ingest-orientation (observables->observables)
* join-cooked-streams (->cooked)
* join-cooked2-streams (->cooked2)
* join-observables-streams (->observables)
* join-raw-streams (->raw)
* kf2 (observables->solution)
* kill-cooked-spur (cooked->cooked)
* listen-cooked-tcp (cooked->[cooked])
* listen-cooked-unix (cooked->[cooked])
* listen-cooked2-tcp (cooked2->[cooked2])
* listen-cooked2-unix (cooked2->[cooked2])
* listen-observables-tcp (observables->[observables])
* listen-observables-unix (observables->[observables])
* listen-orientation-trajectory-tcp (orientation_trajectory->[orientation_trajectory])
* listen-orientation-trajectory-unix (orientation_trajectory->[orientation_trajectory])
* listen-raw-tcp (raw->[raw])
* listen-raw-unix (raw->[raw])
* listen-solution-tcp (solution->[solution])
* listen-solution-unix (solution->[solution])
* listen-wrench-tcp (wrench->[wrench])
* listen-wrench-unix (wrench->[wrench])
* mock-blocking-node (*->*)
* mock-crashing-node (*->*)
* mock-event-source (*->*)
* mock-invalid-observables (observables->observables)
* mock-leds (*->*)
* mock-pulse-output (*->*)
* mock-vcxo (*->*)
* multiantenna-channel-optimizer (observables->[observables])
* observables-to-cooked2 (observables->cooked2)
* observables-to-raw (observables->raw)
* observables-to-sv-trajectory (observables->solution)
* offset-solution (solution->solution)
* output-pps (solution->[solution])
* output-receiver-pps (*->*)
* pacer (*->*)
* pll-vcxo (*->*)
* plot-cooked (cooked->[cooked])
* plot-cooked2 (cooked2->[cooked2])
* plot-ground-track (solution->[solution])
* plot-holdover-performance (solution->[solution])
* plot-observables (observables->[observables])
* plot-raw (raw->[raw])
* plot-sensors (raw->[raw])
* plot-solution (solution->[solution])
* pps-events-to-time-stream (*->*)
* pretty-print (*->*)
* pretty-print-callbacks (*->*)
* print-dropped-packets (*->*)
* print-time-at-event (*->*)
* read-cooked-file (->cooked)
* read-cooked2-file (->cooked2)
* read-observables-file (->observables)
* read-orientation-trajectory-file (->orientation_trajectory)
* read-raw-file (->raw)
* read-solution-file (->solution)
* read-wrench-file (->wrench)
* recompute-substreams (raw->raw)
* rejitter-packets (*->*)
* remap-streams (*->*)
* renumber-solution (solution->solution)
* replace-config (*->*)
* report-ttff (observables->[observables])
* resample-solution (solution->solution)
* restamp-realtime-wrenches (wrench->wrench)
* run-async-pipeline-deterministically (solution->solution)
* run-subprocess-at-time (*->*)
* send-time-upstream (solution->[solution])
* set-antenna-position (*->*)
* set-leds (*->*)
* shift-gnss-time (solution->solution)
* shift-stream-time (*->*)
* simple-pvt-solver (observables->solution)
* simple-tracking-controller (solution->wrench)
* simulate-cooked (solution->cooked)
* simulate-cooked2 (solution->cooked2)
* simulate-observables (solution->observables)
* simulate-raw (solution->raw)
* simulate-rigid-body-dynamics (->solution)
* simulate-sv-trajectory (->solution)
* simulate-vcxo (*->*)
* solution-to-orientation-trajectory (solution->orientation_trajectory)
* sort-packets (*->*)
* static-kf2 (observables->solution)
* sw-correlator (raw->cooked)
* sylphase-usbgpsimu2 (->cooked)
* sylphase-usbgpsimu2-offline (raw->cooked)
* sylphase-usbgpsimu2-raw (->raw)
* sylphase-usbgpsimu4 (->cooked)
* sylphase-usbgpsimu4-raw (->raw)
* synthesize-sensor-measurements (observables->observables)
* tee (*->*)
* tracker (cooked->cooked2)
* tracker-only (cooked->cooked2)
* trim-stream (*->*)
* uhd-rx (->raw)
* uhd-tx (raw->[raw])
* write-cn0-csv (observables->[observables])
* write-cooked-file (cooked->[cooked])
* write-cooked2-file (cooked2->[cooked2])
* write-iq-csv (raw->[raw])
* write-observables-file (observables->[observables])
* write-orientation-trajectory-file (orientation_trajectory->[orientation_trajectory])
* write-raw-file (raw->[raw])
* write-solution-file (solution->[solution])
* write-wrench-file (wrench->[wrench])
Available utilities:
* _list-os-signals
* convert-orientation
* convert-position
* convert-time
* demo-3d-plotting
* do-nothing
* ft60x-tool
* generate-markdown-help
* get-test-source-file
* help-json
* json-rpc-client
* lecroy-oscope
* list-test-tag-patterns
* list-tests
* mini-circuits-switch
* mock-use-after-free
* parse-sdgps-cmdline
* plot-client2
* plot-csv
* plot-gain-pattern
* plot-gnss-cross-correlation
* plot-gnss-info
* plot-ionospheric-model
* plot-lecroy-waveforms
* plot-perlin-noise2
* plot-plot-file
* plot-statlog-file
* plot-tropospheric-model
* pretty-print-json-file
* pretty-print-pipeline
* print-config
* print-cooked-file-info
* print-cooked2-file-info
* print-eop
* print-gnss-info
* print-observables-file-info
* print-orientation-trajectory-file-info
* print-raw-file-info
* print-solution-file-info
* print-wrench-file-info
* query-magnetic-model
* read-from-serial-port
* run-parallel-subprocesses
* run-subprocess
* run-test
* run-uhd-binary
* run-with-SystemLock
* sylphase-usbgpsimu2-eeprom
* sylphase-usbgpsimu2-init
* validate-pipeline
Available config providers:
* custom:see options by running "sdgps print-config custom:'--help'"
* file:FILENAME (can be a text file with JSON or a SDGPS binary file with a JSON header) (also, just "FILENAME" is interpreted as a filename if it doesn't have any colons)
* json:{"gnss_streams": ...} (inline JSON)
* repofile:FILENAME (interpreted relative to SDGPS repository root; useful for configs/ files)
* ugi2:see options by running "sdgps print-config ugi2:'--help'"
Tip: use the "print-config" utility to test config providers.
Available gain pattern providers:
* dipole:<no args>
* isotropic:<no args>
Tip: run "sdgps plot-gain-pattern PROVIDER:--help" to get more detailed help for a specific provider.
Available ionospheric model providers:
* broadcast-gps:<no args>
* static-gps:--filename FILENAME or --json INLINE_JSON
* zero:<no args>
Tip: run "sdgps plot-ionospheric-model MODEL:--help" to get more detailed help for a specific model.
Available tropospheric model providers:
* rtca:<no args>
* simple:<no args>
* zero:<no args>
Tip: run "sdgps plot-tropospheric-model MODEL:--help" to get more detailed help for a specific model.
Available EOP providers:
* dynamic:FILENAME or --json=INLINE_JSON
* random:<no args>
* static:FILENAME or --json=INLINE_JSON
Tip: run "sdgps print-eop PROVIDER:--help" to get more detailed help for a specific provider.
Available UTC providers:
* dynamic:FILENAME or --json=INLINE_JSON
* static:FILENAME or --json=INLINE_JSON
Tip: run "sdgps print-utc PROVIDER:--help" to get more detailed help for a specific provider.
Available GNSS systems:
* GAL_E1B
* GAL_E1C
* GAL_E1Cwide
* GAL_E5b
* GLO_L1
* GLO_L2
* GPS_L1
* GPS_L2C
* GPS_L2CL
GNSS-specific environmental variable overrides are variables that can be overridden for all GNSS signals at once, or for a specific GNSS by appending the GNSS name.
e.g. SDGPS_ACQ_EARLY_MAX_SIGNAL applies to all GNSS, whereas SDGPS_ACQ_EARLY_MAX_SIGNAL_GAL_E1B will only apply to GAL_E1B
Available GNSS-specific environmental variable overrides:
VARIABLE[_GNSS] (TYPE): DESCRIPTION
* SDGPS_ACQ_EARLY_MAX_SIGNAL (int): Don't try acquiring SVs with an SVID > this threshold until after we've attempted to acquire all SVs below this threshold twice
* SDGPS_ACQ_IGNORE_DOPPLER_ACCEL (bool): Don't use the estimated doppler acceleration, instead assume it to be 0
* SDGPS_ACQ_OVERRIDE_FINE_INCOHERENT_REPETITIONS (int): Number of coherent slices of signal to incoherently sum during the refining step
* SDGPS_ACQ_OVERRIDE_INCOHERENT_REPETITIONS (int): Number of coherent slices of signal to incoherently sum
* SDGPS_ACQ_OVERRIDE_N_PRNS (int): Number of PRN sequences used in acquisition's coherent slicing
* SDGPS_CORRELATOR_OVERRIDE_CHANNEL_MULT (int): Controls the time-multiplexing of the hardware correlator channels
Other available environmental variable overrides:
VARIABLE (TYPE): DESCRIPTION [(=DEFAULT)]
* DISPLAY (string): Plot to this display
* PLOT_CLIENT2_FULLSCREEN (bool): Make plot window fullscreen (=0)
* PLOT_CLIENT2_GL_DEBUG_SEVERITY (sdgps::util::plot_client2::main::DebugSeverity): Set the severity threshold for GL errors to report in the console (options: NOTIFICATION, LOW, MEDIUM, HIGH, FATAL) (=FATAL)
* PLOT_CLIENT2_HEIGHT (int): Set plot window height in pixels (does nothing when using PLOT_CLIENT2_FULLSCREEN) (=720)
* PLOT_CLIENT2_WIDTH (int): Set plot window width in pixels (does nothing when using PLOT_CLIENT2_FULLSCREEN) (=1280)
* PLOT_FILE (string): Plot to this file instead of the screen
* PLOT_NO_ACKNOWLEDGE (bool): Don't wait for user to acknowledge the plot when pipeline ends (=1)
* PLOT_PORT (int): Start plot server listening on this TCP port
* SDGPS_ACQ_ANNOUNCE_PERIOD (float): Periodically report acquisition thread CPU usage (only used in non-deterministic mode; period in seconds)
* SDGPS_ACQ_APPLY_CODE_PHASE_BIAS_CHIPS (float): Bias the acquisition code phase by this many chips (=0)
* SDGPS_ACQ_DEBUG (bool): Enable acquisition debug output (=0)
* SDGPS_ACQ_EFFORT_EARLY_DURATION (float): (see SDGPS_ACQ_EFFORT_EARLY_MULTIPLIER) (=10)
* SDGPS_ACQ_EFFORT_EARLY_MULTIPLIER (float): Apply this multiplier to --acq-effort value for the first SDGPS_ACQ_EFFORT_EARLY_DURATION seconds (only has an effect if --deterministic is used) (=1)
* SDGPS_ACQ_MAX_CPU_FRAC (float): Limit each signal's acquisition thread to this percentage of a core when < SDGPS_ACQ_THROTTLE_SVS are being tracked (=0.5)
* SDGPS_ACQ_MIN_CPU_FRAC (float): Limit each signal's acquisition thread to this percentage of a core when >= SDGPS_ACQ_THROTTLE_SVS are being tracked (=0.1)
* SDGPS_ACQ_NO_SVS_CPU_FRAC (float): Limit each signal's acquisition thread to this percentage of a core if zero SVs have been tracked for SDGPS_ACQ_THROTTLE_NO_SVS_TIMEOUT seconds (=0.1)
* SDGPS_ACQ_PLOT (string): Setting this enables acquisition plot output; setting to "all" enables even more plots
* SDGPS_ACQ_PLOT_NO_EXTEND (bool): Don't extend the signal slice used in plotted acquisition results (=0)
* SDGPS_ACQ_PLOT_SLEEP (float): Add a sleep in between acquisition doppler guesses; useful for inspecting the plots before they change (units: seconds)
* SDGPS_ACQ_RADIUS_PPM (float): Acquisition doppler search radius (in PPM) (=13.076637751840977)
* SDGPS_ACQ_SPUR_KILL_DEBUG (bool): Enable debug output on acquisition's spur-killing feature (=0)
* SDGPS_ACQ_SPUR_KILL_DISABLE (bool): Disable acquisition's spur-killing feature (=1)
* SDGPS_ACQ_THREAD_SCHED_FIFO (int): Set acquisition thread's scheduling policy to SCHED_FIFO with this priority
* SDGPS_ACQ_THREAD_SCHED_IDLE (bool): Set acquisition thread's scheduling policy to SCHED_IDLE (=0)
* SDGPS_ACQ_THREAD_VERBOSE (bool): Enable verbose output on acquisition thread (=0)
* SDGPS_ACQ_THROTTLE_NO_SVS_TIMEOUT (float): Limit each signal's acquisition thread to SDGPS_ACQ_NO_SVS_CPU_FRAC of a core if zero SVs have been tracked for this many seconds
* SDGPS_ACQ_THROTTLE_SVS (int): Threshold number of tracked SVs at which to reduce acquisition effort
* SDGPS_ASYNC_WRITER_BUFFER_SIZE (int): Set the size (in bytes) of util::file_buf::AsyncWriter's lockfree circular buffer of pending file writes (=1048576)
* SDGPS_ASYNC_WRITER_CHUNK_SIZE (int): Set the maximum amount of data (in bytes) that util::file_buf::AsyncWriter will provide to a single write() call (=65536)
* SDGPS_ASYNC_WRITER_MAX_DELAY (sdgps::util::Time<sdgps::util::TimeOffset_detail::TimeOffset<sdgps::util::TypeList<>, sdgps::util::TypeList<> > >): Set the maximum amount of time (in seconds) that util::file_buf::AsyncWriter will coalesce writes for (=1.000000000000000000)
* SDGPS_BYPASS_HISTOGRAM_CHECK (bool): Ignore any histogram failure instead of causing program exit (=0)
* SDGPS_BYPASS_KF2_VALIDATE_INITIAL_FIX (bool): Bypass kf2 requirement to confirm the initial fix has a reasonable altitude and velocity before initializing (=0)
* SDGPS_CAPTURE_CHECK_TEST_OUTPUT_DIR (string): Path that individual halves of capture/check-style tests will write/read capture file(s) to/from
* SDGPS_COMMON_ASYNC_CALL_FASTPATH (bool): Skip all checks on CommonChecker::wrap_async_call() and just immediately call the callback (=0)
* SDGPS_COMMON_CHECKER_VERBOSE (bool): Log any detected gaps in packet streams (i.e. dropped packets) (=0)
* SDGPS_CONSTELLATION_GEOMETRY_FALLBACK (bool): Fallback to previous constellation generation with occasional degenerate geometry (=0)
* SDGPS_COROUTINE_DEBUG (bool): Run each coroutine in separate thread for better stack traces in gdb (slower) (=0)
* SDGPS_CORRELATOR_DEBUG (bool): Enable debug messages on hw_correlator (=0)
* SDGPS_CORRELATOR_MAX_SVS_FALLBACK (bool): Fallback to previous behavior of treating --max-svs as a per antenna limit instead of per GNSS system limit (=0)
* SDGPS_DECIMATE_OBSERVABLES_DEBUG (bool): Enable debug output on decimate-observables (=0)
* SDGPS_DISABLE_STATUS_LINE (bool): Disable status line output (=0)
* SDGPS_DISABLE_TERMINATE_HANDLER (bool): Don't install std::terminate() handler (=0)
* SDGPS_EPHEMERIS_EVALUATOR_DIFF (bool): When a new ephemeris is decoded, print the diff between the old and new one; only has an effect if SDGPS_EPHEMERIS_EVALUATOR_VERBOSE is set (=0)
* SDGPS_EPHEMERIS_EVALUATOR_DISABLE_GGTO (bool): Don't apply GGTO correction (=0)
* SDGPS_EPHEMERIS_EVALUATOR_VERBOSE (bool): Enable verbose output on EphemerisEvaluator (=0)
* SDGPS_FX2_PROGRAM_STRESS_TEST (bool): Spam device string control transfers in parallel with FX2 firmware load to test robustness of firmware loading (=0)
* SDGPS_FX2_PROGRAM_VERBOSE (bool): Always output log messages during FX2 programming (=0)
* SDGPS_FX2_RECONNECT_TIMEOUT (float): Wait this many seconds when reconnecting after FX firmware load (=30)
* SDGPS_GPS_L2C_SIMULATE_BLOCK_IIR_SVS (bool): Simulate Block IIR satellites instead of default behavior of all simulated satellites being IIR-M+ (=0)
* SDGPS_HARDWARE_LECROY_OSCOPE_DEBUG (bool): Enable verbose debug logging for LeCroy oscilloscope driver (=0)
* SDGPS_HARDWARE_MINI_CIRCUITS_SWITCH_DEBUG (bool): Enable verbose debug logging for Mini-Circuits RF switch driver (=0)
* SDGPS_HW_CORRELATOR_DISABLE_ACQ_THREAD_MAX_LAUNCH_HINT_AGE (sdgps::util::Time<sdgps::util::TimeOffset_detail::TimeOffset<sdgps::util::TypeList<>, sdgps::util::TypeList<> > >): Maximum LaunchSignalTracking hint age for AcqThread to be suspended (units: seconds) (=5.000000000000000000)
* SDGPS_HW_CORRELATOR_DISABLE_ACQ_THREAD_MIN_SVS_REQUIRED (int): Minimum number of tracked SVs required for AcqThread to be suspended (=6)
* SDGPS_INERTIAL_KF2_ESTIMATE_ANTENNA_DELAYS_JOIN_FRONTENDS (bool): assume that all the frontends of a given secondary antenna have the same delay instead of estimating them independently (=0)
* SDGPS_INERTIAL_KF2_RESET_GYRO_BIAS_MAGNITUDE (float): reset filter if magnitude of gyro_bias estimate exceeds this threshold (units: degrees/second) (=5)
* SDGPS_JSON_RPC_PORT (int): Start JSON-RPC server on this TCP port
* SDGPS_JSON_RPC_WRITE_PORT (string): Write JSON-RPC TCP server port to this file; useful with SDGPS_JSON_RPC_PORT=0, which chooses an arbitrary free port
* SDGPS_KF2_OUTPUT_DURING_SETTLING (bool): Allow kf2 to output a solution stream while the filter is still settling (=0)
* SDGPS_LEAVE_TEMPORARY_FILES (bool): Don't delete file made via TemporaryFile, instead print its path when object is destroyed (=0)
* SDGPS_MAIN_CHECK_MALLOC_BYTES_ABORT (int): Only allow this many bytes allocated via malloc calls at runtime; failure immediately
* SDGPS_MAIN_CHECK_MALLOC_BYTES_MAX (int): Only allow this many bytes allocated via malloc calls at runtime; failure after pipeline exit
* SDGPS_MAIN_CHECK_MALLOC_CALLS_ABORT (int): Only allow this many calls to malloc at runtime; failure immediately
* SDGPS_MAIN_CHECK_MALLOC_CALLS_MAX (int): Only allow this many calls to malloc at runtime; failure after pipeline exit
* SDGPS_MAIN_CHECK_MALLOC_LOG_FIRST (int): Print a stack trace for the first SDGPS_MAIN_CHECK_MALLOC_LOG_FIRST malloc calls and continue
* SDGPS_MAIN_LOG_ROTATE_SIZE_BYTES (int): Rotate --log file such that this many bytes of history are always preserved
* SDGPS_MALLOC_ARENA_STRICT (bool): Die if any allocations are still present when Arena::exit() is called; never use backup pool (mem2) (=0)
* SDGPS_MALLOC_ARENA_TRACE (bool): Display stack traces of all malloc calls (=0)
* SDGPS_NETLIST_ANCHOR_SETUP_DEVICE_NAME (string): only consider device assignment solutions that contain this setup netlist device
* SDGPS_NODE_MONITOR_ENABLE_PER_NODE_STATLOG (bool): Output StatLog data per node in addition to the default of per thread (=1)
* SDGPS_NO_HEADER (bool): Don't print SDGPS header including version and exact command at the start of the pipeline (=0)
* SDGPS_OMIT_INTERFACE_CHECKERS (bool): Don't check to make sure interfaces match between nodes in the pipeline (=0)
* SDGPS_OUTPUT_PPS_EXIT_AFTER_FIRST_PULSE (bool): End pipeline after output-pps emits the first pulse (=0)
* SDGPS_PERLIN_NOISE_DEBUG (bool): Enable debug output for plot-perlin-noise (=0)
* SDGPS_PLOT_CLIENT2_AUTOFIT_IGNORE_X_LESS_THAN (float): Ignore points with an x coordinate less than this when doing autofit
* SDGPS_PLOT_CLIENT2_DPI_SCALE (float): Override DPI scale factor provided by window manager (example: "2" for 200% scaling)
* SDGPS_PLOT_CLIENT2_EXIT_AFTER_REDRAWS (int): Close plotting window after this many redraws
* SDGPS_PLOT_CLIENT2_FAKE_NETWORK_BW_LIMIT (int): Emulate a slow TCP connection for testing purposes (units: bytes/second)
* SDGPS_PLOT_CLIENT2_IMGUI_DEMO (bool): Display demo window to show off ImGui features (=0)
* SDGPS_PLOT_CLIENT2_IMPLOT_DEMO (bool): Display demo window to show off ImPlot features (=0)
* SDGPS_PLOT_CLIENT2_LOG_PROTOCOL (bool): Log plotting protocol packets to the console (=0)
* SDGPS_PLOT_CLIENT2_MIN_PLOT_HEIGHT (int): minimum height of each plot (units: pixels) (=350)
* SDGPS_PLOT_CLIENT2_PLOT2D_SHOW_MARKERS (bool): In addition to the lines connecting them, show circle markers on data points in 2D plots (=0)
* SDGPS_PLOT_CLIENT2_SCREENSHOT_AND_EXIT (string): When the plot comes up, save a screenshot to this filename and immediately exit
* SDGPS_PLOT_LINE_REGEX (sdgps::util::regex): Only show lines with a label matching this regex string (=.*)
* SDGPS_PLOT_TITLE_REGEX (sdgps::util::regex): Only show plots with a title matching this regex string (=.*)
* SDGPS_PLOT_TO_IMAGE_FILE (string): like PLOT_FILE, except plot is rasterized to an image before being written to disk
* SDGPS_PLOT_UNIX_SOCKET (string): Start plot server listening on UNIX socket at this filesystem path
* SDGPS_PLOT_USE_XVFB (bool): Use X virtual framebuffer (=0)
* SDGPS_REACTOR_OVERRIDE_WATCHDOG_ENABLE (bool): Whether the watchdog timer is enabled on realtime threads (=0)
* SDGPS_REALTIME_POLICY_RR (bool): Use SCHED_RR (round robin policy for realtime threads) instead of SCHED_FIFO (=0)
* SDGPS_REALTIME_PRIORITY (int): Set realtime thread's priority to this (99 being highest priority; 1 being lowest) (=99)
* SDGPS_SIMULATE_RAW_BENCHMARK (bool): Enable benchmark mode for simulate-raw (=0)
* SDGPS_SIMULATE_RAW_CHUNK_SIZE (int): Override simulate-raw work chunk size
* SDGPS_SIMULATE_RAW_COMPUTE_PRN_DEBUG_PLOT (bool): Plot simulate-raw compute_prn plot (=0)
* SDGPS_SIMULATE_RAW_REFERENCE (bool): Use reference implementation for innermost loop in simulate-raw (slower) (=0)
* SDGPS_SIMULATE_SCENE_GRANULAR_VISIBILITY (bool): Enable more granular visibility controls for simulated 3d scene (=0)
* SDGPS_SKIP_HISTOGRAM_CHECK (bool): Skip the histogram check on the incoming sample stream from hardware (=0)
* SDGPS_STATIC_KF2_ESTIMATE_ANTENNA_DELAYS_JOIN_FRONTENDS (bool): assume that all the frontends of a given secondary antenna have the same delay instead of estimating them independently (=0)
* SDGPS_STATLOG_FILE_ROTATE_SIZE_BYTES (int): Rotate STATLOG_FILE file such that this many bytes of history are always preserved
* SDGPS_SW_CORRELATOR_DISABLE_ACQ_THREAD_MAX_LAUNCH_HINT_AGE (sdgps::util::Time<sdgps::util::TimeOffset_detail::TimeOffset<sdgps::util::TypeList<>, sdgps::util::TypeList<> > >): Maximum LaunchSignalTracking hint age for AcqThread to be suspended (units: seconds) (=5.000000000000000000)
* SDGPS_SW_CORRELATOR_DISABLE_ACQ_THREAD_MIN_SVS_REQUIRED (int): Minimum number of tracked SVs required for AcqThread to be suspended (=6)
* SDGPS_SYSTEM_STATE_DIR (string): Override the directory SDGPS uses for system state files; e.g. locks, shmids (=/var/lock/sdgps)
* SDGPS_SYSTEM_STATE_DIR_GROUP (string): Override the linux user group that should own the system state directory (=sdgps)
* SDGPS_TEST_PLOT_COMMON_SHOW_PLOTS (bool): Show plot test plots (=0)
* SDGPS_THREAD_COUT_BUFFER_SIZE (int): Sets the size (in bytes) of each thread's lockfree circular buffer of console log messages (=65536)
* SDGPS_UHD_BYPASS_USB_3_CHECK (bool): Bypass USB 3.0 check (=0)
* SDGPS_UHD_RX_DIE_ON_ASYNC_AFTER (sdgps::util::Time<sdgps::interfaces::StreamTimeTag>): Causes uhd-rx to immediately die when an asynchronous event occurs after this many seconds
* SDGPS_UHD_TX_DEBUG (bool): Enable debug logging from uhd-tx node (=0)
* SDGPS_UHD_TX_DIE_ON_ASYNC_AFTER (sdgps::util::DoubleOrInf): Make uhd-tx immediately abort if an asynchronous event (e.g. underflow) occurs after this many seconds of runtime; set to "inf" to never abort (=30)
* SDGPS_UTIL_CSV_IGNORE_ROWS_BEFORE_COLUMN_COUNT_CHANGE (bool): Ignore CSV rows until column count changes, indicating the header is done (useful for parsing statlog files) (=0)
* SDGPS_UTIL_DIE_ABORT (bool): Call abort() instead of exiting if util::die is called or an assertion fails (=0)
* SDGPS_UTIL_DIE_STACK_TRACE (bool): Display a stack trace when program exits via util::die (=0)
* SDGPS_UTIL_DIE_STOP (bool): Call raise(SIGSTOP) to freeze process instead of exiting if util::die is called or an assertion fails (=0)
* SDGPS_UTIL_HTTP_TRACE_ALL (bool): enable verbose logging for all HTTP connections (=0)
* SDGPS_UTIL_MALLOC_WRAPPER_PARANOID (bool): Detect all use-after-frees and most out-of-bounds memory accesses (at the cost of wasting a few pages of RAM per allocation and likely exceeding the default vm.max_map_count limit) (=0)
* SDGPS_UTIL_PARSE_ARGS_DEBUG (bool): Enable debug output for node arg parsing (=0)
* SDGPS_UTIL_PARSE_ARGS_TERMINAL_WIDTH (int): Override autodetected terminal width used for formatting --help text
* SDGPS_UTIL_PERF_BYPASS_OPEN_FAILURE (bool): Make error from perf_event_open() non-fatal; on error, stub implementation of counter that always returns 0 will be used (=0)
* SDGPS_UTIL_PERF_ENABLE (bool): Allow use of hardware performance counters; if disabled, stub implementation of counter that always returns 0 will be used (=1)
* SDGPS_UTIL_PLOT_FILE_USE_BINARY_FORMAT (bool): make PLOT_FILE use binary format (=0)
* SDGPS_UTIL_PUBLISHER_CHUNK_SIZE (int): Set the maximum amount of data (in bytes) that util::Publisher will provide to a single write() call (=65536)
* SDGPS_UTIL_PUBLISHER_DEBUG (bool): Enable debug messages from util::Publisher (=0)
* SDGPS_UTIL_PUBLISHER_MAX_CLIENTS (int): Allow this many simultaneous client connections per util::Publisher instance (=8)
* SDGPS_UTIL_PUBLISHER_MAX_DELAY (sdgps::util::Time<sdgps::util::TimeOffset_detail::TimeOffset<sdgps::util::TypeList<>, sdgps::util::TypeList<> > >): Set the maximum amount of time (in seconds) that util::Publisher will coalesce writes for (=0.100000000000000000)
* SDGPS_UTIL_PUBLISHER_MAX_HEADER_SIZE (int): Set the maximum amount of header data (in bytes) that util::Publisher will be able to handle without dynamically allocating memory when a client connects (=1048576)
* SDGPS_UTIL_STACK_TRACE_DISABLE_COLOR (bool): Do not force ANSI color codes in stack traces (=0)
* SDGPS_UTIL_SUDO_ALLOWED (bool): Allow use of "sudo" command to elevate permissions to access hardware (e.g. /dev/mem) as non-root user (=0)
* SDGPS_UTIL_TCP_CONNECT_DEBUG (bool): Enable verbose logging in util::tcp::connect() for debugging purposes (=0)
* STATLOG_FILE (string): Enable StatLog output to this file
* STATLOG_PLOT (bool): Enable StatLog output to a plot (=0)
* STATLOG_PLOT_POINTS (int): Only keep the most recent N plot points (=1000)
* STATLOG_PORT (int): Enable StatLog output via a TCP server listening on this port
* STATLOG_RATE (sdgps::interfaces::SampleRate): StatLog output rate (units: Hz) (=1)
* STATLOG_REGEX (sdgps::util::regex): Limit the keys that are captured to ones that match this regex (=.*)
* UHD_IMAGES_DIR (string): Directory to search for UHD images (=/tmp/cache_cmd_work.t1lj1czg/w/sdgps_GIT_VERSION/build/hw/uhd/images)
Available plotting backends:
* plot_client_x11: triggered by DISPLAY environment variable being set
* plot_client_xvfb: triggered by SDGPS_PLOT_USE_XVFB environment variable being set
* plot_file: triggered by PLOT_FILE environment variable being set
* plot_server_tcp: triggered by PLOT_PORT environment variable being set
* plot_server_unix: triggered by SDGPS_PLOT_UNIX_SOCKET environment variable being set
version GIT_VERSION-0-g20b00a0