#include "sscancompsetwidget.h" #include "rs_settings.h" #include #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(); }