diff --git a/sysid/src/main/native/cpp/analysis/AnalysisManager.cpp b/sysid/src/main/native/cpp/analysis/AnalysisManager.cpp index 1d7565b37b..b15cae84c8 100644 --- a/sysid/src/main/native/cpp/analysis/AnalysisManager.cpp +++ b/sysid/src/main/native/cpp/analysis/AnalysisManager.cpp @@ -12,9 +12,9 @@ #include #include #include +#include #include #include -#include #include "sysid/Util.h" #include "sysid/analysis/FilteringUtils.h" @@ -451,13 +451,13 @@ AnalysisManager::AnalysisManager(std::string_view path, Settings& settings, { // Read JSON from the specified path std::error_code ec; - wpi::raw_fd_istream is{path, ec}; - - if (ec) { + std::unique_ptr fileBuffer = + wpi::MemoryBuffer::GetFile(path, ec); + if (fileBuffer == nullptr || ec) { throw FileReadingError(path); } - is >> m_json; + m_json = wpi::json::parse(fileBuffer->begin(), fileBuffer->end()); WPI_INFO(m_logger, "Read {}", path); } @@ -469,13 +469,13 @@ AnalysisManager::AnalysisManager(std::string_view path, Settings& settings, // Read JSON from the specified path std::error_code ec; - wpi::raw_fd_istream is{newPath, ec}; - - if (ec) { + std::unique_ptr fileBuffer = + wpi::MemoryBuffer::GetFile(path, ec); + if (fileBuffer == nullptr || ec) { throw FileReadingError(newPath); } - is >> m_json; + m_json = wpi::json::parse(fileBuffer->begin(), fileBuffer->end()); WPI_INFO(m_logger, "Read {}", newPath); } diff --git a/sysid/src/main/native/cpp/analysis/JSONConverter.cpp b/sysid/src/main/native/cpp/analysis/JSONConverter.cpp index 54390349dd..9bab8c681e 100644 --- a/sysid/src/main/native/cpp/analysis/JSONConverter.cpp +++ b/sysid/src/main/native/cpp/analysis/JSONConverter.cpp @@ -10,9 +10,9 @@ #include #include #include +#include #include #include -#include #include #include "sysid/Util.h" @@ -34,14 +34,13 @@ static constexpr size_t kRVelCol = 8; static wpi::json GetJSON(std::string_view path, wpi::Logger& logger) { std::error_code ec; - wpi::raw_fd_istream input{path, ec}; - - if (ec) { + std::unique_ptr fileBuffer = + wpi::MemoryBuffer::GetFile(path, ec); + if (fileBuffer == nullptr || ec) { throw std::runtime_error(fmt::format("Unable to read: {}", path)); } - wpi::json json; - input >> json; + wpi::json json = wpi::json::parse(fileBuffer->begin(), fileBuffer->end()); WPI_INFO(logger, "Read frc-characterization JSON from {}", path); return json; } diff --git a/sysid/src/main/native/include/sysid/analysis/FilteringUtils.h b/sysid/src/main/native/include/sysid/analysis/FilteringUtils.h index 5884b3f2d0..9030c00753 100644 --- a/sysid/src/main/native/include/sysid/analysis/FilteringUtils.h +++ b/sysid/src/main/native/include/sysid/analysis/FilteringUtils.h @@ -16,6 +16,7 @@ #include #include +#include #include #include "sysid/analysis/AnalysisManager.h"