Files
newspark110/device/ui/sscancompsetwidget.cpp
Chenwenxuan edac2715f0 init
2024-03-06 14:54:30 +08:00

208 lines
7.0 KiB
C++

#include "sscancompsetwidget.h"
#include "rs_settings.h"
#include <QFileDialog>
#include "deviceproxy.h"
#include "rs_settings.h"
SScanCompSetWidget::SScanCompSetWidget(QWidget* parent)
:QFrame(parent)
,ui(new Ui::SScanCompSetWidget)
{
ui->setupUi(this);
loadSet();
connect(ui->dsbXWorkRang,SIGNAL(valueChanged(double)),this,SLOT(dsbXWorkRangValueChangedHandl(double)));
connect(ui->dsbXInterval,SIGNAL(valueChanged(double)),this,SLOT(dsbXIntervalValueChangedHandl(double)));
connect(ui->dsbYWorkRang,SIGNAL(valueChanged(double)),this,SLOT(dsbYWorkRangValueChangedHandl(double)));
connect(ui->dsbYInterval,SIGNAL(valueChanged(double)),this,SLOT(dsbYIntervalValueChangedHandl(double)));
}
void SScanCompSetWidget::loadSet()
{
RS_SETTINGS->beginGroup("device/SSCS");
double temp = RS_SETTINGS->readNumDEntry("/XRange",1.0);
ui->dsbXWorkRang->setValue(temp);
RS_SETTINGS->endGroup();
RS_SETTINGS->beginGroup("device/SSCS");
temp = RS_SETTINGS->readNumDEntry("/YRange",1.0);
ui->dsbYWorkRang->setValue(temp);
RS_SETTINGS->endGroup();
RS_SETTINGS->beginGroup("device/SSCS");
temp = RS_SETTINGS->readNumDEntry("/XInterval",1.0);
ui->dsbXInterval->setValue(temp);
RS_SETTINGS->endGroup();
RS_SETTINGS->beginGroup("device/SSCS");
temp = RS_SETTINGS->readNumDEntry("/YInterval",1.0);
ui->dsbYInterval->setValue(temp);
RS_SETTINGS->endGroup();
RS_SETTINGS->beginGroup("device/SSCS");
temp = RS_SETTINGS->readNumDEntry("/lowerLimit");
ui->dsbLowerLimit->setValue(temp);
RS_SETTINGS->endGroup();
RS_SETTINGS->beginGroup("device/SSCS");
temp = RS_SETTINGS->readNumDEntry("/upperLimit");
ui->dsbUpperLimit->setValue(temp);
RS_SETTINGS->endGroup();
RS_SETTINGS->beginGroup("device/SSCS"); //?path读不到
QString savePath = RS_SETTINGS->readEntry("/dataSavePath");
ui->lePath->setText(savePath);//dataSavePath
RS_SETTINGS->endGroup();
RS_SETTINGS->beginGroup("device/SSCS");
temp = RS_SETTINGS->readNumDEntry("/AdjacentPoint");
ui->dsbAdjacentPoint->setValue(temp);
RS_SETTINGS->endGroup();
RS_SETTINGS->beginGroup("device/SSCS");
temp = RS_SETTINGS->readNumDEntry("/AllRange");
ui->dsbAllRange->setValue(temp);
RS_SETTINGS->endGroup();
RS_SETTINGS->beginGroup("device/SSCS");
temp = RS_SETTINGS->readNumDEntry("/PowerThreshold");
ui->dsbPowerThreshold->setValue(temp);
RS_SETTINGS->endGroup();
}
void SScanCompSetWidget::dsbXWorkRangValueChangedHandl(double value)
{
double diffValue = ui->dsbXWorkRang->value()/ui->dsbXInterval->value();
if(abs(diffValue - int(diffValue) ) > 0.0000001)
{
int multiple = int(diffValue);
double xWorkRangNew = double(multiple*ui->dsbXInterval->value());
//注意最小值问题
if(xWorkRangNew<1)
{
xWorkRangNew+=ui->dsbXInterval->value();
}
disconnect(ui->dsbXWorkRang,SIGNAL(valueChanged(double)),this,SLOT(dsbXWorkRangValueChangedHandl(double)));
ui->dsbXWorkRang->setValue(xWorkRangNew);
connect(ui->dsbXWorkRang,SIGNAL(valueChanged(double)),this,SLOT(dsbXWorkRangValueChangedHandl(double)));
value = xWorkRangNew;
}
RS_SETTINGS->beginGroup("device/SSCS");
RS_SETTINGS->writeEntry("/XRange",value);
RS_SETTINGS->endGroup();
}
void SScanCompSetWidget::dsbYWorkRangValueChangedHandl(double value)
{
double diffValue = ui->dsbYWorkRang->value()/ui->dsbYInterval->value();
if(abs(diffValue - int(diffValue) ) > 0.0000001)
{
int multiple = int(diffValue);
double yWorkRangNew = double(multiple*ui->dsbYInterval->value());
if(yWorkRangNew<1)
{
yWorkRangNew+=ui->dsbYInterval->value();
}
disconnect(ui->dsbYWorkRang,SIGNAL(valueChanged(double)),this,SLOT(dsbYWorkRangValueChangedHandl(double)));
ui->dsbYWorkRang->setValue(yWorkRangNew);
connect(ui->dsbYWorkRang,SIGNAL(valueChanged(double)),this,SLOT(dsbYWorkRangValueChangedHandl(double)));
value = yWorkRangNew;
}
RS_SETTINGS->beginGroup("device/SSCS");
RS_SETTINGS->writeEntry("/YRange",value);
RS_SETTINGS->endGroup();
}
void SScanCompSetWidget::dsbXIntervalValueChangedHandl(double value)
{
double diffValue = ui->dsbXWorkRang->value()/ui->dsbXInterval->value();
if(abs(diffValue - int(diffValue) ) > 0.0000001)
{
int multiple = int(diffValue);
double XWorkRangNewValue = double(multiple*ui->dsbXInterval->value());
if(XWorkRangNewValue<1)
{
XWorkRangNewValue+=ui->dsbXInterval->value();
}
ui->dsbXWorkRang->setValue(XWorkRangNewValue);
}
RS_SETTINGS->beginGroup("device/SSCS");
RS_SETTINGS->writeEntry("/XInterval",value);
RS_SETTINGS->endGroup();
}
void SScanCompSetWidget::dsbYIntervalValueChangedHandl(double value)
{
double diffValue = ui->dsbYWorkRang->value()/ui->dsbYInterval->value();
if(abs(diffValue - int(diffValue) ) > 0.0000001)
{
int multiple = int(diffValue);
double YWorkRangNewValue = double(multiple*ui->dsbYInterval->value());
if(YWorkRangNewValue<1)
{
YWorkRangNewValue+=ui->dsbYInterval->value();
}
ui->dsbYWorkRang->setValue(YWorkRangNewValue);
}
RS_SETTINGS->beginGroup("device/SSCS");
RS_SETTINGS->writeEntry("/YInterval",value);
RS_SETTINGS->endGroup();
}
void SScanCompSetWidget::on_dsbUpperLimit_valueChanged(double value)
{
RS_SETTINGS->beginGroup("device/SSCS");
RS_SETTINGS->writeEntry("/upperLimit",value);
RS_SETTINGS->endGroup();
}
void SScanCompSetWidget::on_dsbLowerLimit_valueChanged(double value)
{
RS_SETTINGS->beginGroup("device/SSCS");
RS_SETTINGS->writeEntry("/lowerLimit",value);
RS_SETTINGS->endGroup();
}
void SScanCompSetWidget::on_pbBrowse_clicked()
{
QString savePath;
savePath = QFileDialog::getExistingDirectory(this,"路径选择");
ui->lePath->setText(savePath);
RS_SETTINGS->beginGroup("device/SSCS");
RS_SETTINGS->writeEntry("/dataSavePath",savePath);
RS_SETTINGS->endGroup();
}
void SScanCompSetWidget::on_pbSscanLoadFromFile_clicked()
{
QString SscanDataFilePath = QFileDialog::getOpenFileName(this,"选择加工代码");
DEV->LoadFromCsv(SscanDataFilePath);
QMessageBox msg(this);
msg.setWindowTitle("加载提示");
msg.setText("加载成功,需确保加载文件和扫描参数匹配!");
msg.setIcon(QMessageBox::Warning);
msg.exec();
}
void SScanCompSetWidget::on_dsbAdjacentPoint_valueChanged(double arg1)
{
RS_SETTINGS->beginGroup("device/SSCS");
RS_SETTINGS->writeEntry("/AdjacentPoint",arg1);
RS_SETTINGS->endGroup();
}
void SScanCompSetWidget::on_dsbAllRange_valueChanged(double arg1)
{
RS_SETTINGS->beginGroup("device/SSCS");
RS_SETTINGS->writeEntry("/AllRange",arg1);
RS_SETTINGS->endGroup();
}
void SScanCompSetWidget::on_dsbPowerThreshold_valueChanged(double arg1)
{
RS_SETTINGS->beginGroup("device/SSCS");
RS_SETTINGS->writeEntry("/PowerThreshold",arg1);
RS_SETTINGS->endGroup();
}