LAMPCAE/src/WBCLFZSystemModule/QtSARAntModelSetting.cpp

544 lines
18 KiB
C++
Raw Normal View History

#include "QtSARAntModelSetting.h"
#include "AllHead.h"
#include <QMessageBox>
#include <BRepBuilderAPI_MakeSolid.hxx>
#include <BRepPrimAPI_MakePrism.hxx>
#include <BRepPrimAPI_MakePrism.hxx>
#include "OCCTBase.h"
antModelClass::antModelClass(QString filpath)
{
QMessageBox::information(nullptr, QString::fromUtf8(u8"ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD>ʾ"), QString::fromUtf8(u8"ģ<EFBFBD>͵<EFBFBD>Y<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD>з<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Z<EFBFBD><EFBFBD>Ϊ<EFBFBD>״<EFBFBD>ָ<EFBFBD><EFBFBD>"));
if (QFile::exists(filpath)) {
ReadTopoDs_Shape(filpath, this->antModel);
}
else {
this->createDefaultAntModel();
}
}
antModelClass::antModelClass()
{
QMessageBox::information(nullptr, QString::fromUtf8(u8"ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD>ʾ"), QString::fromUtf8(u8"ģ<EFBFBD>͵<EFBFBD>Y<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD>з<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Z<EFBFBD><EFBFBD>Ϊ<EFBFBD>״<EFBFBD>ָ<EFBFBD><EFBFBD>"));
this->createDefaultAntModel();
}
antModelClass::~antModelClass()
{
this->antModelShow.Nullify();
this->antModel.Nullify();
}
void antModelClass::initAxis()
{
gp_Pnt rotationCenter(0, 0, 0);
gp_Ax1 rotationAxis_X(rotationCenter, gp_Dir(1.0, 0.0, 0.0));
gp_Ax1 rotationAxis_Y(rotationCenter, gp_Dir(0.0, 1.0, 0.0));
gp_Ax1 rotationAxis_Z(rotationCenter, gp_Dir(0.0, 0.0, 1.0));
}
//
// <20><><EFBFBD>ݲ<EFBFBD><DDB2>ӽǰڶ<C7B0>ʱ<EFBFBD><CAB1>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״<EFBFBD><D7B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD>Ͻ<EFBFBD><CFBD>аڶ<D0B0>
//
void antModelClass::applyAntModel(
double Sx, double Sy, double Sz,
double Vx , double Vy , double Vz ,
double incidenceAngle, double AzAngle, bool isRIGHT) {
FEKOBase::SatelliteState satepos{
FEKOBase::SatellitePosition{Sx,Sy,Sz},
FEKOBase::SatelliteVelocity{Vx,Vy,Vz},
};
FEKOBase::FEKOantPitionDirect antposition_Direct;
TopoDS_Shape inDs = this->antModel;
TopoDS_Shape outDs = FEKOBase::SatellitePos2FEKOAntPos(satepos, incidenceAngle, AzAngle, isRIGHT, &antposition_Direct, inDs);
Handle(AIS_Shape) aisShape = new AIS_Shape(outDs);
this->antModelShow = aisShape;
this->antposition_Direct = antposition_Direct;
return;
}
void antModelClass::createDefaultAntModel()
{
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>ͷ
//TopoDS_Shape arrow1 = CreateArrow(gp_Dir(1, 0, 0), 0.3, 0.1); // X<><58><EFBFBD><EFBFBD>
TopoDS_Shape arrow2 = CreateArrow(gp_Dir(0, 1, 0), 1, 0.1); // Y<><59><EFBFBD><EFBFBD>
TopoDS_Shape arrow3 = CreateArrow(gp_Dir(0, 0, 1), 1.5, 0.1); // Z<><5A><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD>״<EFBFBD>ģ<EFBFBD><C4A3>
gp_Ax2 modelCoor = gp_Ax2(gp_Pnt(0, 0, 0), gp_Dir(0, 0, 1), gp_Dir(1, 0, 0));
//TopoDS_Shape ant_pyramid = BRepPrimAPI_MakeWedge(modelCoor, 0.1, 0.1, 1.0,-1.0,-1.0,1.0,1.0).Shape();
// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD>ͷ<EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD>
TopoDS_Compound compound;
BRep_Builder builder;
builder.MakeCompound(compound);
//builder.Add(compound, arrow1);
builder.Add(compound, arrow2);
builder.Add(compound, arrow3);
//builder.Add(compound, ant_pyramid);
this->antModel = compound; // <20>״<EFBFBD><D7B4><EFBFBD>άģ<CEAC><C4A3>
}
FEKOBase::FEKOantPitionDirect antModelClass::get_antposition_Direct()
{
return this->antposition_Direct;
}
Handle(AIS_InteractiveObject) antModelClass::get_antModelShow()
{
return this->antModelShow;
}
antModelClass antModelClassFactory()
{
QString filepath = getOpenFilePath(
nullptr,
QString::fromUtf8(u8"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״<EFBFBD>ģ<EFBFBD><EFBFBD>"),
QString::fromUtf8(u8"STL Files (*.stl);;STL Files (*.stla);;step Files (*.stp);;step Files (*.step);;IGES Files (*.iges);;IGES Files (*.igs)"));
antModelClass result(filepath);
return result;
}
QtSARAntModelSettingClass::QtSARAntModelSettingClass(QWidget* parent)
{
ui.setupUi(this);
this->simulationparams = std::make_shared<FEKOBase::FEKOSimulationDataparams>(); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
this->ui.lineEdit_TaskName->setText(this->simulationparams->taskName);
this->ui.lineEdit_farsourcePath->setText(this->simulationparams->AntennaRadiationFileName);
this->Widgetfreqsetting=new QtFreqParamsSetting(this);
this->WidgetImageSetting = new QtWidgetsClass_ImageSetting(this);
// <20><><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD>ģʽ
this->WidgetISARMode = new QtWidgetsClass_ISAR();
this->WidgetCirCleSARMode = new QtWidgetsClass_CircleSAR();
this->WidgetScanMode = new QtWidgetsClass_Scan();
this->WidgetstriMode = new QtWidgetsClass_Strip();
QObject::connect(this->WidgetISARMode, SIGNAL(OKClick()), this, SLOT(OKClickISAR( )));
QObject::connect(this->WidgetstriMode,SIGNAL(OKClick()),this,SLOT(OKClickStrip( )));
QObject::connect(this->WidgetCirCleSARMode, SIGNAL(OKClick()), this, SLOT(OKClickCircleSAR( )));
QObject::connect(this->WidgetScanMode, SIGNAL(OKClick()), this, SLOT(OKClickScane( )));
QObject::connect(this->Widgetfreqsetting, SIGNAL(OKClick()), this, SLOT(OKClickFreqSetting( )));
QObject::connect(this->WidgetImageSetting, SIGNAL(OKClick()), this, SLOT(OKClickImageSetting( )));
// <20><><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>
//this->Widgetfreqsetting->freqParams = this->freqSetting;
this->ui.tabWidget->removeTab(0);
this->ui.tabWidget->insertTab(0, this->Widgetfreqsetting, u8"Ƶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
this->ui.tabWidget->removeTab(2);
this->ui.tabWidget->insertTab(2, this->WidgetImageSetting, u8"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
this->ui.comboBox_ImageMode->addItem(FEKOBase::FEKOImageModeenumToString(FEKOBase::FEKOImageMode::Strip));
this->ui.comboBox_ImageMode->addItem(FEKOBase::FEKOImageModeenumToString(FEKOBase::FEKOImageMode::Scane));
this->ui.comboBox_ImageMode->addItem(FEKOBase::FEKOImageModeenumToString(FEKOBase::FEKOImageMode::ISAR));
this->ui.comboBox_ImageMode->addItem(FEKOBase::FEKOImageModeenumToString(FEKOBase::FEKOImageMode::CircleSAR));
this->ui.comboBox_LookSide->addItem(u8"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
this->ui.comboBox_LookSide->addItem(u8"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
// <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>
this->antModel = nullptr;
this->myContext = nullptr;
this->ui.tabantModeMove->setEnabled(false);
}
QtSARAntModelSettingClass::~QtSARAntModelSettingClass()
{
}
void QtSARAntModelSettingClass::removeModeSettingWidget()
{
this->ui.tabWidget->removeTab(1);
this->FEKOAntPoselist.clear();
}
void QtSARAntModelSettingClass::switchStripImageParamsWeight()
{
this->removeModeSettingWidget();
this->ui.tabWidget->insertTab(1, this->WidgetstriMode, u8"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
this->ui.comboBox_LookSide->setEnabled(true);
}
void QtSARAntModelSettingClass::switchScanImageParamsWeight()
{
this->removeModeSettingWidget();
this->ui.tabWidget->insertTab(1, this->WidgetScanMode, u8"ɨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
this->ui.comboBox_LookSide->setEnabled(true);
}
void QtSARAntModelSettingClass::switchISARImageParamsWeight()
{
this->removeModeSettingWidget();
this->ui.tabWidget->insertTab(1, this->WidgetISARMode, u8"ISAR<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
this->ui.comboBox_LookSide->setEnabled(false);
}
void QtSARAntModelSettingClass::switchCircleSARImageParamsWeight()
{
this->removeModeSettingWidget();
this->ui.tabWidget->insertTab(1, this->WidgetCirCleSARMode, u8"Բ<EFBFBD><EFBFBD>SAR<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
this->ui.comboBox_LookSide->setEnabled(false);
}
void QtSARAntModelSettingClass::ReferenceWindows()
{
this->ui.lineEdit_TaskName->setText(this->simulationparams->getTaskName());
//this->ui.comboBox_ImageMode->setCurrentText(FEKOBase::FEKOImageModeenumToString(this->simulationparams->imagemode));
switch (this->simulationparams->imagemode) {
case FEKOBase::FEKOImageMode::Strip:
this->ui.comboBox_ImageMode->setCurrentIndex(0);
break;
case FEKOBase::FEKOImageMode::Scane:
this->ui.comboBox_ImageMode->setCurrentIndex(1);
break;
case FEKOBase::FEKOImageMode::ISAR:
this->ui.comboBox_ImageMode->setCurrentIndex(2);
break;
case FEKOBase::FEKOImageMode::CircleSAR:
this->ui.comboBox_ImageMode->setCurrentIndex(3);
break;
}
if (this->simulationparams->isRight) {
this->ui.comboBox_LookSide->setCurrentIndex(1);
}
else {
this->ui.comboBox_LookSide->setCurrentIndex(0);
}
this->ui.lineEdit_refRange->setText(QString::number(this->simulationparams->refRange));
this->ui.lineEdit_incangle->setText(QString::number(this->simulationparams->incangle));
emit this->simulationparams->FEKOSimulationDataparamsChanged(); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸ķ<DEB8><C4B7>͵<EFBFBD><CDB5><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
this->generator_FEKOSatelliteParams();
}
void QtSARAntModelSettingClass::refreshFEKOSimulationParams()
{
this->simulationparams->taskName = this->ui.lineEdit_TaskName->text();
this->simulationparams->AntennaRadiationFileName = this->ui.lineEdit_farsourcePath->text();
this->simulationparams->isRight = this->ui.comboBox_LookSide->currentIndex() == 1;
this->simulationparams->imagemode=FEKOBase::FEKOImageModeString2Enum(this->ui.comboBox_ImageMode->currentText().trimmed());
this->simulationparams->refRange = this->ui.lineEdit_refRange->text().toDouble();
this->simulationparams->incangle = this->ui.lineEdit_incangle->text().toDouble();
}
void QtSARAntModelSettingClass::setOCCTDocument(Handle(AIS_InteractiveContext) myContext)
{
this->myContext = myContext;
QString antFilePath=getOpenFilePath(
nullptr,
QString::fromUtf8(u8"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״<EFBFBD>ģ<EFBFBD><EFBFBD>"),
QString::fromUtf8(u8"STL Files (*.stl);;STL Files (*.stla);;step Files (*.stp);;step Files (*.step);;IGES Files (*.iges);;IGES Files (*.igs)"));
if (isExists(antFilePath)) {
this->antModel = new antModelClass(antFilePath);
}
else {
this->antModel = new antModelClass();
}
this->ui.tabantModeMove->setEnabled(true);
}
void QtSARAntModelSettingClass::OKClickISAR( )
{
this->refreshFEKOSimulationParams();
this->generator_FEKOSatelliteParams();
// <20><><EFBFBD><EFBFBD>չʾģ<CABE><C4A3>
if (this->myContext.IsNull()) {
this->ui.horizontalSlider_PRF->setValue(0);
//this->on_horizontalSlider_PRF_valueChanged(0);
}
emit this->simulationparams->FEKOSimulationDataparamsChanged();
}
void QtSARAntModelSettingClass::OKClickStrip( )
{
qDebug() << u8"<EFBFBD><EFBFBD><EFBFBD><EFBFBD> Strip...";
this->refreshFEKOSimulationParams();
this->generator_FEKOSatelliteParams();
if (this->myContext.IsNull()) {
this->ui.horizontalSlider_PRF->setValue(0);
}
emit this->simulationparams->FEKOSimulationDataparamsChanged();
}
void QtSARAntModelSettingClass::OKClickCircleSAR( )
{
this->refreshFEKOSimulationParams();
this->generator_FEKOSatelliteParams();
// <20><><EFBFBD><EFBFBD>չʾģ<CABE><C4A3>
if (this->myContext.IsNull()) {
this->ui.horizontalSlider_PRF->setValue(0);
//this->on_horizontalSlider_PRF_valueChanged(0);
}
emit this->simulationparams->FEKOSimulationDataparamsChanged();
}
void QtSARAntModelSettingClass::OKClickScane( )
{
this->refreshFEKOSimulationParams();
this->generator_FEKOSatelliteParams();
if (this->myContext.IsNull()) {
this->ui.horizontalSlider_PRF->setValue(0);
}
emit this->simulationparams->FEKOSimulationDataparamsChanged();
}
void QtSARAntModelSettingClass::OKClickFreqSetting( )
{
this->refreshFEKOSimulationParams();
emit this->simulationparams->FEKOSimulationDataparamsChanged();
}
void QtSARAntModelSettingClass::OKClickImageSetting( )
{
this->refreshFEKOSimulationParams();
emit this->simulationparams->FEKOSimulationDataparamsChanged();
}
void QtSARAntModelSettingClass::on_comboBox_ImageMode_currentIndexChanged(int index)
{
QString text = this->ui.comboBox_ImageMode->currentText();
this->simulationparams->imagemode = FEKOBase::FEKOImageModeString2Enum(text.trimmed());
if (this->simulationparams->imagemode == FEKOBase::FEKOImageMode::UNKNOW) {
QMessageBox::information(nullptr, QString::fromUtf8(u8"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), QString::fromUtf8(u8"δ֪<EFBFBD>ij<EFBFBD><EFBFBD><EFBFBD>ģʽ"));
return;
}
else if (this->simulationparams->imagemode == FEKOBase::FEKOImageMode::Strip) {
this->switchStripImageParamsWeight();
}
else if (this->simulationparams->imagemode == FEKOBase::FEKOImageMode::Scane) {
this->switchScanImageParamsWeight();
}
else if (this->simulationparams->imagemode == FEKOBase::FEKOImageMode::ISAR) {
this->switchISARImageParamsWeight();
}
else if (this->simulationparams->imagemode == FEKOBase::FEKOImageMode::CircleSAR) {
this->switchCircleSARImageParamsWeight();
}
else {
QMessageBox::information(nullptr, QString::fromUtf8(u8"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), QString::fromUtf8(u8"δ֪<EFBFBD>ij<EFBFBD><EFBFBD><EFBFBD>ģʽ"));
}
}
void QtSARAntModelSettingClass::on_pushButton_ffe_clicked()
{
QtWidgetsClass_FarSourceSetting* ffeselectwindows = new QtWidgetsClass_FarSourceSetting(this);
QObject::connect(ffeselectwindows, SIGNAL(setResultSelected(size_t, size_t, QString)), this, SLOT(SelectFFESourcePath(size_t, size_t, QString)));
ffeselectwindows->show();
}
void QtSARAntModelSettingClass::on_comboBox_LookSide_currentIndexChanged(int index)
{
QString lookside = this->ui.comboBox_LookSide->currentText();
if (lookside == u8"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>") {
this->simulationparams->isRight = false;
}
else {
this->simulationparams->isRight = true;
}
}
void QtSARAntModelSettingClass::on_horizontalSlider_PRF_valueChanged(int value)
{
if (this->FEKOAntPoselist.size() == 0) {
return;
}
this->ui.horizontalSlider_PRF->setMinimum(0);
this->ui.horizontalSlider_PRF->setMaximum(this->FEKOAntPoselist.size()-1);
// <20>Ƴ<EFBFBD><C6B3><EFBFBD>
Handle(AIS_InteractiveObject) moveShapeold = this->antModel->get_antModelShow();
this->myContext->Remove(moveShapeold,Standard_False);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
FEKOBase::FEKOSatelliteParams temp = this->FEKOAntPoselist[value];
this->antModel->applyAntModel(temp.pose.pos.Px, temp.pose.pos.Py, temp.pose.pos.Pz, temp.pose.vel.Vx, temp.pose.vel.Vy, temp.pose.vel.Vz, temp.incidenceAngle, temp.AzAngle, this->simulationparams->isRight);
Handle(AIS_InteractiveObject) moveShape = this->antModel->get_antModelShow();
this->myContext->Display(moveShape, Standard_True);
if (this->simulationparams->imagemode == FEKOBase::FEKOImageMode::ISAR || this->simulationparams->imagemode == FEKOBase::FEKOImageMode::CircleSAR) {
this->ui.label_AZ_Angle->setText(u8"<EFBFBD><EFBFBD>λ<EFBFBD>ǣ<EFBFBD>");
}
else {
this->ui.label_AZ_Angle->setText(u8"<EFBFBD><EFBFBD><EFBFBD>ڽǣ<EFBFBD>");
}
this->ui.lineEdit_PRF_Show->setText(QString::number(temp.PRFidx));
this->ui.lineEdit_X_Show->setText(QString::number(temp.pose.pos.Px));
this->ui.lineEdit_Y_Show->setText(QString::number(temp.pose.pos.Py));
this->ui.lineEdit_Z_Show->setText(QString::number(temp.pose.pos.Pz));
this->ui.lineEdit_Az_Show->setText(QString::number(temp.AzAngle));
this->ui.lineEdit_incangle_Show->setText(QString::number(temp.incidenceAngle));
this->ui.lineEdit_X_Show->setReadOnly(true);
this->ui.lineEdit_Y_Show->setReadOnly(true);
this->ui.lineEdit_Z_Show->setReadOnly(true);
this->ui.lineEdit_Az_Show->setReadOnly(true);
this->ui.lineEdit_incangle_Show->setReadOnly(true);
}
void QtSARAntModelSettingClass::on_pushButton_OK_clicked()
{
this->refreshFEKOSimulationParams(); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>²<EFBFBD><C2B2><EFBFBD>
this->saveFEKOImageSettingXML();
QString luatext = this->createLuaSciptString(0, this->FEKOAntPoselist.size());
// д<><D0B4><EFBFBD>ļ<EFBFBD>
QString filePath = this->workSpace + QDir::separator() + this->simulationparams->taskName + QString(u8"_%1.lua").arg(FEKOBase::FEKOImageModeenumToString(this->simulationparams->imagemode));
// <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
QFile file(filePath);
// <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>Թ<EFBFBD>д<EFBFBD><EFBFBD><EBA3AC><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڽ<EFBFBD><DABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
if (file.open(QIODevice::WriteOnly | QIODevice::Text)) {
// <20><><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>ΪUTF-8
QTextStream stream(&file);
stream.setCodec("UTF-8");
stream << luatext;
// <20>ر<EFBFBD><D8B1>ļ<EFBFBD>
file.close();
// <20><>ʾ<EFBFBD>ļ<EFBFBD>д<EFBFBD><D0B4><EFBFBD>ɹ<EFBFBD>
QMessageBox::information(nullptr, QString::fromUtf8(u8"<EFBFBD><EFBFBD>ʾ"), QString::fromUtf8(u8"<EFBFBD>ļ<EFBFBD>д<EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>!\n%1").arg(filePath));
qDebug() << "File written successfully.";
}
else {
qDebug() << "Could not open file for writing.";
QMessageBox::information(nullptr, QString::fromUtf8(u8"<EFBFBD><EFBFBD>ʾ"), QString::fromUtf8(u8"<EFBFBD>ļ<EFBFBD>д<EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>"));
}
// ѯ<><D1AF><EFBFBD>û<EFBFBD><C3BB>Ƿ<EFBFBD><C7B7>رմ<D8B1><D5B4><EFBFBD>
QMessageBox::StandardButton reply;
reply = QMessageBox::question(this, QString::fromUtf8(u8"<EFBFBD><EFBFBD>ʾ"), QString::fromUtf8(u8"<EFBFBD>Ƿ<EFBFBD><EFBFBD>رմ<EFBFBD><EFBFBD><EFBFBD>?"),
QMessageBox::Yes | QMessageBox::No);
if (reply == QMessageBox::Yes) {
this->close();
}
else {
return;
}
}
void QtSARAntModelSettingClass::on_pushButton_Cancel_clicked()
{
// ѯ<><D1AF><EFBFBD>û<EFBFBD><C3BB>Ƿ<EFBFBD><C7B7>رմ<D8B1><D5B4><EFBFBD>
QMessageBox::StandardButton reply;
reply = QMessageBox::question(this, QString::fromUtf8(u8"<EFBFBD><EFBFBD>ʾ"), QString::fromUtf8(u8"<EFBFBD>Ƿ<EFBFBD><EFBFBD>رմ<EFBFBD><EFBFBD><EFBFBD>?"),
QMessageBox::Yes | QMessageBox::No);
if (reply == QMessageBox::Yes) {
this->close();
}
else {
return;
}
}
void QtSARAntModelSettingClass::on_lineEdit_Range_editingFinished()
{
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
this->simulationparams->setRefRange(this->ui.lineEdit_refRange->text().toDouble());
QMessageBox::StandardButton reply = QMessageBox::question(this, u8"<EFBFBD><EFBFBD>ʾ", u8"<EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̬", QMessageBox::Yes | QMessageBox::No);
if (reply == QMessageBox::Yes) {
this->generator_FEKOSatelliteParams();
}
else {
return;
}
}
void QtSARAntModelSettingClass::SelectFFESourcePath(size_t thetaPoints, size_t phiPoints, QString ffePath)
{
if (!isExists(ffePath)) {
// <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
QMessageBox::information(nullptr, QString::fromUtf8(u8"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), QString::fromUtf8(u8"<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
return;
}
QString filename = getFileNameFromPath(ffePath);
{
QFile sourceFile(ffePath);
QString fullpath = QDir::cleanPath(this->workSpace + QDir::separator() + filename);
QFile destinationFile(fullpath);
// <20><><EFBFBD><EFBFBD>Դ<EFBFBD>ļ<EFBFBD><C4BC>Թ<EFBFBD><D4B9><EFBFBD>ȡ
if (sourceFile.open(QIODevice::ReadOnly)) {
// <20><><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD>ļ<EFBFBD><C4BC>Թ<EFBFBD>д<EFBFBD><D0B4>
if (destinationFile.open(QIODevice::WriteOnly)) {
// <20><>Դ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ݸ<EFBFBD><DDB8>Ƶ<EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD>ļ<EFBFBD>
QByteArray data = sourceFile.readAll();
destinationFile.write(data);
// <20>ر<EFBFBD><D8B1>ļ<EFBFBD>
destinationFile.close();
}
else {
qDebug() << "Could not open destination file for writing.";
}
// <20>ر<EFBFBD>Դ<EFBFBD>ļ<EFBFBD>
sourceFile.close();
}
else {
qDebug() << "Could not open source file for reading.";
}
}
this->ui.lineEdit_farsourcePath->setText(filename);
this->simulationparams->setAntennaRadiationFileName(filename);
this->simulationparams->setFarsourceThetaPoints(thetaPoints);
this->simulationparams->setFarsourcePhiPoints(phiPoints);
}
void QtSARAntModelSettingClass::FEKOSimulationDataparamsChanged_slots()
{
qDebug() << u8"QtSARAntModelSettingClass::bandingsetFEKOSimulationDataparams()";
}
void QtSARAntModelSettingClass::bandingsetFEKOSimulationDataparams()
{
QObject::connect(this->simulationparams.get(), SIGNAL(FEKOSimulationDataparamsChanged()), this, SLOT(FEKOSimulationDataparamsChanged_slots()));
this->Widgetfreqsetting->setFEKOSimulationDataparams(this->simulationparams);
this->WidgetImageSetting->setFEKOSimulationDataparams(this->simulationparams);
// <20><><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD>ģʽ
this->WidgetISARMode->setFEKOSimulationDataparams(this->simulationparams);
this->WidgetCirCleSARMode->setFEKOSimulationDataparams(this->simulationparams);
this->WidgetScanMode->setFEKOSimulationDataparams(this->simulationparams);
this->WidgetstriMode->setFEKOSimulationDataparams(this->simulationparams);
emit this->simulationparams->FEKOSimulationDataparamsChanged();
}