diff --git a/scwx-qt/source/scwx/qt/manager/radar_product_manager.cpp b/scwx-qt/source/scwx/qt/manager/radar_product_manager.cpp index bc5e8b98..60cb1b31 100644 --- a/scwx-qt/source/scwx/qt/manager/radar_product_manager.cpp +++ b/scwx-qt/source/scwx/qt/manager/radar_product_manager.cpp @@ -231,7 +231,8 @@ public: LoadNexradFile(CreateNexradFileFunction load, std::shared_ptr request, std::mutex& mutex, - std::chrono::system_clock::time_point time = {}); + std::chrono::system_clock::time_point time = {}, + const std::string& radarId = {}); const std::string radarId_; bool initialized_; @@ -957,14 +958,15 @@ void RadarProductManagerImpl::LoadNexradFileAsync( { boost::asio::post(threadPool_, [=, &mutex]() - { LoadNexradFile(load, request, mutex, time); }); + { LoadNexradFile(load, request, mutex, time, radarId_); }); } void RadarProductManagerImpl::LoadNexradFile( CreateNexradFileFunction load, std::shared_ptr request, std::mutex& mutex, - std::chrono::system_clock::time_point time) + std::chrono::system_clock::time_point time, + const std::string& radarId) { std::unique_lock lock {mutex}; @@ -987,8 +989,14 @@ void RadarProductManagerImpl::LoadNexradFile( record->set_time(time); } + std::string recordRadarId = (record->radar_id()); + if (recordRadarId.empty()) + { + recordRadarId = radarId; + } + std::shared_ptr manager = - RadarProductManager::Instance(record->radar_id()); + RadarProductManager::Instance(recordRadarId); manager->Initialize(); record = manager->p->StoreRadarProductRecord(record); diff --git a/wxdata/source/scwx/wsr88d/nexrad_file_factory.cpp b/wxdata/source/scwx/wsr88d/nexrad_file_factory.cpp index ff5e241f..98d83ff2 100644 --- a/wxdata/source/scwx/wsr88d/nexrad_file_factory.cpp +++ b/wxdata/source/scwx/wsr88d/nexrad_file_factory.cpp @@ -114,14 +114,10 @@ std::shared_ptr NexradFileFactory::Create(std::istream& is) if (dataValid) { - if (buffer.starts_with("AR2V")) + if (buffer.starts_with("AR2V") || buffer.starts_with("ARCHIVE2")) { message = std::make_shared(); } - else if (buffer.starts_with("ARCHIVE2")) - { - logger_->warn("ARCHIVE2 format not supported"); - } else { message = std::make_shared();