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;
|
||||
}
|
||||
|
||||
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::AtmosphericModel> getAtmosphereModel() { return atmosphere; }
|
||||
|
||||
|
||||
void addMotorModels(std::vector<MotorModel>& m);
|
||||
private:
|
||||
QtRocket();
|
||||
|
||||
|
@ -8,7 +8,7 @@
|
||||
|
||||
#include "utils/RSEDatabaseLoader.h"
|
||||
|
||||
#include <QTextStream>
|
||||
#include <QFileDialog>
|
||||
|
||||
#include <memory>
|
||||
#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_loadRSE_button_clicked();
|
||||
|
||||
private:
|
||||
Ui::MainWindow* ui;
|
||||
QtRocket* qtRocket;
|
||||
|
@ -167,6 +167,35 @@
|
||||
</item>
|
||||
</layout>
|
||||
</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 class="QCustomPlot" name="plotWindow" native="true"/>
|
||||
|
@ -49,6 +49,7 @@ public:
|
||||
struct MotorAvailability
|
||||
{
|
||||
MotorAvailability(const AVAILABILITY& a) : availability(a) {}
|
||||
MotorAvailability(const MotorAvailability&) = default;
|
||||
MotorAvailability(MotorAvailability&&) = default;
|
||||
MotorAvailability() : MotorAvailability(AVAILABILITY::REGULAR) {}
|
||||
|
||||
@ -68,6 +69,7 @@ public:
|
||||
struct CertOrg
|
||||
{
|
||||
CertOrg(const CERTORG& c) : org(c) {}
|
||||
CertOrg(const CertOrg&) = default;
|
||||
CertOrg(CertOrg&&) = default;
|
||||
CertOrg() : CertOrg(CERTORG::UNC) {}
|
||||
|
||||
@ -95,6 +97,7 @@ public:
|
||||
struct MotorType
|
||||
{
|
||||
MotorType(const MOTORTYPE& t) : type(t) {}
|
||||
MotorType(const MotorType&) = default;
|
||||
MotorType(MotorType&&) = default;
|
||||
MotorType() : MotorType(MOTORTYPE::SU) {}
|
||||
|
||||
|
@ -5,6 +5,8 @@
|
||||
#include <iostream>
|
||||
#include <cmath>
|
||||
|
||||
#include "QtRocket.h"
|
||||
|
||||
namespace utils {
|
||||
|
||||
RSEDatabaseLoader::RSEDatabaseLoader(const std::string& filename)
|
||||
@ -19,6 +21,7 @@ RSEDatabaseLoader::RSEDatabaseLoader(const std::string& filename)
|
||||
buildAndAppendMotorModel(v.second);
|
||||
}
|
||||
|
||||
QtRocket::getInstance()->addMotorModels(motors);
|
||||
}
|
||||
|
||||
RSEDatabaseLoader::~RSEDatabaseLoader()
|
||||
@ -81,15 +84,17 @@ void RSEDatabaseLoader::buildAndAppendMotorModel(boost::property_tree::ptree& v)
|
||||
double fdata = w.second.get<double>("<xmlattr>.f");
|
||||
thrustData.push_back(std::make_pair(tdata, fdata));
|
||||
}
|
||||
/*
|
||||
std::cout << "\n--------------------------------------------\n";
|
||||
std::cout << "name: " << mm.commonName << std::endl;
|
||||
std::cout << "impulseClass: " << mm.impulseClass << std::endl;
|
||||
std::cout << "length: " << mm.length << std::endl;
|
||||
std::cout << "manufacturer: " << mm.manufacturer << std::endl;
|
||||
std::cout << "maxThrust: " << mm.maxThrust << std::endl;
|
||||
std::cout << "propWeight: " << mm.propWeight << std::endl;
|
||||
std::cout << "totalImpulse: " << mm.totalImpulse << std::endl;
|
||||
std::cout << "--------------------------------------------\n";
|
||||
/*
|
||||
|
||||
std::cout << "thrust data:\n";
|
||||
for(const auto& i : thrustData)
|
||||
{
|
||||
|
@ -16,6 +16,7 @@ public:
|
||||
RSEDatabaseLoader(const std::string& filename);
|
||||
~RSEDatabaseLoader();
|
||||
|
||||
const std::vector<MotorModel>& getMotors() const { return motors; }
|
||||
private:
|
||||
|
||||
std::vector<MotorModel> motors;
|
||||
|
Loading…
x
Reference in New Issue
Block a user