A142_Desktop/windowchannelsettings.cpp

464 lines
11 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#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;
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;} ");
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
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_mV:
ui->comboBoxUNITS->setCurrentIndex(15);
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_mV:
ui->comboBoxUNITS->setCurrentIndex(14);
break;
}
}
showValue();
}
typeIKU WindowChannelSettings::VerifyGainA142(Set Data) //сверяет гейн на допусимый прибора при установке сенс
{
if(Data.SENS <= 0.0010f) //0.001
{
if(Data.IKU > Ku1000)
{
Data.IKU = Ku1000;
}
}
else
if(Data.SENS <= 10.000f) //0.002
{
if(Data.IKU > Ku1000)
{
Data.IKU = Ku1000;
}
}
/*
else
if(Data.SENS <= 20.000f) //20
{
if(Data.IKU > Ku500)
{
Data.IKU = Ku500;
}
}
else
if(Data.SENS <= 50.000f) //50
{
if(Data.IKU > Ku200)
{
Data.IKU = Ku200;
}
}
*/
else
if(Data.SENS <= 100.00f) //100
{
if(Data.IKU > Ku100)
{
Data.IKU = Ku100;
}
}
/*
else
if(Data.SENS <= 200.00f) //200
{
if(Data.IKU > Ku50)
{
Data.IKU = Ku50;
}
}
else
if(Data.SENS <= 500.00f) //500
{
if(Data.IKU > Ku20)
{
Data.IKU = Ku20;
}
}
*/
else
if(Data.SENS <= 1000.0f) //1000
{
if(Data.IKU > Ku10)
{
Data.IKU = Ku10;
}
}
/*
else
if(Data.SENS <= 2000.0f) //2000
{
if(Data.IKU > Ku5)
{
Data.IKU = Ku5;
}
}
else
if(Data.SENS <= 5000.0f) //5000
{
if(Data.IKU > Ku2)
{
Data.IKU = Ku2;
}
}
*/
else
if(Data.SENS <= 10000.0f) //10000
{
if(Data.IKU > Ku1)
{
Data.IKU = Ku1;
}
}
/*
else
if(Data.SENS <= 20000.0f) //20000
{
if(Data.IKU > Ku0_5)
{
Data.IKU = Ku0_5;
}
}
else
if(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_mV;
emit ReadyToSend(thisData, IIN);
emit ReadyToSend(thisData, VAL);
}; if(index==15) {
thisData.IIN=ICP;
thisData.VALUE=pQ_mV;
emit ReadyToSend(thisData, IIN);
emit ReadyToSend(thisData, VAL);
};
}