#include "windowchannelsettings.h" #include "ui_windowchannelsettings.h" void WindowChannelSettings::hideValue() { ui->comboBoxUNITS->hide(); ui->labelIIN->hide(); ui->labelSENS->hide(); } void WindowChannelSettings::showValue() { ui->comboBoxUNITS->show(); ui->labelIIN->show(); ui->labelSENS->show(); } WindowChannelSettings::WindowChannelSettings(QWidget *parent) : QWidget(parent), ui(new Ui::WindowChannelSettings) { ui->setupUi(this); QPalette pal = QPalette(); // set black background // Qt::black / "#000000" / "black" pal.setColor(QPalette::Window, Qt::black); this->setAutoFillBackground(true); this->setPalette(pal); this->show(); thisData.IFN=Lp200; //инициализирую по умолчанию, что бы когда прилетит первый сэнс не было вылета из за расчетов портированных с прибора thisData.IFV=Hp1; thisData.IIN=ICP; thisData.IKU=Ku1; thisData.SENS=1.0; thisData.VALUE=Accel; connect(ui->labelSENS,SIGNAL(clicked()),this,SLOT(sendSens()));//подключаю сигнал от кастом лэйбла для вызова процедуры смены чувствительности ui->comboBoxUNITS->addItem("пКл/м/с2"); //индекс 0 ui->comboBoxUNITS->addItem("мВ/м/с2");//индекс 1 ui->comboBoxUNITS->addItem("пКл/мм/с"); //индекс 2 ui->comboBoxUNITS->addItem("мВ/мм/с");//индекс 3 ui->comboBoxUNITS->addItem("пКл/Па"); //индекс 4 ui->comboBoxUNITS->addItem("мВ/Па");//индекс 5 ui->comboBoxUNITS->addItem("пКл/кПа"); //индекс 6 ui->comboBoxUNITS->addItem("мВ/кПа");//индекс 7 ui->comboBoxUNITS->addItem("пКл/МПа");//индекс 8 ui->comboBoxUNITS->addItem("мВ/МПа"); //индекс 0 ui->comboBoxUNITS->addItem("пКл/Н");//индекс 1 ui->comboBoxUNITS->addItem("мВ/Н"); //индекс 2 ui->comboBoxUNITS->addItem("пКл/кН");//индекс 3 ui->comboBoxUNITS->addItem("мВ/кН"); //индекс 4 ui->comboBoxUNITS->addItem("пКл/мВ");//индекс 5 ui->comboBoxUNITS->addItem("мВ/мВ"); //индекс 6 ui->comboBoxUNITS->addItem("пКл/пКл");//индекс 7 ui->comboBoxUNITS->addItem("мВ/пКл");//индекс 8 hideValue(); } WindowChannelSettings::~WindowChannelSettings() { delete ui; } void WindowChannelSettings::setWindowsChannel(typeCHANNEL channel) { this->channel = channel; thisData.channel=channel; ui->labelChanel->setNum((int)(channel+1)); //потому что енам с 0 } void WindowChannelSettings::sendSens() { Set dataToSend=thisData; bool ok; dataToSend.SENS = QInputDialog::getDouble(this, tr("Введите значение"), tr("Введите значение чувствительности датчика"), thisData.SENS, 0.0001, 99999, 4, &ok, Qt::WindowFlags(), 1); if (ok){emit ReadyToSend(dataToSend, SENS);} if(thisData.IKU!=VerifyGainA142(thisData)){ thisData.IKU=VerifyGainA142(thisData); emit ReadyToSend(thisData, IKU); }; } void WindowChannelSettings::setSens(Set data) { if(data.channel==this->channel){ thisData.SENS=data.SENS; reDraw(); } } void WindowChannelSettings::setState(Set data) { if(data.channel==this->channel){ thisData.IKU=data.IKU; thisData.IIN=data.IIN; thisData.IFV=data.IFV; thisData.IFN=data.IFN; thisData.VALUE=data.VALUE; reDraw(); } } void WindowChannelSettings::reDraw() { if(thisData.SENS<100000&&thisData.SENS>=10000) { ui->labelSENS->setText(QString::number(thisData.SENS,'f', 0));} else if(thisData.SENS<10000&&thisData.SENS>=1000) { ui->labelSENS->setText(QString::number(thisData.SENS,'f', 1));} else if(thisData.SENS<1000&&thisData.SENS>=100) {ui->labelSENS->setText(QString::number(thisData.SENS,'f', 2));} else if(thisData.SENS<100&&thisData.SENS>=10){ui->labelSENS->setText(QString::number(thisData.SENS,'f', 3));} else {ui->labelSENS->setText(QString::number(thisData.SENS,'f', 4));} switch (thisData.IIN) { case ICP:{ ui->labelIIN->setText("IEPE"); break; } case CHARGE:{ ui->labelIIN->setText("PE"); break; } }//end switch if(thisData.IIN==ICP){ switch (thisData.VALUE){ case Accel: ui->comboBoxUNITS->setCurrentIndex(1); break; case Velocity: ui->comboBoxUNITS->setCurrentIndex(3); break; case Pascal: ui->comboBoxUNITS->setCurrentIndex(5); break; case k_Pascal: ui->comboBoxUNITS->setCurrentIndex(7); break; case M_Pascal: ui->comboBoxUNITS->setCurrentIndex(9); break; case Nython: ui->comboBoxUNITS->setCurrentIndex(11); break; case k_Nuthon: ui->comboBoxUNITS->setCurrentIndex(13); break; case pQ: ui->comboBoxUNITS->setCurrentIndex(15); break; case mV: ui->comboBoxUNITS->setCurrentIndex(17); break; } } else{ switch (thisData.VALUE){ case Accel: ui->comboBoxUNITS->setCurrentIndex(0); break; case Velocity: ui->comboBoxUNITS->setCurrentIndex(2); break; case Pascal: ui->comboBoxUNITS->setCurrentIndex(4); break; case k_Pascal: ui->comboBoxUNITS->setCurrentIndex(6); break; case M_Pascal: ui->comboBoxUNITS->setCurrentIndex(8); break; case Nython: ui->comboBoxUNITS->setCurrentIndex(10); break; case k_Nuthon: ui->comboBoxUNITS->setCurrentIndex(12); break; case pQ: ui->comboBoxUNITS->setCurrentIndex(14); break; case mV: ui->comboBoxUNITS->setCurrentIndex(16); break; } } showValue(); } typeIKU WindowChannelSettings::VerifyGainA142(Set Data) //сверяет гейн на допусимый прибора при установке сенс { if(Data.SENS <= 0.0010f) //0.001 { if(Data.IKU > Ku1000) { Data.IKU = Ku1000; } } else if(/*sens >= 0.0011f && */Data.SENS <= 10.000f) //0.002 { if(Data.IKU > Ku1000) { Data.IKU = Ku1000; } } else if(/*sens >= 10.001f && */Data.SENS <= 20.000f) //20 { if(Data.IKU > Ku500) { Data.IKU = Ku500; } } else if(/*sens >= 20.001f && */Data.SENS <= 50.000f) //50 { if(Data.IKU > Ku200) { Data.IKU = Ku200; } } else if(/*sens >= 50.001f && */Data.SENS <= 100.00f) //100 { if(Data.IKU > Ku100) { Data.IKU = Ku100; } } else if(/*sens >= 100.01f && */Data.SENS <= 200.00f) //200 { if(Data.IKU > Ku50) { Data.IKU = Ku50; } } else if(/*sens >= 200.01f && */Data.SENS <= 500.00f) //500 { if(Data.IKU > Ku20) { Data.IKU = Ku20; } } else if(/*sens >= 500.01f && */Data.SENS <= 1000.0f) //1000 { if(Data.IKU > Ku10) { Data.IKU = Ku10; } } else if(/*sens >= 1000.01f && */Data.SENS <= 2000.0f) //2000 { if(Data.IKU > Ku5) { Data.IKU = Ku5; } } else if(/*sens >= 2000.01f && */Data.SENS <= 5000.0f) //5000 { if(Data.IKU > Ku2) { Data.IKU = Ku2; } } else if(/*sens >= 5000.01f && */Data.SENS <= 10000.0f) //10000 { if(Data.IKU > Ku1) { Data.IKU = Ku1; } } else if(/*sens >= 10001.0f && */Data.SENS <= 20000.0f) //20000 { if(Data.IKU > Ku0_5) { Data.IKU = Ku0_5; } } else if(/*sens >= 20001.0f && */Data.SENS <= 50000.0f) //50000 { if(Data.IKU > Ku0_2) { Data.IKU = Ku0_2; } } else if(Data.SENS < 100000.0f) //99999 { if(Data.IKU > Ku0_1) { Data.IKU = Ku0_1; } } return Data.IKU; } void WindowChannelSettings::on_comboBoxUNITS_activated(int index) { if(index==0) { thisData.IIN=CHARGE; thisData.VALUE=Accel; emit ReadyToSend(thisData, IIN); emit ReadyToSend(thisData, VAL); }; if(index==1) { thisData.IIN=ICP; thisData.VALUE=Accel; emit ReadyToSend(thisData, IIN); emit ReadyToSend(thisData, VAL); }; if(index==2) { thisData.IIN=CHARGE; thisData.VALUE=Velocity; emit ReadyToSend(thisData, IIN); emit ReadyToSend(thisData, VAL); }; if(index==3) { thisData.IIN=ICP; thisData.VALUE=Velocity; emit ReadyToSend(thisData, IIN); emit ReadyToSend(thisData, VAL); }; if(index==4) { thisData.IIN=CHARGE; thisData.VALUE=Pascal; emit ReadyToSend(thisData, IIN); emit ReadyToSend(thisData, VAL); }; if(index==5) { thisData.IIN=ICP; thisData.VALUE=Pascal; emit ReadyToSend(thisData, IIN); emit ReadyToSend(thisData, VAL); }; if(index==6) { thisData.IIN=CHARGE; thisData.VALUE=k_Pascal; emit ReadyToSend(thisData, IIN); emit ReadyToSend(thisData, VAL); }; if(index==7) { thisData.IIN=ICP; thisData.VALUE=k_Pascal; emit ReadyToSend(thisData, IIN); emit ReadyToSend(thisData, VAL); }; if(index==8) { thisData.IIN=CHARGE; thisData.VALUE=M_Pascal; emit ReadyToSend(thisData, IIN); emit ReadyToSend(thisData, VAL); }; if(index==9) { thisData.IIN=ICP; thisData.VALUE=M_Pascal; emit ReadyToSend(thisData, IIN); emit ReadyToSend(thisData, VAL); }; if(index==10) { thisData.IIN=CHARGE; thisData.VALUE=Nython; emit ReadyToSend(thisData, IIN); emit ReadyToSend(thisData, VAL); }; if(index==11) { thisData.IIN=ICP; thisData.VALUE=Nython; emit ReadyToSend(thisData, IIN); emit ReadyToSend(thisData, VAL); }; if(index==12) { thisData.IIN=CHARGE; thisData.VALUE=k_Nuthon; emit ReadyToSend(thisData, IIN); emit ReadyToSend(thisData, VAL); }; if(index==13) { thisData.IIN=ICP; thisData.VALUE=k_Nuthon; emit ReadyToSend(thisData, IIN); emit ReadyToSend(thisData, VAL); }; if(index==14) { thisData.IIN=CHARGE; thisData.VALUE=pQ; emit ReadyToSend(thisData, IIN); emit ReadyToSend(thisData, VAL); }; if(index==15) { thisData.IIN=ICP; thisData.VALUE=pQ; emit ReadyToSend(thisData, IIN); emit ReadyToSend(thisData, VAL); }; if(index==16) { thisData.IIN=CHARGE; thisData.VALUE=mV; emit ReadyToSend(thisData, IIN); emit ReadyToSend(thisData, VAL); }; if(index==17) { thisData.IIN=ICP; thisData.VALUE=mV; emit ReadyToSend(thisData, IIN); emit ReadyToSend(thisData, VAL); }; }