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);
|
|||
|
};
|
|||
|
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
|