From 42a778792fb01072b7f3a424514eb23a457e992f Mon Sep 17 00:00:00 2001 From: Dan Macumber Date: Wed, 6 Jul 2016 10:17:52 -0600 Subject: [PATCH] Fix version translation and backwards compatibility --- openstudiocore/ruby/openstudio.rb | 24 ++++++++++++++++++ openstudiocore/ruby/openstudio_dev.rb | 25 ++++++++++++++++++- .../src/openstudio_app/OpenStudioApp.cpp | 12 +++++++++ .../Resources/hvaclibrary/hvac_library.osm | 2 +- .../src/osversion/VersionTranslator.cpp | 12 ++++----- .../src/osversion/VersionTranslator.hpp | 2 +- 6 files changed, 68 insertions(+), 9 deletions(-) diff --git a/openstudiocore/ruby/openstudio.rb b/openstudiocore/ruby/openstudio.rb index 98b64e36463..928b3b60b06 100644 --- a/openstudiocore/ruby/openstudio.rb +++ b/openstudiocore/ruby/openstudio.rb @@ -198,8 +198,32 @@ # "typedefs" for backwards compatibility module OpenStudio + +# support for deprecated names +class IdfObject + def to_Meter + return to_OutputMeter + end +end + module Model +# support for deprecated names +class Model + def getMeter(handle) + return getOutputMeter(handle) + end + def getMeters + return getOutputMeters + end + def getMeterByName(name) + return getOutputMeterByName(name) + end + def getMetersByName(name) + return getOutputMetersByName(name) + end +end + # support for name deprecated as of 1.12.1 class Meter < OutputMeter end diff --git a/openstudiocore/ruby/openstudio_dev.rb b/openstudiocore/ruby/openstudio_dev.rb index 792f6529098..dfee2b88b95 100644 --- a/openstudiocore/ruby/openstudio_dev.rb +++ b/openstudiocore/ruby/openstudio_dev.rb @@ -113,7 +113,6 @@ require 'openstudiomodeleditor' require 'openstudioanalysis' require 'openstudiolib' -require 'openstudioosversion' require 'openstudioisomodel' require 'openstudiosdd' @@ -182,8 +181,32 @@ # "typedefs" for backwards compatibility module OpenStudio + +# support for deprecated names +class IdfObject + def to_Meter + return to_OutputMeter + end +end + module Model +# support for deprecated names +class Model + def getMeter(handle) + return getOutputMeter(handle) + end + def getMeters + return getOutputMeters + end + def getMeterByName(name) + return getOutputMeterByName(name) + end + def getMetersByName(name) + return getOutputMetersByName(name) + end +end + # support for name deprecated as of 1.12.1 class Meter < OutputMeter end diff --git a/openstudiocore/src/openstudio_app/OpenStudioApp.cpp b/openstudiocore/src/openstudio_app/OpenStudioApp.cpp index 9b6eef8e043..ca67b4e6f6e 100644 --- a/openstudiocore/src/openstudio_app/OpenStudioApp.cpp +++ b/openstudiocore/src/openstudio_app/OpenStudioApp.cpp @@ -304,12 +304,24 @@ void OpenStudioApp::buildCompLibraries() path p = resourcesPath() / toPath("MinimalTemplate.osm"); OS_ASSERT(exists(p)); boost::optional temp = versionTranslator.loadModel(p); + if (!temp){ + LOG_FREE(Error, "OpenStudioApp", "Failed to load MinimalTemplate"); + for (const auto& error : versionTranslator.errors()){ + LOG_FREE(Error, "OpenStudioApp", error.logMessage()); + } + } OS_ASSERT(temp); m_compLibrary = temp.get(); p = resourcesPath() / toPath("hvaclibrary/hvac_library.osm"); OS_ASSERT(exists(p)); temp = versionTranslator.loadModel(p); + if (!temp){ + LOG_FREE(Error, "OpenStudioApp", "Failed to load hvaclibrary"); + for (const auto& error : versionTranslator.errors()){ + LOG_FREE(Error, "OpenStudioApp", error.logMessage()); + } + } OS_ASSERT(temp); m_hvacCompLibrary = temp.get(); } diff --git a/openstudiocore/src/openstudio_app/Resources/hvaclibrary/hvac_library.osm b/openstudiocore/src/openstudio_app/Resources/hvaclibrary/hvac_library.osm index 2e7cd254a8b..75aef16ebd6 100644 --- a/openstudiocore/src/openstudio_app/Resources/hvaclibrary/hvac_library.osm +++ b/openstudiocore/src/openstudio_app/Resources/hvaclibrary/hvac_library.osm @@ -1,7 +1,7 @@ OS:Version, {d39ef75f-e352-424a-af0f-2c00d6612a2b}, !- Handle - 1.12.0; !- Version Identifier + 1.12.1; !- Version Identifier OS:Schedule:Constant, {9f54092d-a4a8-41b8-a381-c4c332ecb843}, !- Handle diff --git a/openstudiocore/src/osversion/VersionTranslator.cpp b/openstudiocore/src/osversion/VersionTranslator.cpp index bc0cc6cfcd6..e549f9c2434 100644 --- a/openstudiocore/src/osversion/VersionTranslator.cpp +++ b/openstudiocore/src/osversion/VersionTranslator.cpp @@ -106,7 +106,7 @@ VersionTranslator::VersionTranslator() m_updateMethods[VersionString("1.10.6")] = &VersionTranslator::update_1_10_5_to_1_10_6; m_updateMethods[VersionString("1.11.4")] = &VersionTranslator::update_1_11_3_to_1_11_4; m_updateMethods[VersionString("1.11.5")] = &VersionTranslator::update_1_11_4_to_1_11_5; - m_updateMethods[VersionString("1.12.1")] = &VersionTranslator::update_1_12_1_to_1_12_2; + m_updateMethods[VersionString("1.12.1")] = &VersionTranslator::update_1_12_0_to_1_12_1; m_updateMethods[VersionString("1.12.2")] = &VersionTranslator::defaultUpdate; @@ -3279,20 +3279,20 @@ std::string VersionTranslator::update_1_11_4_to_1_11_5(const IdfFile& idf_1_11_4 return ss.str(); } -std::string VersionTranslator::update_1_12_1_to_1_12_2(const IdfFile& idf_1_12_1, const IddFileAndFactoryWrapper& idd_1_12_2) { +std::string VersionTranslator::update_1_12_0_to_1_12_1(const IdfFile& idf_1_12_0, const IddFileAndFactoryWrapper& idd_1_12_1) { std::stringstream ss; - ss << idf_1_12_1.header() << std::endl << std::endl; + ss << idf_1_12_0.header() << std::endl << std::endl; // new version object - IdfFile targetIdf(idd_1_12_2.iddFile()); + IdfFile targetIdf(idd_1_12_1.iddFile()); ss << targetIdf.versionObject().get(); - for (const IdfObject& object : idf_1_12_1.objects()) { + for (const IdfObject& object : idf_1_12_0.objects()) { auto iddname = object.iddObject().name(); if (iddname == "OS:Meter") { - auto iddObject = idd_1_12_2.getObject("OS:OutputMeter"); + auto iddObject = idd_1_12_1.getObject("OS:Output:Meter"); IdfObject newObject(iddObject.get()); size_t newi = 0; diff --git a/openstudiocore/src/osversion/VersionTranslator.hpp b/openstudiocore/src/osversion/VersionTranslator.hpp index cc0d4b0b669..703e69ef7c2 100644 --- a/openstudiocore/src/osversion/VersionTranslator.hpp +++ b/openstudiocore/src/osversion/VersionTranslator.hpp @@ -202,7 +202,7 @@ class OSVERSION_API VersionTranslator { std::string update_1_10_5_to_1_10_6(const IdfFile& idf_1_10_5, const IddFileAndFactoryWrapper& idd_1_10_6); std::string update_1_11_3_to_1_11_4(const IdfFile& idf_1_11_3, const IddFileAndFactoryWrapper& idd_1_11_4); std::string update_1_11_4_to_1_11_5(const IdfFile& idf_1_11_4, const IddFileAndFactoryWrapper& idd_1_11_5); - std::string update_1_12_1_to_1_12_2(const IdfFile& idf_1_12_1, const IddFileAndFactoryWrapper& idd_1_12_2); + std::string update_1_12_0_to_1_12_1(const IdfFile& idf_1_12_0, const IddFileAndFactoryWrapper& idd_1_12_1); IdfObject updateUrlField_0_7_1_to_0_7_2(const IdfObject& object, unsigned index);