修复问题
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
#include "../server/Global.h"
|
||||
#include "../server/Performance_Monitor.h"
|
||||
#include "../server/WebSocket_Manager.h"
|
||||
|
||||
#include <tuple>
|
||||
#include <algorithm>
|
||||
#include <chrono>
|
||||
#include <cmath>
|
||||
@@ -290,7 +290,7 @@ void register_aircraft_stream_ws() {
|
||||
}
|
||||
}
|
||||
Aircraft::Aircraft(std::string_view icao) : Aircraft_Info(icao) {
|
||||
auto size = Global::instance()->mode_acs.settings.member<&Mode_ACS_Config_Data::max_track_point_size>().snapshot();
|
||||
auto size = Global::instance()->mode_acs.settings.member<&Mode_ACS_Config_Data::max_track_point_size>().read([](const auto& value) { return value; });
|
||||
air_pos_track_list.init(size);
|
||||
surface_pos_track_list.init(size);
|
||||
}
|
||||
@@ -332,7 +332,7 @@ void DataBase::delete_timeout_aircraft() {
|
||||
std::cout << "未初始化的 timestamp " << LOG_POS << std::endl;
|
||||
}
|
||||
long long time = std::time(nullptr) - item->timestamp;
|
||||
return time > Global::instance()->mode_acs.settings.member<&Mode_ACS_Config_Data::timeout_seconds>().snapshot();
|
||||
return time > Global::instance()->mode_acs.settings.member<&Mode_ACS_Config_Data::timeout_seconds>().read([](const auto& value) { return value; });
|
||||
});
|
||||
}
|
||||
|
||||
@@ -360,16 +360,17 @@ std::vector<std::shared_ptr<SSR::Aircraft_Info>>
|
||||
DataBase::get_visible_aircraft_snapshot() {
|
||||
std::vector<std::shared_ptr<SSR::Aircraft_Info>> ret;
|
||||
auto g = Global::instance();
|
||||
auto min_position_points =
|
||||
g->mode_acs.settings.member<&Mode_ACS_Config_Data::aircraft_change_list_min_position_points>().snapshot();
|
||||
auto range_filter = g->mode_acs.settings.member<&Mode_ACS_Config_Data::aircraft_change_list_adsb_range_filter>().snapshot();
|
||||
auto range_factor = g->mode_acs.settings.member<&Mode_ACS_Config_Data::aircraft_change_list_adsb_range_factor>().snapshot();
|
||||
const auto [min_position_points, range_filter, range_factor] = g->mode_acs.settings.read([](const auto& value) {
|
||||
return std::tuple{value.aircraft_change_list_min_position_points, value.aircraft_change_list_adsb_range_filter, value.aircraft_change_list_adsb_range_factor};
|
||||
});
|
||||
auto source = g->source(get_key());
|
||||
auto base_position = base_station.get_pos();
|
||||
if (source) {
|
||||
const auto source_config = source->settings.snapshot();
|
||||
if (!base_position && source_config.base_station_has_valid_position) {
|
||||
base_position = SSR::Position_3D{source_config.lat, source_config.lon, source_config.alt};
|
||||
const auto [valid_position, lat, lon, alt] = source->settings.read([](const auto& value) {
|
||||
return std::tuple{value.base_station_has_valid_position, value.lat, value.lon, value.alt};
|
||||
});
|
||||
if (!base_position && valid_position) {
|
||||
base_position = SSR::Position_3D{lat, lon, alt};
|
||||
}
|
||||
}
|
||||
for (auto &it : aircraft_map.values()) {
|
||||
@@ -541,13 +542,14 @@ void database_server(Global *g) {
|
||||
if (db) {
|
||||
ret = db->base_station.to_Json();
|
||||
auto target_height =
|
||||
g->mode_acs.settings.member<&Mode_ACS_Config_Data::adsb_theoretical_target_altitude_meters>().snapshot();
|
||||
const auto source_config = db->settings.snapshot();
|
||||
auto range = Base_Station::theoretical_detection_range_meters(source_config.alt,
|
||||
target_height);
|
||||
ret.append({"latitude", source_config.lat});
|
||||
ret.append({"longitude", source_config.lon});
|
||||
ret.append({"height", source_config.alt});
|
||||
g->mode_acs.settings.member<&Mode_ACS_Config_Data::adsb_theoretical_target_altitude_meters>().read([](const auto& value) { return value; });
|
||||
const auto [lat, lon, alt] = db->settings.read([](const auto& value) {
|
||||
return std::tuple{value.lat, value.lon, value.alt};
|
||||
});
|
||||
auto range = Base_Station::theoretical_detection_range_meters(alt, target_height);
|
||||
ret.append({"latitude", lat});
|
||||
ret.append({"longitude", lon});
|
||||
ret.append({"height", alt});
|
||||
ret.append({"adsb_theoretical_target_altitude_meters", target_height});
|
||||
ret.append({"adsb_theoretical_detection_range_meters", range});
|
||||
ret.append({"理论探测范围", range});
|
||||
@@ -615,7 +617,7 @@ void database_server(Global *g) {
|
||||
return;
|
||||
}
|
||||
|
||||
auto limit_msg_num = g->mode_acs.settings.member<&Mode_ACS_Config_Data::default_min_aircraft_list_num>().snapshot();
|
||||
auto limit_msg_num = g->mode_acs.settings.member<&Mode_ACS_Config_Data::default_min_aircraft_list_num>().read([](const auto& value) { return value; });
|
||||
auto t = params.get("limit_msg_num");
|
||||
if (t) {
|
||||
HTTP_REQUIRE_VALUE(requested_limit_msg_num, t->try_number_val<int>())
|
||||
|
||||
Reference in New Issue
Block a user