更新
This commit is contained in:
@@ -136,7 +136,9 @@ size_t Data_Source_Handler::process_mode_acs_data(std::string_view origin_data)
|
||||
}
|
||||
else if (mode_s) {
|
||||
// 拓展点
|
||||
handle_mode_s(std::dynamic_pointer_cast<SSR::Mode_S_Msg>(msg));
|
||||
auto mode_s_msg = std::dynamic_pointer_cast<SSR::Mode_S_Msg>(msg);
|
||||
source->push_to_feed(mode_s_msg);
|
||||
handle_mode_s(mode_s_msg);
|
||||
}
|
||||
else {
|
||||
source->push_to_feed(msg);
|
||||
@@ -156,17 +158,16 @@ size_t Data_Source_Handler::process_mode_acs_data(std::string_view origin_data)
|
||||
SSR::Binary_Format_handle_buffer(source->buffer, mode_data, f);
|
||||
return ret;
|
||||
}
|
||||
void Data_Source_Handler::handle_mode_s(std::shared_ptr<SSR::Mode_S_Msg> mode_s_msg) {
|
||||
void Data_Source_Handler::handle_mode_s(std::shared_ptr<SSR::Mode_S_Msg>& mode_s_msg) {
|
||||
auto source = ds(this);
|
||||
std::string t =
|
||||
mode_s_msg->mlat_timestamp.to_memory() + mode_s_msg->signal_level + Psc::hex2mem(mode_s_msg->msg_hex);
|
||||
auto p = mode_s_msg->packet.substr(2);
|
||||
if (t != p) {
|
||||
std::cout << mem2hex(t, true, " ") << std::endl;
|
||||
std::cout << mem2hex(mode_s_msg->packet, true, " ") << std::endl;
|
||||
std::cout << VAR_STR_2(t, mode_s_msg->packet) << std::endl;
|
||||
auto data = std::format("编解码出问题了(组合的数据,拼接的数据) hex:[{}] [{}] bin:[{}] [{}]",
|
||||
mem2hex(t, true, " "), mem2hex(mode_s_msg->packet, true, " "), t, mode_s_msg->packet);
|
||||
Psc::fail_fast(data);
|
||||
}
|
||||
source->push_to_feed(mode_s_msg);
|
||||
auto& cfg = Global::instance()->mode_acs;
|
||||
bool time_space_filter = cfg.time_space_filter.load();
|
||||
bool speed_filter = cfg.speed_filter.load();
|
||||
@@ -180,16 +181,9 @@ void Data_Source_Handler::handle_mode_s(std::shared_ptr<SSR::Mode_S_Msg> mode_s_
|
||||
SSR::ADS_B_T::Constraint air_constraint{cfg.max_speed_m_s, cfg.air_pos_timeout, SSR::cpr_cb, time_space_filter,
|
||||
speed_filter, use_system_time, base_station_pos, source->alt,
|
||||
range_filter, range_factor};
|
||||
SSR::ADS_B_T::Constraint surface_constraint{cfg.max_speed_m_s,
|
||||
cfg.surface_pos_timeout,
|
||||
SSR::cpr_cb,
|
||||
time_space_filter,
|
||||
speed_filter,
|
||||
use_system_time,
|
||||
base_station_pos,
|
||||
source->alt,
|
||||
range_filter,
|
||||
range_factor};
|
||||
SSR::ADS_B_T::Constraint surface_constraint{
|
||||
cfg.max_speed_m_s, cfg.surface_pos_timeout, SSR::cpr_cb, time_space_filter, speed_filter,
|
||||
use_system_time, base_station_pos, source->alt, range_filter, range_factor};
|
||||
SSR::parse_mode_s_bin(source.get(), mode_s_msg, base_station_pos, air_constraint, surface_constraint);
|
||||
auto base = source->get_aircraft(mode_s_msg->icao);
|
||||
if (base) {
|
||||
|
||||
Reference in New Issue
Block a user