446 lines
12 KiB
C++
446 lines
12 KiB
C++
#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);
|
||
};
|
||
|
||
|
||
|
||
}
|
||
|