Added Rocksim database
This commit is contained in:
parent
c319a18bbe
commit
69344be572
@ -88,3 +88,12 @@ int QtRocket::run(int argc, char* argv[])
|
|||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void QtRocket::addMotorModels(std::vector<MotorModel>& m)
|
||||||
|
{
|
||||||
|
for(const auto& i : m)
|
||||||
|
{
|
||||||
|
motorModels.push_back(i);
|
||||||
|
}
|
||||||
|
// TODO: Now clear any duplicates?
|
||||||
|
}
|
||||||
|
@ -35,6 +35,8 @@ public:
|
|||||||
std::shared_ptr<sim::GravityModel> getGravityModel() { return gravity; }
|
std::shared_ptr<sim::GravityModel> getGravityModel() { return gravity; }
|
||||||
std::shared_ptr<sim::AtmosphericModel> getAtmosphereModel() { return atmosphere; }
|
std::shared_ptr<sim::AtmosphericModel> getAtmosphereModel() { return atmosphere; }
|
||||||
|
|
||||||
|
|
||||||
|
void addMotorModels(std::vector<MotorModel>& m);
|
||||||
private:
|
private:
|
||||||
QtRocket();
|
QtRocket();
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
#include "utils/RSEDatabaseLoader.h"
|
#include "utils/RSEDatabaseLoader.h"
|
||||||
|
|
||||||
#include <QTextStream>
|
#include <QFileDialog>
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
@ -112,3 +112,26 @@ void MainWindow::on_testButton2_clicked()
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void MainWindow::on_loadRSE_button_clicked()
|
||||||
|
{
|
||||||
|
QString rseFile = QFileDialog::getOpenFileName(this,
|
||||||
|
tr("Import RSE Database File"),
|
||||||
|
"/home",
|
||||||
|
tr("RSE Files (*.rse)"));
|
||||||
|
|
||||||
|
utils::RSEDatabaseLoader loader(rseFile.toStdString());
|
||||||
|
|
||||||
|
ui->rocketPartButtons->findChild<QLineEdit*>(QString("databaseFileLine"))->setText(rseFile);
|
||||||
|
|
||||||
|
QComboBox* engineSelector =
|
||||||
|
ui->rocketPartButtons->findChild<QComboBox*>(QString("engineSelectorComboBox"));
|
||||||
|
|
||||||
|
const std::vector<MotorModel>& motors = loader.getMotors();
|
||||||
|
for(const auto& motor : motors)
|
||||||
|
{
|
||||||
|
std::cout << "Adding: " << motor.commonName << std::endl;
|
||||||
|
engineSelector->addItem(QString(motor.commonName.c_str()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@ -25,6 +25,8 @@ private slots:
|
|||||||
|
|
||||||
void on_testButton2_clicked();
|
void on_testButton2_clicked();
|
||||||
|
|
||||||
|
void on_loadRSE_button_clicked();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Ui::MainWindow* ui;
|
Ui::MainWindow* ui;
|
||||||
QtRocket* qtRocket;
|
QtRocket* qtRocket;
|
||||||
|
@ -167,6 +167,35 @@
|
|||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
|
<widget class="QWidget" name="gridLayoutWidget">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>90</x>
|
||||||
|
<y>220</y>
|
||||||
|
<width>421</width>
|
||||||
|
<height>80</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout" name="gridLayout_2">
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QPushButton" name="loadRSE_button">
|
||||||
|
<property name="text">
|
||||||
|
<string>Load RSE Database File</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="1">
|
||||||
|
<widget class="QLineEdit" name="databaseFileLine">
|
||||||
|
<property name="readOnly">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<widget class="QComboBox" name="engineSelectorComboBox"/>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
</widget>
|
</widget>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QCustomPlot" name="plotWindow" native="true"/>
|
<widget class="QCustomPlot" name="plotWindow" native="true"/>
|
||||||
|
@ -49,6 +49,7 @@ public:
|
|||||||
struct MotorAvailability
|
struct MotorAvailability
|
||||||
{
|
{
|
||||||
MotorAvailability(const AVAILABILITY& a) : availability(a) {}
|
MotorAvailability(const AVAILABILITY& a) : availability(a) {}
|
||||||
|
MotorAvailability(const MotorAvailability&) = default;
|
||||||
MotorAvailability(MotorAvailability&&) = default;
|
MotorAvailability(MotorAvailability&&) = default;
|
||||||
MotorAvailability() : MotorAvailability(AVAILABILITY::REGULAR) {}
|
MotorAvailability() : MotorAvailability(AVAILABILITY::REGULAR) {}
|
||||||
|
|
||||||
@ -68,6 +69,7 @@ public:
|
|||||||
struct CertOrg
|
struct CertOrg
|
||||||
{
|
{
|
||||||
CertOrg(const CERTORG& c) : org(c) {}
|
CertOrg(const CERTORG& c) : org(c) {}
|
||||||
|
CertOrg(const CertOrg&) = default;
|
||||||
CertOrg(CertOrg&&) = default;
|
CertOrg(CertOrg&&) = default;
|
||||||
CertOrg() : CertOrg(CERTORG::UNC) {}
|
CertOrg() : CertOrg(CERTORG::UNC) {}
|
||||||
|
|
||||||
@ -95,6 +97,7 @@ public:
|
|||||||
struct MotorType
|
struct MotorType
|
||||||
{
|
{
|
||||||
MotorType(const MOTORTYPE& t) : type(t) {}
|
MotorType(const MOTORTYPE& t) : type(t) {}
|
||||||
|
MotorType(const MotorType&) = default;
|
||||||
MotorType(MotorType&&) = default;
|
MotorType(MotorType&&) = default;
|
||||||
MotorType() : MotorType(MOTORTYPE::SU) {}
|
MotorType() : MotorType(MOTORTYPE::SU) {}
|
||||||
|
|
||||||
|
@ -5,6 +5,8 @@
|
|||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
|
|
||||||
|
#include "QtRocket.h"
|
||||||
|
|
||||||
namespace utils {
|
namespace utils {
|
||||||
|
|
||||||
RSEDatabaseLoader::RSEDatabaseLoader(const std::string& filename)
|
RSEDatabaseLoader::RSEDatabaseLoader(const std::string& filename)
|
||||||
@ -19,6 +21,7 @@ RSEDatabaseLoader::RSEDatabaseLoader(const std::string& filename)
|
|||||||
buildAndAppendMotorModel(v.second);
|
buildAndAppendMotorModel(v.second);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QtRocket::getInstance()->addMotorModels(motors);
|
||||||
}
|
}
|
||||||
|
|
||||||
RSEDatabaseLoader::~RSEDatabaseLoader()
|
RSEDatabaseLoader::~RSEDatabaseLoader()
|
||||||
@ -81,15 +84,17 @@ void RSEDatabaseLoader::buildAndAppendMotorModel(boost::property_tree::ptree& v)
|
|||||||
double fdata = w.second.get<double>("<xmlattr>.f");
|
double fdata = w.second.get<double>("<xmlattr>.f");
|
||||||
thrustData.push_back(std::make_pair(tdata, fdata));
|
thrustData.push_back(std::make_pair(tdata, fdata));
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
std::cout << "\n--------------------------------------------\n";
|
std::cout << "\n--------------------------------------------\n";
|
||||||
std::cout << "name: " << mm.commonName << std::endl;
|
std::cout << "name: " << mm.commonName << std::endl;
|
||||||
|
std::cout << "impulseClass: " << mm.impulseClass << std::endl;
|
||||||
std::cout << "length: " << mm.length << std::endl;
|
std::cout << "length: " << mm.length << std::endl;
|
||||||
std::cout << "manufacturer: " << mm.manufacturer << std::endl;
|
std::cout << "manufacturer: " << mm.manufacturer << std::endl;
|
||||||
std::cout << "maxThrust: " << mm.maxThrust << std::endl;
|
std::cout << "maxThrust: " << mm.maxThrust << std::endl;
|
||||||
std::cout << "propWeight: " << mm.propWeight << std::endl;
|
std::cout << "propWeight: " << mm.propWeight << std::endl;
|
||||||
std::cout << "totalImpulse: " << mm.totalImpulse << std::endl;
|
std::cout << "totalImpulse: " << mm.totalImpulse << std::endl;
|
||||||
std::cout << "--------------------------------------------\n";
|
std::cout << "--------------------------------------------\n";
|
||||||
/*
|
|
||||||
std::cout << "thrust data:\n";
|
std::cout << "thrust data:\n";
|
||||||
for(const auto& i : thrustData)
|
for(const auto& i : thrustData)
|
||||||
{
|
{
|
||||||
|
@ -16,6 +16,7 @@ public:
|
|||||||
RSEDatabaseLoader(const std::string& filename);
|
RSEDatabaseLoader(const std::string& filename);
|
||||||
~RSEDatabaseLoader();
|
~RSEDatabaseLoader();
|
||||||
|
|
||||||
|
const std::vector<MotorModel>& getMotors() const { return motors; }
|
||||||
private:
|
private:
|
||||||
|
|
||||||
std::vector<MotorModel> motors;
|
std::vector<MotorModel> motors;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user