diff --git a/QtRocket.cpp b/QtRocket.cpp index eca81cb..88703e6 100644 --- a/QtRocket.cpp +++ b/QtRocket.cpp @@ -103,10 +103,6 @@ int QtRocket::run(int argc, char* argv[]) void QtRocket::addMotorModels(std::vector& m) { - for(const auto& i : m) - { - motorModels.push_back(i); - } - motorDatabase->addMotorModels(motorModels); + motorDatabase->addMotorModels(m); // TODO: Now clear any duplicates? } diff --git a/QtRocket.h b/QtRocket.h index ef21c17..88a719a 100644 --- a/QtRocket.h +++ b/QtRocket.h @@ -50,8 +50,6 @@ public: void addMotorModels(std::vector& m); - const std::vector& getMotorModels() const { return motorModels; } - void addRocket(std::shared_ptr r) { rocket.first = r; } void setEnvironment(std::shared_ptr e) { environment = e; } @@ -66,9 +64,6 @@ private: static std::mutex mtx; static QtRocket* instance; - // Motor "database(s)" - std::vector motorModels; - utils::Logger* logger; std::pair, std::shared_ptr> rocket; diff --git a/model/Rocket.h b/model/Rocket.h index 72345a4..f802d70 100644 --- a/model/Rocket.h +++ b/model/Rocket.h @@ -107,6 +107,8 @@ public: void setName(const std::string& n) { name = n; } private: + + std::vector bodyFrameState{ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }; std::string name; /// Rocket name sim::Propagator propagator; /// propagator double dragCoeff; /// @todo get rid of this, should be dynamically calculated diff --git a/utils/MotorModelDatabase.cpp b/utils/MotorModelDatabase.cpp index c36baa8..43958c7 100644 --- a/utils/MotorModelDatabase.cpp +++ b/utils/MotorModelDatabase.cpp @@ -4,8 +4,6 @@ /// \cond // C headers // C++ headers -#include -#include // 3rd party headers #include #include @@ -70,20 +68,6 @@ std::optional MotorModelDatabase::getMotorModel(const std::st void MotorModelDatabase::saveMotorDatabase(const std::string& filename) { -/* - - - 1.0 - - - 10.0 - 123.4 - - - - -*/ - namespace pt = boost::property_tree; // top-level tree @@ -114,6 +98,14 @@ void MotorModelDatabase::saveMotorDatabase(const std::string& filename) motor.put("type", m.data.type.str()); motor.put("lastUpdated", m.data.lastUpdated); + std::stringstream delays; + for (std::size_t i = 0; i < m.data.delays.size() - 1; ++i) + { + delays << std::to_string(m.data.delays[i]) << ","; + } + delays << std::to_string(m.data.delays[m.data.delays.size() - 1]); + motor.put("delays", delays.str()); + // thrust data { pt::ptree tc; diff --git a/utils/RSEDatabaseLoader.cpp b/utils/RSEDatabaseLoader.cpp index 111aa21..83b52d5 100644 --- a/utils/RSEDatabaseLoader.cpp +++ b/utils/RSEDatabaseLoader.cpp @@ -5,6 +5,7 @@ #include #include #include +#include // 3rd party headers #include @@ -58,6 +59,16 @@ void RSEDatabaseLoader::buildAndAppendMotorModel(boost::property_tree::ptree& v) mm.commonName = v.get(".code", ""); // mm.delays = extract vector from csv list + std::string delays = v.get(".delays", "1000"); + std::size_t pos{0}; + std::string tok; + while ((pos = delays.find(",")) != std::string::npos) + { + tok = delays.substr(0, pos); + mm.delays.push_back(std::atoi(tok.c_str())); + delays.erase(0, pos + 1); + } + mm.delays.push_back(std::atoi(delays.c_str())); // mm.designation = What is this?