A142_Desktop/windowchannelsettings.cpp

464 lines
11 KiB
C++
Raw Normal View History

2023-12-14 17:04:09 +03:00
#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;
2023-12-19 15:15:10 +03:00
ui->label_2->setStyleSheet("QLabel { color : white;} ");
ui->labelChanel->setStyleSheet("QLabel { color : white;} ");
ui->label->setStyleSheet("QLabel { color : white;} ");
ui->labelSENS->setStyleSheet("QLabel { color : #f7e0b5;} ");
ui->labelIIN->setStyleSheet("QLabel { color : #ffff00;} ");
2023-12-14 17:04:09 +03:00
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
2023-12-19 15:15:10 +03:00
2023-12-14 17:04:09 +03:00
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);}
2023-12-19 15:15:10 +03:00
/*
2023-12-14 17:04:09 +03:00
if(thisData.IKU!=VerifyGainA142(thisData)){
thisData.IKU=VerifyGainA142(thisData);
emit ReadyToSend(thisData, IKU);
2023-12-19 15:15:10 +03:00
2023-12-14 17:04:09 +03:00
};
2023-12-19 15:15:10 +03:00
*/
2023-12-14 17:04:09 +03:00
}
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;
2023-12-19 15:15:10 +03:00
case pQ_mV:
2023-12-14 17:04:09 +03:00
ui->comboBoxUNITS->setCurrentIndex(15);
break;
2023-12-19 15:15:10 +03:00
2023-12-14 17:04:09 +03:00
}
}
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;
2023-12-19 15:15:10 +03:00
case pQ_mV:
2023-12-14 17:04:09 +03:00
ui->comboBoxUNITS->setCurrentIndex(14);
break;
2023-12-19 15:15:10 +03:00
2023-12-14 17:04:09 +03:00
}
}
showValue();
}
typeIKU WindowChannelSettings::VerifyGainA142(Set Data) //сверяет гейн на допусимый прибора при установке сенс
{
if(Data.SENS <= 0.0010f) //0.001
{
if(Data.IKU > Ku1000)
{
Data.IKU = Ku1000;
}
}
2023-12-19 15:15:10 +03:00
2023-12-14 17:04:09 +03:00
else
2023-12-19 15:15:10 +03:00
if(Data.SENS <= 10.000f) //0.002
2023-12-14 17:04:09 +03:00
{
if(Data.IKU > Ku1000)
{
Data.IKU = Ku1000;
}
}
2023-12-19 15:15:10 +03:00
/*
2023-12-14 17:04:09 +03:00
else
2023-12-19 15:15:10 +03:00
if(Data.SENS <= 20.000f) //20
2023-12-14 17:04:09 +03:00
{
if(Data.IKU > Ku500)
{
Data.IKU = Ku500;
}
}
else
2023-12-19 15:15:10 +03:00
if(Data.SENS <= 50.000f) //50
2023-12-14 17:04:09 +03:00
{
if(Data.IKU > Ku200)
{
Data.IKU = Ku200;
}
}
2023-12-19 15:15:10 +03:00
*/
2023-12-14 17:04:09 +03:00
else
2023-12-19 15:15:10 +03:00
if(Data.SENS <= 100.00f) //100
2023-12-14 17:04:09 +03:00
{
if(Data.IKU > Ku100)
{
Data.IKU = Ku100;
}
}
2023-12-19 15:15:10 +03:00
/*
2023-12-14 17:04:09 +03:00
else
2023-12-19 15:15:10 +03:00
if(Data.SENS <= 200.00f) //200
2023-12-14 17:04:09 +03:00
{
if(Data.IKU > Ku50)
{
Data.IKU = Ku50;
}
}
else
2023-12-19 15:15:10 +03:00
if(Data.SENS <= 500.00f) //500
2023-12-14 17:04:09 +03:00
{
if(Data.IKU > Ku20)
{
Data.IKU = Ku20;
}
}
2023-12-19 15:15:10 +03:00
*/
2023-12-14 17:04:09 +03:00
else
2023-12-19 15:15:10 +03:00
if(Data.SENS <= 1000.0f) //1000
2023-12-14 17:04:09 +03:00
{
if(Data.IKU > Ku10)
{
Data.IKU = Ku10;
}
}
2023-12-19 15:15:10 +03:00
/*
2023-12-14 17:04:09 +03:00
else
2023-12-19 15:15:10 +03:00
if(Data.SENS <= 2000.0f) //2000
2023-12-14 17:04:09 +03:00
{
if(Data.IKU > Ku5)
{
Data.IKU = Ku5;
}
}
else
2023-12-19 15:15:10 +03:00
if(Data.SENS <= 5000.0f) //5000
2023-12-14 17:04:09 +03:00
{
if(Data.IKU > Ku2)
{
Data.IKU = Ku2;
}
}
2023-12-19 15:15:10 +03:00
*/
2023-12-14 17:04:09 +03:00
else
2023-12-19 15:15:10 +03:00
if(Data.SENS <= 10000.0f) //10000
2023-12-14 17:04:09 +03:00
{
if(Data.IKU > Ku1)
{
Data.IKU = Ku1;
}
}
2023-12-19 15:15:10 +03:00
/*
2023-12-14 17:04:09 +03:00
else
2023-12-19 15:15:10 +03:00
if(Data.SENS <= 20000.0f) //20000
2023-12-14 17:04:09 +03:00
{
if(Data.IKU > Ku0_5)
{
Data.IKU = Ku0_5;
}
}
else
2023-12-19 15:15:10 +03:00
if(Data.SENS <= 50000.0f) //50000
2023-12-14 17:04:09 +03:00
{
if(Data.IKU > Ku0_2)
{
Data.IKU = Ku0_2;
}
}
2023-12-19 15:15:10 +03:00
*/
2023-12-14 17:04:09 +03:00
else
if(Data.SENS < 100000.0f) //99999
{
if(Data.IKU > Ku0_1)
{
Data.IKU = Ku0_1;
}
}
return Data.IKU;
}
2023-12-19 15:15:10 +03:00
2023-12-14 17:04:09 +03:00
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;
2023-12-19 15:15:10 +03:00
thisData.VALUE=pQ_mV;
2023-12-14 17:04:09 +03:00
emit ReadyToSend(thisData, IIN);
emit ReadyToSend(thisData, VAL);
}; if(index==15) {
thisData.IIN=ICP;
2023-12-19 15:15:10 +03:00
thisData.VALUE=pQ_mV;
2023-12-14 17:04:09 +03:00
emit ReadyToSend(thisData, IIN);
emit ReadyToSend(thisData, VAL);
2023-12-19 15:15:10 +03:00
};
2023-12-14 17:04:09 +03:00
}