adding doxygen comments
This commit is contained in:
		
							parent
							
								
									ed5ecc766c
								
							
						
					
					
						commit
						32c9cda4b8
					
				| @ -12,14 +12,9 @@ AnalysisWindow::AnalysisWindow(QWidget *parent) : | ||||
|    this->hide(); | ||||
|    this->show(); | ||||
| 
 | ||||
| 
 | ||||
|    std::shared_ptr<Rocket> rocket = QtRocket::getInstance()->getRocket(); | ||||
|    const std::vector<std::pair<double, std::vector<double>>>& res = rocket->getStates(); | ||||
|    /*
 | ||||
|    for(const auto& i : res) | ||||
|    { | ||||
|       std::cout << i.first << ": " << "(" << i.second[0] << ", " << i.second[1] << ", " << i.second[2] << ")\n"; | ||||
|    } | ||||
|    */ | ||||
|    auto& plot = ui->plotWidget; | ||||
|    plot->setInteraction(QCP::iRangeDrag, true); | ||||
|    plot->setInteraction(QCP::iRangeZoom, true); | ||||
|  | ||||
| @ -18,14 +18,21 @@ class AnalysisWindow; | ||||
| /**
 | ||||
|  * @brief The AnalysisWindow class. | ||||
|  * | ||||
|  * The Analysis Windows class shows a plot of data. This allows visual inspection of | ||||
|  * data | ||||
|  * The Analysis Window class shows a plot of rocket state data. This allows visual inspection of | ||||
|  * flight data such as altitude vs. time. | ||||
|  */ | ||||
| class AnalysisWindow : public QDialog | ||||
| { | ||||
|    Q_OBJECT | ||||
| 
 | ||||
| public: | ||||
|    /**
 | ||||
|     * @brief AnalysisWindow constructor. | ||||
|     * @param parent Parent widget | ||||
|     * | ||||
|     * @note The constructor will make a call to QtRocket and grab the current Rocket model | ||||
|     *       and automatically plot altitude vs time | ||||
|     */ | ||||
|    explicit AnalysisWindow(QWidget *parent = nullptr); | ||||
|    ~AnalysisWindow(); | ||||
| 
 | ||||
|  | ||||
| @ -32,6 +32,7 @@ public: | ||||
|    ~MainWindow(); | ||||
| 
 | ||||
| private slots: | ||||
| 
 | ||||
|    void on_actionAbout_triggered(); | ||||
| 
 | ||||
|    void on_testButton1_clicked(); | ||||
|  | ||||
| @ -1,15 +1,6 @@ | ||||
| #ifndef MODEL_MOTORCASE_H | ||||
| #define MODEL_MOTORCASE_H | ||||
| 
 | ||||
| enum class MotorManufacturerEnum | ||||
| { | ||||
|    AEROTECH, | ||||
|    CESARONI, | ||||
|    LOKI, | ||||
|    AMW, | ||||
|    ESTES | ||||
| }; | ||||
| 
 | ||||
| class MotorCase | ||||
| { | ||||
| public: | ||||
| @ -20,4 +11,4 @@ private: | ||||
| 
 | ||||
| }; | ||||
| 
 | ||||
| #endif // MODEL_MOTORCASE_H
 | ||||
| #endif // MODEL_MOTORCASE_H
 | ||||
|  | ||||
| @ -9,9 +9,3 @@ MotorModel::~MotorModel() | ||||
| { | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| void MotorModel::setDataFromJsonString(const std::string& jsonString) | ||||
| { | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
|  | ||||
| @ -8,45 +8,98 @@ | ||||
| 
 | ||||
| // 3rd party headers
 | ||||
| // For boost serialization. We're using boost::serialize to save
 | ||||
| // and load Motor data to file
 | ||||
| #include <boost/archive/text_iarchive.hpp> | ||||
| #include <boost/archive/text_oarchive.hpp> | ||||
| // and load Motor data to file. (CURRENTLY UNUSED)
 | ||||
| //#include <boost/archive/text_iarchive.hpp>
 | ||||
| //#include <boost/archive/text_oarchive.hpp>
 | ||||
| /// \endcond
 | ||||
| 
 | ||||
| // qtrocke theaders
 | ||||
| #include "Thrustcurve.h" | ||||
| // qtrocket theaders
 | ||||
| #include "ThrustCurve.h" | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief The MotorModel class | ||||
|  * | ||||
|  * The MotorModel class defines a structure that holds data relating to a hobby | ||||
|  * rocket motor such as the manufacturer, burn time, maximum thrust, propellant | ||||
|  * weight, etc. It also holds a ThrustCurve object that contains thrust sample data | ||||
|  * for that motor. | ||||
|  * | ||||
|  * There are several additional classes defined within the MotorModel class designed | ||||
|  * to encapsulate and define several pieces of motor related data as well. | ||||
|  */ | ||||
| class MotorModel | ||||
| { | ||||
| public: | ||||
|     /**
 | ||||
|     * @brief MotorModel constructor | ||||
|     */ | ||||
|    MotorModel(); | ||||
|     /**
 | ||||
|     * @brief MotorModel copy constructor is defaulted | ||||
|     */ | ||||
|    MotorModel(const MotorModel&) = default; | ||||
|     /**
 | ||||
|     * @brief MotorModel move constructor is defaulted | ||||
|     */ | ||||
|    MotorModel(MotorModel&&) = default; | ||||
|    ~MotorModel(); | ||||
| 
 | ||||
|    /**
 | ||||
|     * @brief Copy assignment operator is defaulted | ||||
|     * @return Copy of MotorModel | ||||
|     */ | ||||
|    MotorModel& operator=(const MotorModel&) = default; | ||||
| 
 | ||||
|    /**
 | ||||
|     * @brief Move assignment operator is defaulted | ||||
|     * @return Moved MotorModel | ||||
|     */ | ||||
|    MotorModel& operator=(MotorModel&&) = default; | ||||
| 
 | ||||
|    void setDataFromJsonString(const std::string& jsonString); | ||||
| 
 | ||||
|    /**
 | ||||
|     * @brief The AVAILABILITY enum class identifies whether a motor is | ||||
|     *        out of production, or still available | ||||
|     */ | ||||
|    enum class AVAILABILITY | ||||
|    { | ||||
|       REGULAR, // available
 | ||||
|       OOP      // Out of Production
 | ||||
|       REGULAR, /// available
 | ||||
|       OOP      /// Out of Production
 | ||||
|    }; | ||||
| 
 | ||||
| 
 | ||||
|    /**
 | ||||
|     * @brief The MOTORMANUFACTURER enum class identifies the motor | ||||
|     *        manufacturer | ||||
|     */ | ||||
|    enum class MOTORMANUFACTURER | ||||
|    { | ||||
|        AEROTECH, | ||||
|        CESARONI, | ||||
|        LOKI, | ||||
|        AMW, | ||||
|        ESTES, | ||||
|        APOGEE, | ||||
|        UNKNOWN | ||||
|    }; | ||||
| 
 | ||||
|    /**
 | ||||
|     * @brief The CERTORG enum class identifies the Certification Organization | ||||
|     *        that certified the motor | ||||
|     */ | ||||
|    enum class CERTORG | ||||
|    { | ||||
|       AMRS, | ||||
|       CAR, | ||||
|       NAR, | ||||
|       TRA, | ||||
|       UNC, | ||||
|       UNK | ||||
|       AMRS, /// Australian Model Rocket Society
 | ||||
|       CAR, /// Canadian Association of Rocketry
 | ||||
|       NAR, /// National Association of Rocketry
 | ||||
|       TRA, /// Tripoli
 | ||||
|       UNC, /// Uncertified
 | ||||
|       UNK  /// Unknown Certification
 | ||||
|    }; | ||||
| 
 | ||||
|    /**
 | ||||
|     * @brief The MOTORTYPE enum class identifies the motor type, either | ||||
|     *        Single-Use, Reload, or Hybrid | ||||
|     */ | ||||
|    enum class MOTORTYPE | ||||
|    { | ||||
|       SU, | ||||
| @ -54,6 +107,11 @@ public: | ||||
|       HYBRID | ||||
|    }; | ||||
| 
 | ||||
|    /**
 | ||||
|     * @brief The MotorAvailability struct wraps the AVAILABILITY enum and | ||||
|     *        provides a helper function to return a string representation | ||||
|     *        of the AVAILABILITY enum. | ||||
|     */ | ||||
|    struct MotorAvailability | ||||
|    { | ||||
|       MotorAvailability(const AVAILABILITY& a) : availability(a) {} | ||||
| @ -65,6 +123,10 @@ public: | ||||
|       MotorAvailability& operator=(MotorAvailability&&) = default; | ||||
| 
 | ||||
|       AVAILABILITY availability{AVAILABILITY::REGULAR}; | ||||
|       /**
 | ||||
|        * @brief str Returns a string representation of AVAILABILITY enum | ||||
|        * @return string representation | ||||
|        */ | ||||
|       std::string str() | ||||
|       { | ||||
|          if(availability == AVAILABILITY::REGULAR) | ||||
| @ -74,6 +136,11 @@ public: | ||||
|       } | ||||
|    }; | ||||
| 
 | ||||
|    /**
 | ||||
|     * @brief The CertOrg struct wraps the CERTORG enum and | ||||
|     *        provides a helper function to return a string representation | ||||
|     *        of the CERTORG enum. | ||||
|     */ | ||||
|    struct CertOrg | ||||
|    { | ||||
|       CertOrg(const CERTORG& c) : org(c) {} | ||||
| @ -85,6 +152,10 @@ public: | ||||
|       CertOrg& operator=(CertOrg&&) = default; | ||||
| 
 | ||||
|       CERTORG org{CERTORG::UNC}; | ||||
|       /**
 | ||||
|        * @brief str Returns a string representation of CERTORG enum | ||||
|        * @return string representation | ||||
|        */ | ||||
|       std::string str() | ||||
|       { | ||||
|          if(org == CERTORG::AMRS) | ||||
| @ -102,6 +173,11 @@ public: | ||||
|       } | ||||
|    }; | ||||
| 
 | ||||
|    /**
 | ||||
|     * @brief The MotorType struct wraps the MOTORTYPE enum and | ||||
|     *        provides a helper function to return a string representation | ||||
|     *        of the MOTORTYPE enum. | ||||
|     */ | ||||
|    struct MotorType | ||||
|    { | ||||
|       MotorType(const MOTORTYPE& t) : type(t) {} | ||||
| @ -113,6 +189,10 @@ public: | ||||
|       MotorType& operator=(MotorType&&) = default; | ||||
| 
 | ||||
|       MOTORTYPE type; | ||||
|       /**
 | ||||
|        * @brief str Returns a string representation of MOTORTYPE enum | ||||
|        * @return string representation | ||||
|        */ | ||||
|       std::string str() | ||||
|       { | ||||
|          if(type == MOTORTYPE::SU) | ||||
| @ -124,60 +204,79 @@ public: | ||||
|       } | ||||
|    }; | ||||
| 
 | ||||
| // TODO: make these private. Public just for testing
 | ||||
|    /**
 | ||||
|     * @brief The MotorManufacturer struct wraps the MOTORMANUFACTURER enum and | ||||
|     *        provides a helper function to return a string representation | ||||
|     *        of the MOTORMANUFACTURER enum. | ||||
|     */ | ||||
|    struct MotorManufacturer | ||||
|    { | ||||
|       MotorManufacturer(const MOTORMANUFACTURER& m) : manufacturer(m) {} | ||||
|       MotorManufacturer() : manufacturer(MOTORMANUFACTURER::UNKNOWN) {} | ||||
|       MotorManufacturer(const MotorManufacturer&) = default; | ||||
|       MotorManufacturer(MotorManufacturer&&) = default; | ||||
| 
 | ||||
|       MotorManufacturer& operator=(const MotorManufacturer&) = default; | ||||
|       MotorManufacturer& operator=(MotorManufacturer&&) = default; | ||||
| 
 | ||||
|       MOTORMANUFACTURER manufacturer; | ||||
|       /**
 | ||||
|        * @brief str Returns a string representation of MOTORMANUFACTURER enum | ||||
|        * @return string representation | ||||
|        */ | ||||
|       std::string str() | ||||
|       { | ||||
|          switch(manufacturer) | ||||
|          { | ||||
|          case MOTORMANUFACTURER::AEROTECH: | ||||
|             return std::string("AeroTech"); | ||||
|          case MOTORMANUFACTURER::AMW: | ||||
|             return std::string("AMW"); | ||||
|          case MOTORMANUFACTURER::CESARONI: | ||||
|             return std::string("Cesaroni"); | ||||
|          case MOTORMANUFACTURER::ESTES: | ||||
|             return std::string("Estes"); | ||||
|          case MOTORMANUFACTURER::LOKI: | ||||
|             return std::string("Loki"); | ||||
|          case MOTORMANUFACTURER::APOGEE: | ||||
|             return std::string("Apogee"); | ||||
|          case MOTORMANUFACTURER::UNKNOWN: | ||||
|          default: | ||||
|             return std::string("Unknown"); | ||||
|          } | ||||
|       } | ||||
|    }; | ||||
| 
 | ||||
| /// TODO: make these MotorModel members private. Public just for testing
 | ||||
| //private:
 | ||||
|    // Needed for boost serialize
 | ||||
|    friend class boost::serialization::access; | ||||
|    template<class Archive> | ||||
|    void serialize(Archive& ar, const unsigned int version); | ||||
| 
 | ||||
|    MotorAvailability availability{AVAILABILITY::REGULAR}; | ||||
|    double avgThrust{0.0}; | ||||
|    double burnTime{0.0}; | ||||
|    CertOrg certOrg{CERTORG::UNC}; | ||||
|    std::string commonName{""}; | ||||
|    MotorAvailability availability{AVAILABILITY::REGULAR}; /// Motor Availability
 | ||||
|    double avgThrust{0.0}; /// Average thrust in Newtons
 | ||||
|    double burnTime{0.0};  /// Burn time in seconds
 | ||||
|    CertOrg certOrg{CERTORG::UNC}; /// The certification organization, defaults to Uncertified
 | ||||
|    std::string commonName{""}; /// Common name, e.g. A8 or J615
 | ||||
|    // int dataFiles
 | ||||
|    std::vector<int> delays; // -1 delay means no ejection charge
 | ||||
|    std::string designation{""}; | ||||
|    double diameter{0}; | ||||
|    std::string impulseClass; // 'A', 'B', '1/2A', 'M', etc
 | ||||
|    std::string infoUrl{""}; | ||||
|    double length{0.0}; | ||||
|    std::string manufacturer{""}; | ||||
|    std::vector<int> delays; /// 1000 delay means no ejection charge
 | ||||
|    std::string designation{""}; /// Other name, usually includes prop type, e.g. H110W
 | ||||
|    double diameter{0}; /// motor diameter in mm
 | ||||
|    std::string impulseClass; /// Motor letter, e.g. 'A', 'B', '1/2A', 'M', etc
 | ||||
|    std::string infoUrl{""};  /// TODO: ???
 | ||||
|    double length{0.0}; /// motor length in mm
 | ||||
|    MotorManufacturer manufacturer{MOTORMANUFACTURER::UNKNOWN}; /// Motor Manufacturer
 | ||||
| 
 | ||||
|    double maxThrust{0.0}; | ||||
|    std::string motorIdTC{""}; // 24 character hex string used by thrustcurve to ID a motor
 | ||||
|    std::string propType{""}; // black powder, etc
 | ||||
|    double propWeight{0.0}; | ||||
|    bool sparky{false}; | ||||
|    double totalImpulse{0.0}; | ||||
|    double totalWeight{0.0}; | ||||
|    MotorType type{MOTORTYPE::SU}; | ||||
|    std::string lastUpdated{""}; | ||||
|    double maxThrust{0.0}; /// Max thrust in Newtons
 | ||||
|    std::string motorIdTC{""}; /// 24 character hex string used by thrustcurve.org to ID a motor
 | ||||
|    std::string propType{""}; /// Propellant type, e.g. black powder
 | ||||
|    double propWeight{0.0};   /// Propellant weight in grams
 | ||||
|    bool sparky{false};       /// true if the motor is "sparky", false otherwise
 | ||||
|    double totalImpulse{0.0}; /// Total impulse in Newton-seconds
 | ||||
|    double totalWeight{0.0};  /// Total weight in grams
 | ||||
|    MotorType type{MOTORTYPE::SU}; /// Motor type, e.g. single-use, reload, or hybrid
 | ||||
|    std::string lastUpdated{""}; /// Date last updated on ThrustCurve.org
 | ||||
| 
 | ||||
|    // Thrust parameters
 | ||||
|    Thrustcurve thrust; | ||||
|    ThrustCurve thrust; /// The measured motor thrust curve
 | ||||
|     | ||||
|    // Physical dimensions
 | ||||
| 
 | ||||
| }; | ||||
| 
 | ||||
| template<class Archive> | ||||
| void MotorModel::serialize(Archive& ar, const unsigned int version) | ||||
| { | ||||
| 
 | ||||
|    ar & manufacturer; | ||||
|    ar & impulseClass; | ||||
|    ar & propType; | ||||
|    ar & sparky; | ||||
|    ar & totalImpulse; | ||||
|    ar & delays; | ||||
|    ar & burnTime; | ||||
|    ar & thrust; | ||||
|    ar & diameter; | ||||
|    ar & length; | ||||
|    ar & totalWeight; | ||||
|    ar & propWeight; | ||||
| } | ||||
| 
 | ||||
| #endif // MODEL_MOTORMODEL_H
 | ||||
|  | ||||
| @ -1,22 +1,49 @@ | ||||
| #ifndef MOTORMODELDATABASE_H | ||||
| #define MOTORMODELDATABASE_H | ||||
| 
 | ||||
| /// \cond
 | ||||
| // C headers
 | ||||
| // C++ headers
 | ||||
| #include <vector> | ||||
| // 3rd party headers
 | ||||
| /// \endcond
 | ||||
| 
 | ||||
| // qtrocket headers
 | ||||
| #include "model/MotorModel.h" | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief The MotorModelDatabase class provides a storage and search mechanism for | ||||
|  *        MotorModels | ||||
|  */ | ||||
| class MotorModelDatabase | ||||
| { | ||||
| public: | ||||
|     /**
 | ||||
|      * @brief MotorModelDatabase constructor | ||||
|      */ | ||||
|     MotorModelDatabase(); | ||||
| 
 | ||||
|     std::vector<MotorModel> findMotorsByManufacturer(const std::string& manu); | ||||
|     /**
 | ||||
|      * @brief MotorModelDatabase destructor is defaulted | ||||
|      */ | ||||
|     ~MotorModelDatabase() = default; | ||||
| 
 | ||||
|     /**
 | ||||
|      * @brief findMotorsByManufacturer returns a vector of MotorModel from a given | ||||
|      *        manufacturer | ||||
|      * @param manufacturer The manufacturer to search for | ||||
|      * @return vector of MotorModels from a given manufacturer | ||||
|      */ | ||||
|     std::vector<MotorModel> findMotorsByManufacturer(const std::string& manufacturer); | ||||
| 
 | ||||
|     /**
 | ||||
|      * @brief findMotersByImpulseClass returns a vector of MotorModels with a given | ||||
|      *        impulse class | ||||
|      * @param imClass Impulse class to search for | ||||
|      * @return vector of MotorModels with a given Impulse class | ||||
|      */ | ||||
|     std::vector<MotorModel> findMotersByImpulseClass(const std::string& imClass); | ||||
| 
 | ||||
|     MotorModel getMotorByName(const std::string& name); | ||||
| 
 | ||||
|     std::vector<std::pair<double, double>> getThrustCurveByName(const std::string& motorName); | ||||
| 
 | ||||
| private: | ||||
| 
 | ||||
|     std::vector<MotorModel> motors; | ||||
|  | ||||
| @ -36,7 +36,7 @@ double Rocket::getThrust(double t) | ||||
|    return tc.getThrust(t); | ||||
| } | ||||
| 
 | ||||
| void Rocket::setThrustCurve(const Thrustcurve& curve) | ||||
| void Rocket::setThrustCurve(const ThrustCurve& curve) | ||||
| { | ||||
|    tc = curve; | ||||
| } | ||||
|  | ||||
| @ -11,12 +11,19 @@ | ||||
| /// \endcond
 | ||||
| 
 | ||||
| // qtrocket headers
 | ||||
| #include "model/Thrustcurve.h" | ||||
| #include "model/ThrustCurve.h" | ||||
| #include "sim/Propagator.h" | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief The Rocket class holds all rocket components | ||||
|  * | ||||
|  */ | ||||
| class Rocket | ||||
| { | ||||
| public: | ||||
|     /**
 | ||||
|     * @brief Rocket class constructor | ||||
|     */ | ||||
|    Rocket(); | ||||
| 
 | ||||
|    void launch(); | ||||
| @ -31,7 +38,7 @@ public: | ||||
|    double getDragCoefficient() const { return dragCoeff; } | ||||
| 
 | ||||
|    double getThrust(double t); | ||||
|    void setThrustCurve(const Thrustcurve& curve); | ||||
|    void setThrustCurve(const ThrustCurve& curve); | ||||
| 
 | ||||
|    bool terminateCondition(const std::pair<double, std::vector<double>>& cond); | ||||
| 
 | ||||
| @ -43,7 +50,7 @@ private: | ||||
|    double dragCoeff; | ||||
|    double mass; | ||||
| 
 | ||||
|    Thrustcurve tc; | ||||
|    ThrustCurve tc; | ||||
| 
 | ||||
| }; | ||||
| 
 | ||||
|  | ||||
| @ -7,10 +7,10 @@ | ||||
| // 3rd party headers
 | ||||
| /// \endcond
 | ||||
| 
 | ||||
| #include "Thrustcurve.h" | ||||
| #include "ThrustCurve.h" | ||||
| 
 | ||||
| 
 | ||||
| Thrustcurve::Thrustcurve(std::vector<std::pair<double, double>>& tc) | ||||
| ThrustCurve::ThrustCurve(std::vector<std::pair<double, double>>& tc) | ||||
|    : thrustCurve(tc), | ||||
|      maxTime(0.0), | ||||
|      ignitionTime(0.0) | ||||
| @ -23,16 +23,16 @@ Thrustcurve::Thrustcurve(std::vector<std::pair<double, double>>& tc) | ||||
|                               })->first; | ||||
| } | ||||
| 
 | ||||
