18#ifndef GNSS_SDR_GNSS_SDR_FLAGS_H
19#define GNSS_SDR_GNSS_SDR_FLAGS_H
24#if USE_GLOG_AND_GFLAGS
25#include <gflags/gflags.h>
27#include <absl/flags/declare.h>
28#include <absl/flags/flag.h>
42#if USE_GLOG_AND_GFLAGS
44DECLARE_string(config_file);
46DECLARE_string(log_dir);
50DECLARE_string(signal_source);
51DECLARE_string(timestamp_source);
52DECLARE_bool(rf_shutdown);
55DECLARE_int32(doppler_max);
56DECLARE_int32(doppler_step);
59DECLARE_int32(cn0_samples);
60DECLARE_int32(cn0_min);
61DECLARE_int32(max_lock_fail);
62DECLARE_int32(max_carrier_lock_fail);
63DECLARE_double(carrier_lock_th);
64DECLARE_double(dll_bw_hz);
65DECLARE_double(pll_bw_hz);
68DECLARE_int32(carrier_smoothing_factor);
69const int32_t DEFAULT_CARRIER_SMOOTHING_FACTOR = 200;
72DECLARE_string(RINEX_version);
73DECLARE_string(RINEX_name);
74DECLARE_bool(keyboard);
103const int32_t DEFAULT_CARRIER_SMOOTHING_FACTOR = 200;
110static inline void GetTempDirectories(std::vector<std::string>& list)
115 const char* candidates[] = {
117 std::getenv(
"TEST_TMPDIR"),
120 std::getenv(
"TMPDIR"),
126 for (
auto d : candidates)
131 std::string dstr = d;
132 if (dstr[dstr.size() - 1] !=
'/')
136 list.push_back(dstr);
139 if (!stat(d, &statbuf) && S_ISDIR(statbuf.st_mode))
148static inline void GetExistingTempDirectories(std::vector<std::string>& list)
150 GetTempDirectories(list);
151 auto i_dir = list.begin();
152 while (i_dir != list.end())
154 if (access(i_dir->c_str(), 0))
156 i_dir = list.erase(i_dir);
166static inline std::string GetTempDir()
168 std::vector<std::string> temp_directories_list;
169 GetExistingTempDirectories(temp_directories_list);
171 if (temp_directories_list.empty())
173 std::cerr <<
"No temporary directory found\n";
178 return temp_directories_list.front();
ABSL_DECLARE_FLAG(std::string, c)
Path to the configuration file.