From 3339a407807a19af8285083517decd565bc8f084 Mon Sep 17 00:00:00 2001 From: Dan Paulat Date: Sat, 11 Jun 2022 06:35:53 -0500 Subject: [PATCH] Fixing warnings in wxdata --- wxdata/include/scwx/util/logger.hpp | 2 ++ wxdata/include/scwx/util/time.hpp | 2 +- wxdata/source/scwx/awips/coded_location.cpp | 2 +- wxdata/source/scwx/common/color_table.cpp | 12 ++++++------ wxdata/source/scwx/common/products.cpp | 2 +- wxdata/source/scwx/util/time.cpp | 2 +- wxdata/source/scwx/wsr88d/ar2v_file.cpp | 18 +++++++++--------- wxdata/source/scwx/wsr88d/level3_file.cpp | 2 -- .../scwx/wsr88d/rda/level2_message_factory.cpp | 2 +- ...digital_precipitation_data_array_packet.cpp | 2 -- .../wsr88d/rpg/graphic_product_message.cpp | 1 - .../scwx/wsr88d/rpg/level3_message_factory.cpp | 3 +-- .../source/scwx/wsr88d/rpg/packet_factory.cpp | 2 +- .../precipitation_rate_data_array_packet.cpp | 2 -- .../wsr88d/rpg/product_description_block.cpp | 14 +++++++------- .../scwx/wsr88d/rpg/raster_data_packet.cpp | 4 +--- wxdata/wxdata.cmake | 7 ++++--- 17 files changed, 36 insertions(+), 43 deletions(-) diff --git a/wxdata/include/scwx/util/logger.hpp b/wxdata/include/scwx/util/logger.hpp index b9c4442e..7c3e5119 100644 --- a/wxdata/include/scwx/util/logger.hpp +++ b/wxdata/include/scwx/util/logger.hpp @@ -3,7 +3,9 @@ #include #include +#pragma warning(push, 0) #include +#pragma warning(pop) namespace scwx { diff --git a/wxdata/include/scwx/util/time.hpp b/wxdata/include/scwx/util/time.hpp index 2887d227..a5c87a11 100644 --- a/wxdata/include/scwx/util/time.hpp +++ b/wxdata/include/scwx/util/time.hpp @@ -7,7 +7,7 @@ namespace scwx namespace util { -std::chrono::system_clock::time_point TimePoint(uint16_t modifiedJulianDate, +std::chrono::system_clock::time_point TimePoint(uint32_t modifiedJulianDate, uint32_t milliseconds); std::string TimeString(std::chrono::system_clock::time_point time, diff --git a/wxdata/source/scwx/awips/coded_location.cpp b/wxdata/source/scwx/awips/coded_location.cpp index fb93b9fb..14f4f32c 100644 --- a/wxdata/source/scwx/awips/coded_location.cpp +++ b/wxdata/source/scwx/awips/coded_location.cpp @@ -41,7 +41,7 @@ bool CodedLocation::Parse(const StringRange& lines, const std::string& wfo) }; bool dataValid = true; - LocationFormat format; + LocationFormat format {}; std::vector tokenList; diff --git a/wxdata/source/scwx/common/color_table.cpp b/wxdata/source/scwx/common/color_table.cpp index 48d9f0ea..83fc01ee 100644 --- a/wxdata/source/scwx/common/color_table.cpp +++ b/wxdata/source/scwx/common/color_table.cpp @@ -306,17 +306,17 @@ ParseColor(const std::vector& tokenList, template T RoundChannel(double value) { - return std::clamp(std::lround(value), - std::numeric_limits::min(), - std::numeric_limits::max()); + return static_cast(std::clamp(std::lround(value), + std::numeric_limits::min(), + std::numeric_limits::max())); } template T StringToDecimal(const std::string& str) { - return std::clamp(std::stoi(str), - std::numeric_limits::min(), - std::numeric_limits::max()); + return static_cast(std::clamp(std::stoi(str), + std::numeric_limits::min(), + std::numeric_limits::max())); } } // namespace common diff --git a/wxdata/source/scwx/common/products.cpp b/wxdata/source/scwx/common/products.cpp index fb916e8a..aa127267 100644 --- a/wxdata/source/scwx/common/products.cpp +++ b/wxdata/source/scwx/common/products.cpp @@ -77,7 +77,7 @@ static const std::unordered_map {Level3ProductCategory::SpecificDifferentialPhase, "N0K"}, {Level3ProductCategory::CorrelationCoefficient, "N0C"}}; -static const std::unordered_map level3Palette_ { +static const std::unordered_map level3Palette_ { {19, "BR"}, {20, "BR"}, {27, "BV"}, {30, "SW"}, {31, "STPIN"}, {32, "BR"}, {37, "BR"}, {38, "BR"}, {41, "ET"}, {50, "BR"}, {51, "BV"}, {56, "SRV"}, diff --git a/wxdata/source/scwx/util/time.cpp b/wxdata/source/scwx/util/time.cpp index f3ec677e..05983b18 100644 --- a/wxdata/source/scwx/util/time.cpp +++ b/wxdata/source/scwx/util/time.cpp @@ -10,7 +10,7 @@ namespace scwx namespace util { -std::chrono::system_clock::time_point TimePoint(uint16_t modifiedJulianDate, +std::chrono::system_clock::time_point TimePoint(uint32_t modifiedJulianDate, uint32_t milliseconds) { using namespace std::chrono; diff --git a/wxdata/source/scwx/wsr88d/ar2v_file.cpp b/wxdata/source/scwx/wsr88d/ar2v_file.cpp index 72f501ff..e2893970 100644 --- a/wxdata/source/scwx/wsr88d/ar2v_file.cpp +++ b/wxdata/source/scwx/wsr88d/ar2v_file.cpp @@ -112,9 +112,9 @@ std::shared_ptr Ar2vFile::vcp_data() const } std::tuple, float, std::vector> -Ar2vFile::GetElevationScan(rda::DataBlockType dataBlockType, - float elevation, - std::chrono::system_clock::time_point time) const +Ar2vFile::GetElevationScan(rda::DataBlockType dataBlockType, + float elevation, + std::chrono::system_clock::time_point /*time*/) const { logger_->debug("GetElevationScan: {} degrees", elevation); @@ -148,10 +148,10 @@ Ar2vFile::GetElevationScan(rda::DataBlockType dataBlockType, elevationCuts.push_back(scan.first / scaleFactor); } - uint16_t lowerDelta = std::abs(static_cast(codedElevation) - - static_cast(lowerBound)); - uint16_t upperDelta = std::abs(static_cast(codedElevation) - - static_cast(upperBound)); + int32_t lowerDelta = std::abs(static_cast(codedElevation) - + static_cast(lowerBound)); + int32_t upperDelta = std::abs(static_cast(codedElevation) - + static_cast(upperBound)); if (lowerDelta < upperDelta) { @@ -278,8 +278,8 @@ size_t Ar2vFileImpl::DecompressLDMRecords(std::istream& is) } catch (const boost::iostreams::bzip2_error& ex) { - int error = ex.error(); - logger_->warn("Error decompressing record {}", numRecords); + logger_->warn( + "Error decompressing record {}: {}", numRecords, ex.what()); is.seekg(startPosition + std::streampos(recordSize), std::ios_base::beg); diff --git a/wxdata/source/scwx/wsr88d/level3_file.cpp b/wxdata/source/scwx/wsr88d/level3_file.cpp index eb5613fc..06bb6c08 100644 --- a/wxdata/source/scwx/wsr88d/level3_file.cpp +++ b/wxdata/source/scwx/wsr88d/level3_file.cpp @@ -139,8 +139,6 @@ bool Level3FileImpl::DecompressFile(std::istream& is, std::stringstream& ss) } catch (const boost::iostreams::zlib_error& ex) { - int error = ex.error(); - logger_->warn("Error decompressing data: {}", ex.what()); dataValid = false; diff --git a/wxdata/source/scwx/wsr88d/rda/level2_message_factory.cpp b/wxdata/source/scwx/wsr88d/rda/level2_message_factory.cpp index 520a3c43..48d2d8d7 100644 --- a/wxdata/source/scwx/wsr88d/rda/level2_message_factory.cpp +++ b/wxdata/source/scwx/wsr88d/rda/level2_message_factory.cpp @@ -28,7 +28,7 @@ typedef std::function(Level2MessageHeader&&, std::istream&)> CreateLevel2MessageFunction; -static const std::unordered_map create_ { +static const std::unordered_map create_ { {2, RdaStatusData::Create}, {3, PerformanceMaintenanceData::Create}, {5, VolumeCoveragePatternData::Create}, diff --git a/wxdata/source/scwx/wsr88d/rpg/digital_precipitation_data_array_packet.cpp b/wxdata/source/scwx/wsr88d/rpg/digital_precipitation_data_array_packet.cpp index 10aa2688..64610e5c 100644 --- a/wxdata/source/scwx/wsr88d/rpg/digital_precipitation_data_array_packet.cpp +++ b/wxdata/source/scwx/wsr88d/rpg/digital_precipitation_data_array_packet.cpp @@ -120,8 +120,6 @@ bool DigitalPrecipitationDataArrayPacket::Parse(std::istream& is) for (uint16_t r = 0; r < p->numberOfRows_; r++) { - size_t rowBytesRead = 0; - auto& row = p->row_[r]; is.read(reinterpret_cast(&row.numberOfBytes_), 2); diff --git a/wxdata/source/scwx/wsr88d/rpg/graphic_product_message.cpp b/wxdata/source/scwx/wsr88d/rpg/graphic_product_message.cpp index b41d7aeb..4fc2d65e 100644 --- a/wxdata/source/scwx/wsr88d/rpg/graphic_product_message.cpp +++ b/wxdata/source/scwx/wsr88d/rpg/graphic_product_message.cpp @@ -109,7 +109,6 @@ bool GraphicProductMessage::Parse(std::istream& is) } catch (const boost::iostreams::bzip2_error& ex) { - int error = ex.error(); logger_->warn("Error decompressing data: {}", ex.what()); dataValid = false; diff --git a/wxdata/source/scwx/wsr88d/rpg/level3_message_factory.cpp b/wxdata/source/scwx/wsr88d/rpg/level3_message_factory.cpp index 66665327..595f1da0 100644 --- a/wxdata/source/scwx/wsr88d/rpg/level3_message_factory.cpp +++ b/wxdata/source/scwx/wsr88d/rpg/level3_message_factory.cpp @@ -25,7 +25,7 @@ typedef std::function(Level3MessageHeader&&, std::istream&)> CreateLevel3MessageFunction; -static const std::unordered_map // +static const std::unordered_map // create_ {{2, GeneralStatusMessage::Create}, {19, GraphicProductMessage::Create}, {20, GraphicProductMessage::Create}, @@ -140,7 +140,6 @@ std::shared_ptr Level3MessageFactory::Create(std::istream& is) if (messageValid) { int16_t messageCode = header.message_code(); - size_t dataSize = header.length_of_message() - Level3MessageHeader::SIZE; logger_->debug("Found Message {}", messageCode); diff --git a/wxdata/source/scwx/wsr88d/rpg/packet_factory.cpp b/wxdata/source/scwx/wsr88d/rpg/packet_factory.cpp index def24f5d..01f91339 100644 --- a/wxdata/source/scwx/wsr88d/rpg/packet_factory.cpp +++ b/wxdata/source/scwx/wsr88d/rpg/packet_factory.cpp @@ -40,7 +40,7 @@ static const auto logger_ = util::Logger::Create(logPrefix_); typedef std::function(std::istream&)> CreateMessageFunction; -static const std::unordered_map create_ { +static const std::unordered_map create_ { {1, TextAndSpecialSymbolPacket::Create}, {2, TextAndSpecialSymbolPacket::Create}, {3, MesocycloneSymbolPacket::Create}, diff --git a/wxdata/source/scwx/wsr88d/rpg/precipitation_rate_data_array_packet.cpp b/wxdata/source/scwx/wsr88d/rpg/precipitation_rate_data_array_packet.cpp index 03dbc722..a87bd3bd 100644 --- a/wxdata/source/scwx/wsr88d/rpg/precipitation_rate_data_array_packet.cpp +++ b/wxdata/source/scwx/wsr88d/rpg/precipitation_rate_data_array_packet.cpp @@ -117,8 +117,6 @@ bool PrecipitationRateDataArrayPacket::Parse(std::istream& is) for (uint16_t r = 0; r < p->numberOfRows_; r++) { - size_t rowBytesRead = 0; - auto& row = p->row_[r]; is.read(reinterpret_cast(&row.numberOfBytes_), 2); diff --git a/wxdata/source/scwx/wsr88d/rpg/product_description_block.cpp b/wxdata/source/scwx/wsr88d/rpg/product_description_block.cpp index 38b17372..2dc0e868 100644 --- a/wxdata/source/scwx/wsr88d/rpg/product_description_block.cpp +++ b/wxdata/source/scwx/wsr88d/rpg/product_description_block.cpp @@ -18,12 +18,12 @@ static const std::string logPrefix_ = "scwx::wsr88d::rpg::product_description_block"; static const auto logger_ = util::Logger::Create(logPrefix_); -static const std::set compressedProducts_ = { +static const std::set compressedProducts_ = { 32, 94, 99, 134, 135, 138, 149, 152, 153, 154, 155, 159, 161, 163, 165, 167, 168, 170, 172, 173, 174, 175, 176, 177, 178, 179, 180, 182, 186, 193, 195, 202}; -static const std::unordered_map rangeMap_ { +static const std::unordered_map rangeMap_ { {19, 230}, {20, 460}, {27, 230}, {30, 230}, {31, 230}, {32, 230}, {37, 230}, {38, 460}, {41, 230}, {50, 230}, {51, 230}, {56, 230}, {57, 230}, {58, 460}, {59, 230}, {61, 230}, {62, 460}, {65, 230}, @@ -38,7 +38,7 @@ static const std::unordered_map rangeMap_ { {176, 230}, {177, 230}, {178, 300}, {179, 300}, {180, 89}, {181, 89}, {182, 89}, {184, 89}, {186, 412}, {193, 460}, {195, 460}, {196, 50}}; -static const std::unordered_map xResolutionMap_ { +static const std::unordered_map xResolutionMap_ { {19, 1000}, {20, 2000}, {27, 1000}, {30, 1000}, {31, 2000}, {32, 1000}, {33, 1000}, {34, 1000}, {37, 1000}, {38, 4000}, {41, 4000}, {50, 1000}, {51, 1000}, {56, 1000}, {57, 4000}, {65, 4000}, {66, 4000}, {67, 4000}, @@ -52,7 +52,7 @@ static const std::unordered_map xResolutionMap_ { {178, 1000}, {179, 1000}, {180, 150}, {181, 150}, {182, 150}, {184, 150}, {186, 300}, {193, 250}, {195, 1000}}; -static const std::unordered_map yResolutionMap_ {{37, 1000}, +static const std::unordered_map yResolutionMap_ {{37, 1000}, {38, 4000}, {41, 4000}, {50, 500}, @@ -255,7 +255,7 @@ uint16_t ProductDescriptionBlock::range_raw() const auto it = rangeMap_.find(p->productCode_); if (it != rangeMap_.cend()) { - range = it->second; + range = static_cast(it->second); } return range; @@ -273,7 +273,7 @@ uint16_t ProductDescriptionBlock::x_resolution_raw() const auto it = xResolutionMap_.find(p->productCode_); if (it != xResolutionMap_.cend()) { - xResolution = it->second; + xResolution = static_cast(it->second); } return xResolution; @@ -291,7 +291,7 @@ uint16_t ProductDescriptionBlock::y_resolution_raw() const auto it = yResolutionMap_.find(p->productCode_); if (it != yResolutionMap_.cend()) { - yResolution = it->second; + yResolution = static_cast(it->second); } return yResolution; diff --git a/wxdata/source/scwx/wsr88d/rpg/raster_data_packet.cpp b/wxdata/source/scwx/wsr88d/rpg/raster_data_packet.cpp index 5741e5a6..c0bf5557 100644 --- a/wxdata/source/scwx/wsr88d/rpg/raster_data_packet.cpp +++ b/wxdata/source/scwx/wsr88d/rpg/raster_data_packet.cpp @@ -184,8 +184,6 @@ bool RasterDataPacket::Parse(std::istream& is) for (uint16_t r = 0; r < p->numberOfRows_; r++) { - size_t rowBytesRead = 0; - auto& row = p->row_[r]; is.read(reinterpret_cast(&row.numberOfBytes_), 2); @@ -219,7 +217,7 @@ bool RasterDataPacket::Parse(std::istream& is) uint16_t binCount = std::accumulate(row.data_.cbegin(), row.data_.cend(), - 0, + static_cast(0u), [](const uint16_t& a, const uint8_t& b) -> uint16_t { return a + (b >> 4); }); diff --git a/wxdata/wxdata.cmake b/wxdata/wxdata.cmake index c741b03a..f1d63f0f 100644 --- a/wxdata/wxdata.cmake +++ b/wxdata/wxdata.cmake @@ -207,9 +207,10 @@ target_include_directories(wxdata PRIVATE ${Boost_INCLUDE_DIR} ${scwx-data_SOURCE_DIR}/source) target_include_directories(wxdata INTERFACE ${scwx-data_SOURCE_DIR}/include) -if(MSVC) - target_compile_options(wxdata PRIVATE /W3) -endif() +target_compile_options(wxdata PRIVATE + $<$:/W4 /WX> + $<$>:-Wall -Wextra -Wpedantic -Werror> +) target_link_libraries(wxdata PUBLIC AWS::s3 spdlog::spdlog)