| Thrustcurve::Thrustcurve() | ||||
| ThrustCurve::ThrustCurve() | ||||
| { | ||||
|    thrustCurve.emplace_back(0.0, 0.0); | ||||
|    maxTime = 0.0; | ||||
| } | ||||
| 
 | ||||
| Thrustcurve::~Thrustcurve() | ||||
| ThrustCurve::~ThrustCurve() | ||||
| {} | ||||
| 
 | ||||
| void Thrustcurve::setThrustCurveVector(const std::vector<std::pair<double, double>>& v) | ||||
| void ThrustCurve::setThrustCurveVector(const std::vector<std::pair<double, double>>& v) | ||||
| { | ||||
|    thrustCurve.clear(); | ||||
|    thrustCurve.resize(v.size()); | ||||
| @ -45,13 +45,13 @@ void Thrustcurve::setThrustCurveVector(const std::vector<std::pair<double, doubl | ||||
|                               })->first; | ||||
| } | ||||
| 
 | ||||
| void Thrustcurve::setIgnitionTime(double t) | ||||
| void ThrustCurve::setIgnitionTime(double t) | ||||
| { | ||||
|    ignitionTime = t; | ||||
|    //maxTime += ignitionTime;
 | ||||
| } | ||||
| 
 | ||||
| double Thrustcurve::getThrust(double t) | ||||
| double ThrustCurve::getThrust(double t) | ||||
| { | ||||
|    // calculate t relative to the start time of the motor
 | ||||
|    t -= ignitionTime; | ||||
| @ -11,24 +11,24 @@ | ||||
| #include <boost/archive/text_oarchive.hpp> | ||||
| /// \endcond
 | ||||
| 
 | ||||
| class Thrustcurve | ||||
| class ThrustCurve | ||||
| { | ||||
| public: | ||||
|    /**
 | ||||
|     * Constructor takes a vector of pairs. The first item a timestamp, | ||||
|     * the second the thrust in newtons. | ||||
|    */ | ||||
|    Thrustcurve(std::vector<std::pair<double, double>>& tc); | ||||
|    ThrustCurve(std::vector<std::pair<double, double>>& tc); | ||||
|    /**
 | ||||
|     * Default constructor. Will create an empty thrustcurve, always returning 0.0 | ||||
|     * for all requested times. | ||||
|    */ | ||||
|    Thrustcurve(); | ||||
|    Thrustcurve(const Thrustcurve&) = default; | ||||
|    Thrustcurve(Thrustcurve&&) = default; | ||||
|    ~Thrustcurve(); | ||||
|    ThrustCurve(); | ||||
|    ThrustCurve(const ThrustCurve&) = default; | ||||
|    ThrustCurve(ThrustCurve&&) = default; | ||||
|    ~ThrustCurve(); | ||||
| 
 | ||||
|    Thrustcurve& operator=(const Thrustcurve& rhs) | ||||
|    ThrustCurve& operator=(const ThrustCurve& rhs) | ||||
|    { | ||||
|       if(this != &rhs) | ||||
|       { | ||||
| @ -39,7 +39,7 @@ public: | ||||
|       return *this; | ||||
|    } | ||||
| 
 | ||||
|    Thrustcurve& operator=(Thrustcurve&& rhs) | ||||
|    ThrustCurve& operator=(ThrustCurve&& rhs) | ||||
|    { | ||||
|       thrustCurve = std::move(rhs.thrustCurve); | ||||
|       maxTime = std::move(rhs.maxTime); | ||||
| @ -76,7 +76,7 @@ private: | ||||
| }; | ||||
| 
 | ||||
| template<class Archive> | ||||
| void Thrustcurve::serialize(Archive& ar, const unsigned int version) | ||||
| void ThrustCurve::serialize(Archive& ar, const unsigned int version) | ||||
| { | ||||
|    ar & maxTime; | ||||
|    ar & thrustCurve; | ||||
| @ -21,7 +21,7 @@ SOURCES += \ | ||||
|     model/MotorModel.cpp \ | ||||
|     model/MotorModelDatabase.cpp \ | ||||
|     model/Rocket.cpp \ | ||||
|     model/Thrustcurve.cpp \ | ||||
|     model/ThrustCurve.cpp \ | ||||
|     sim/ConstantGravityModel.cpp \ | ||||
|     sim/GravityModel.cpp \ | ||||
|     sim/Propagator.cpp \ | ||||
| @ -51,7 +51,7 @@ HEADERS += \ | ||||
|     model/MotorModel.h \ | ||||
|     model/MotorModelDatabase.h \ | ||||
|     model/Rocket.h \ | ||||
|     model/Thrustcurve.h \ | ||||
|     model/ThrustCurve.h \ | ||||
|     sim/AtmosphericModel.h \ | ||||
|     sim/ConstantAtmosphere.h \ | ||||
|     sim/ConstantGravityModel.h \ | ||||
|  | ||||
| @ -59,7 +59,17 @@ void RSEDatabaseLoader::buildAndAppendMotorModel(boost::property_tree::ptree& v) | ||||
|    // infoUrl not present in RSE file
 | ||||
|    mm.infoUrl = ""; | ||||
|    mm.length = v.get<double>("<xmlattr>.len", 0.0); | ||||
|    mm.manufacturer = v.get<std::string>("<xmlattr>.mfg", ""); | ||||
|    { | ||||
|       std::string manufacturer = v.get<std::string>("<xmlattr>.mfg", ""); | ||||
|       MotorModel::MotorManufacturer manu(MotorModel::MOTORMANUFACTURER::UNKNOWN); | ||||
|       if(manufacturer == "Aerotech") | ||||
|           manu = MotorModel::MOTORMANUFACTURER::AEROTECH; | ||||
|       else if(manufacturer == "Animal Motor Works") | ||||
|           manu = MotorModel::MOTORMANUFACTURER::AMW; | ||||
|       else if(manufacturer == "Apogee") | ||||
|           manu = MotorModel::MOTORMANUFACTURER::APOGEE; | ||||
|       mm.manufacturer = manu; | ||||
|    } | ||||
|    mm.maxThrust = v.get<double>("<xmlattr>.peakThrust", 0.0); | ||||
|    mm.propWeight = v.get<double>("<xmlattr>.propWt", 0.0); | ||||
|    mm.totalImpulse = v.get<double>("<xmlattr>.Itot", 0.0); | ||||
|  | ||||
| @ -34,8 +34,8 @@ MotorModel ThrustCurveAPI::getMotorData(const std::string& motorId) | ||||
| 
 | ||||
|    std::string res = curlConnection.get(endpoint.str(), extraHeaders); | ||||
| 
 | ||||
|    /// TODO: fix this
 | ||||
|    MotorModel mm; | ||||
|    mm.setDataFromJsonString(res); | ||||
|    return mm; | ||||
| } | ||||
| 
 | ||||
| @ -165,7 +165,10 @@ std::vector<MotorModel> ThrustCurveAPI::searchMotors(const SearchCriteria& c) | ||||
|             mm.diameter    = (*iter)["diameter"].asDouble(); | ||||
|             mm.impulseClass = (*iter)["impulseClass"].asString(); | ||||
|             mm.length       = (*iter)["length"].asDouble(); | ||||
|             mm.manufacturer = (*iter)["manufacturer"].asString(); | ||||
|             std::string manu = (*iter)["manufacturer"].asString(); | ||||
|             if(manu == "AeroTech") | ||||
|                mm.manufacturer = MotorModel::MOTORMANUFACTURER::AEROTECH; | ||||
|             //mm.manufacturer = (*iter)["manufacturer"].asString();
 | ||||
|             mm.maxThrust    = (*iter)["maxThrustN"].asDouble(); | ||||
|             mm.motorIdTC    = (*iter)["motorId"].asString(); | ||||
|             mm.propType     = (*iter)["propInfo"].asString(); | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user