Skip to content

Commit 609071e

Browse files
committed
Removed config.example.json, creating new in runtime if needed.
1 parent 34566c7 commit 609071e

File tree

9 files changed

+40
-65
lines changed

9 files changed

+40
-65
lines changed

Dockerfile

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ CMD ["/usr/bin/auto_sdr_test"]
5555
FROM run
5656
RUN mkdir -p /app && \
5757
mkdir -p /config
58-
COPY config.example.json /config/
5958
COPY --from=build /usr/local/lib/libsdrplay_api.so* /usr/local/lib/
6059
COPY --from=build /usr/local/bin/sdrplay_apiService /usr/local/bin/
6160
COPY --from=build /usr/local/lib/SoapySDR/modules0.8/libsdrPlaySupport.so /usr/local/lib/SoapySDR/modules0.8/

config.example.json

Lines changed: 0 additions & 23 deletions
This file was deleted.

entrypoint/entrypoint_run.sh

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,4 @@
11
#!/bin/sh
22

3-
if [ ! -f /app/config.json ]; then
4-
echo "Not found /app/config.json - copying default"
5-
cp /config/config.example.json /app/config.json
6-
fi
73
sdrplay_apiService &
84
/usr/bin/auto_sdr --config /app/config.json --mqtt-url "$MQTT_URL" --mqtt-user "$MQTT_USER" --mqtt-password "$MQTT_PASSWORD"

sources/arg_config.h

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#pragma once
2+
3+
#include <string>
4+
5+
struct ArgConfig {
6+
std::string configFile;
7+
std::string id;
8+
std::string logFileName = "sdr_scanner.log"; // default log filename
9+
int logFileCount = 9; // default keep last n log files
10+
int logFileSize = 10 * 1024 * 1024; // default single log file max size
11+
std::string mqttUrl;
12+
std::string mqttUser;
13+
std::string mqttPassword;
14+
};

sources/config.cpp

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,18 @@ Config Config::loadFromFile(const std::string& path, const ArgConfig& argConfig)
3838
SdrDeviceReader::updateDevices(fileConfig.devices);
3939
return Config(argConfig, fileConfig);
4040
} catch (const nlohmann::json::parse_error& exception) {
41-
throw std::runtime_error(fmt::format("can not parse config file, invalid json format: {}", path));
41+
Logger::info(LABEL, "config parse error, creating default");
42+
FileConfig fileConfig;
43+
SdrDeviceReader::updateDevices(fileConfig.devices);
44+
Config::saveToFile(path, static_cast<nlohmann::json>(fileConfig));
45+
return Config(argConfig, fileConfig);
4246
}
4347
} else {
44-
throw std::runtime_error(fmt::format("can not parse config file, file not found: {}", path));
48+
Logger::info(LABEL, "config not found, creating default");
49+
FileConfig fileConfig;
50+
SdrDeviceReader::updateDevices(fileConfig.devices);
51+
Config::saveToFile(path, static_cast<nlohmann::json>(fileConfig));
52+
return Config(argConfig, fileConfig);
4553
}
4654
}
4755

sources/config.h

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#pragma once
22

3+
#include <arg_config.h>
34
#include <file_config.h>
45
#include <logger.h>
56
#include <radio/help_structures.h>
@@ -35,17 +36,6 @@ constexpr auto SPECTROGRAM_PREFERRED_MAX_STEP = 1000; //
3536
constexpr auto SPECTROGRAM_MAX_FFT = 16384; // spectrogram fft limit
3637
constexpr auto SPECTROGRAM_SEND_INTERVAL = std::chrono::milliseconds(1000); // send spectrogram data interval
3738

38-
struct ArgConfig {
39-
std::string configFile;
40-
std::string id;
41-
std::string logFileName = "sdr_scanner.log"; // default log filename
42-
int logFileCount = 9; // default keep last n log files
43-
int logFileSize = 10 * 1024 * 1024; // default single log file max size
44-
std::string mqttUrl;
45-
std::string mqttUser;
46-
std::string mqttPassword;
47-
};
48-
4939
class Config {
5040
public:
5141
static Config loadFromFile(const std::string& path, const ArgConfig& argConfig);

sources/config_migrator.cpp

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,4 @@ void ConfigMigrator::applyVersion(nlohmann::json& config, const int version) {
3636
config["version"] = version;
3737
}
3838

39-
void ConfigMigrator::applyVersion2(nlohmann::json& config) {
40-
applyVersion(config, 2);
41-
config["api_key"] = "";
42-
config["position"]["latitude"] = "0.000000";
43-
config["position"]["longitude"] = "0.000000";
44-
config["position"]["altitude"] = 0;
45-
46-
for (auto& device : config.at("devices")) {
47-
device["satellites"] = nlohmann::json::array();
48-
}
49-
}
39+
void ConfigMigrator::applyVersion2(nlohmann::json& config) { std::ignore = config; }

sources/file_config.h

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,24 +13,24 @@ struct IgnoredFrequency {
1313
NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(IgnoredFrequency, frequency, bandwidth)
1414

1515
struct OutputConfig {
16-
bool color_log_enabled;
17-
std::string console_log_level;
18-
std::string file_log_level;
16+
bool color_log_enabled = true;
17+
std::string console_log_level = "info";
18+
std::string file_log_level = "debug";
1919
};
2020
NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(OutputConfig, color_log_enabled, console_log_level, file_log_level)
2121

2222
struct PositionConfig {
23-
std::string latitude;
24-
std::string longitude;
25-
int altitude;
23+
std::string latitude = "0.000000";
24+
std::string longitude = "0.000000";
25+
int altitude = 0;
2626
};
2727
NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(PositionConfig, latitude, longitude, altitude)
2828

2929
struct RecordingConfig {
30-
Frequency min_sample_rate;
31-
std::chrono::milliseconds min_time_ms;
32-
std::chrono::milliseconds max_noise_time_ms;
33-
Frequency step;
30+
Frequency min_sample_rate = 32000;
31+
std::chrono::milliseconds min_time_ms = std::chrono::milliseconds(2000);
32+
std::chrono::milliseconds max_noise_time_ms = std::chrono::milliseconds(2000);
33+
Frequency step = 2500;
3434
};
3535
NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(RecordingConfig, min_sample_rate, min_time_ms, max_noise_time_ms, step)
3636

@@ -41,6 +41,7 @@ struct FileConfig {
4141
OutputConfig output;
4242
PositionConfig position;
4343
RecordingConfig recording;
44-
int workers;
44+
int version = 1;
45+
int workers = 0;
4546
};
46-
NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(FileConfig, api_key, devices, ignored_frequencies, output, position, recording, workers)
47+
NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(FileConfig, api_key, devices, ignored_frequencies, output, position, recording, version, workers)

sources/main.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ int main(int argc, char** argv) {
2424
argv = app.ensure_utf8(argv);
2525

2626
ArgConfig argConfig;
27-
app.add_option("--config", argConfig.configFile, "config file")->required()->check(CLI::ExistingFile);
27+
app.add_option("--config", argConfig.configFile, "config file")->required();
2828
app.add_option("--id", argConfig.id);
2929
app.add_option("--log-file", argConfig.logFileName, "log file");
3030
app.add_option("--log-file-count", argConfig.logFileCount, "log file count")->check(CLI::PositiveNumber);

0 commit comments

Comments
 (0)