A142_Desktop/windowchannel.cpp

514 lines
11 KiB
C++
Raw Normal View History

2023-11-30 12:58:49 +03:00
#include "windowchannel.h"
#include "ui_windowchannel.h"
windowChannel::windowChannel(QWidget *parent) :
QWidget(parent),
ui(new Ui::windowChannel)
{
ui->setupUi(this);
//ДЕЛАЕМ ФОН ЧЕРНЫМ
QPalette Pal(palette());
Pal.setColor(QPalette::Background, 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;
}
windowChannel::~windowChannel()
{
delete ui;
}
void windowChannel::setSens(Set data)
{
if(data.channel==this->channel){
thisData.SENS=data.SENS;
reDraw();
}
}
void windowChannel::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 windowChannel::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("Заряд");
break;
}
}//end switch
switch (thisData.IFV) {
case Hp0_2:{
ui->labelVCH->setText("0.2Гц");
break;
}
case Hp0_3:{
ui->labelVCH->setText("0.3Гц");
break;
}
case Hp1:{
ui->labelVCH->setText("1Гц");
break;
}
case Hp2:{
ui->labelVCH->setText("2Гц");
break;
}
case Hp10:{
ui->labelVCH->setText("10Гц");
break;
}
}//end switch
switch (thisData.IFN) {
case Lp200:{
ui->labelNCH->setText("200Гц");
break;
}
case Lp500:{
ui->labelNCH->setText("500Гц");
break;
}
case Lp1000:{
ui->labelNCH->setText("1кГц");
break;
}
case Lp5000:{
ui->labelNCH->setText("5кГц");
break;
}
case Lp10000:{
ui->labelNCH->setText("10кГц");
break;
}
case Lp20000:{
ui->labelNCH->setText("20кГц");
break;
}
case Lp50000:{
ui->labelNCH->setText("50кГц");
break;
}
case Lp100000:{
ui->labelNCH->setText("100кГц");
break;
}
}//end switch
switch (thisData.VALUE) {
case Accel:{
if(thisData.IIN==ICP)(ui->labelUNIT1->setText("мВ/м/c2"));
else{ui->labelUNIT1->setText("пКл/м/с2");}
break;
}
case Nython:{
if(thisData.IIN==ICP)(ui->labelUNIT1->setText("мВ/Н"));
else{ui->labelUNIT1->setText("пКл/Н");}
break;
}
case Pascal:{
if(thisData.IIN==ICP)(ui->labelUNIT1->setText("мВ/Па"));
else{ui->labelUNIT1->setText("пКл/Па");}
break;
}
}//end switch
ui->labelOUT->setText(DisplayIKUA142(thisData.SENS, thisData.IKU, thisData.VALUE));
}
void windowChannel::setWindowsChannel(typeCHANNEL channel)
{
this->channel = channel;
ui->labelChanel->setNum((int)(channel+1));
}
typeCHANNEL windowChannel::getWindowsChannel()
{
return channel;
}
typeIKU windowChannel::VerifyGainA142(float sens, typeIKU iku)
{
if(sens <= 0.0010f) //0.001
{
if(iku > Ku1000)
{
iku = Ku1000;
}
}
else
if(/*sens >= 0.0011f && */sens <= 10.000f) //0.002
{
if(iku > Ku1000)
{
iku = Ku1000;
}
}
else
if(/*sens >= 10.001f && */sens <= 20.000f) //20
{
if(iku > Ku500)
{
iku = Ku500;
}
}
else
if(/*sens >= 20.001f && */sens <= 50.000f) //50
{
if(iku > Ku200)
{
iku = Ku200;
}
}
else
if(/*sens >= 50.001f && */sens <= 100.00f) //100
{
if(iku > Ku100)
{
iku = Ku100;
}
}
else
if(/*sens >= 100.01f && */sens <= 200.00f) //200
{
if(iku > Ku50)
{
iku = Ku50;
}
}
else
if(/*sens >= 200.01f && */sens <= 500.00f) //500
{
if(iku > Ku20)
{
iku = Ku20;
}
}
else
if(/*sens >= 500.01f && */sens <= 1000.0f) //1000
{
if(iku > Ku10)
{
iku = Ku10;
}
}
else
if(/*sens >= 1000.01f && */sens <= 2000.0f) //2000
{
if(iku > Ku5)
{
iku = Ku5;
}
}
else
if(/*sens >= 2000.01f && */sens <= 5000.0f) //5000
{
if(iku > Ku2)
{
iku = Ku2;
}
}
else
if(/*sens >= 5000.01f && */sens <= 10000.0f) //10000
{
if(iku > Ku1)
{
iku = Ku1;
}
}
else
if(/*sens >= 10001.0f && */sens <= 20000.0f) //20000
{
if(iku > Ku0_5)
{
iku = Ku0_5;
}
}
else
if(/*sens >= 20001.0f && */sens <= 50000.0f) //50000
{
if(iku > Ku0_2)
{
iku = Ku0_2;
}
}
else
if(sens < 100000.0f) //99999
{
if(iku > Ku0_1)
{
iku = Ku0_1;
}
}
return iku;
}
QString windowChannel::DisplayIKUA142(float sens, typeIKU iku ,typeVALUE value)
{uint out;
//вбычку обьявлю тут
const char *pOUT[3][25] =
{
{
"0.0001 мВ/м/c2",
"0.0002 мВ/м/c2",
"0.0005 мВ/м/c2",
"0.001 мВ/м/c2",
"0.002 мВ/м/c2",
"0.005 мВ/м/c2",
"0.01 мВ/м/c2",
"0.02 мВ/м/c2",
"0.05 мВ/м/c2",
"0.1 мВ/м/c2",
"0.2 мВ/м/c2",
"0.5 мВ/м/c2",
"1 мВ/м/c2",
"2 мВ/м/c2",
"5 мВ/м/c2",
"10 мВ/м/c2",
"20 мВ/м/c2",
"50 мВ/м/c2",
"100 мВ/м/c2",
"200 мВ/м/c2",
"500 мВ/м/c2",
"1 В/м/c2",
"2 В/м/c2",
"5 В/м/c2",
"10 В/м/c2"
},
{
"0.0001 мВ/Па",
"0.0002 мВ/Па",
"0.0005 мВ/Па",
"0.001 мВ/Па",
"0.002 мВ/Па",
"0.005 мВ/Па",
"0.01 мВ/Па",
"0.02 мВ/Па",
"0.05 мВ/Па",
"0.1 мВ/Па",
"0.2 мВ/Па",
"0.5 мВ/Па",
"1 мВ/Па",
"2 мВ/Па",
"5 мВ/Па",
"10 мВ/Па",
"20 мВ/Па",
"50 мВ/Па",
"100 мВ/Па",
"200 мВ/Па",
"500 мВ/Па",
"1 В/Па",
"2 В/Па",
"5 В/Па",
"10 В/Па"
},
{
"0.0001 мВ/Н",
"0.0002 мВ/Н",
"0.0005 мВ/Н",
"0.001 мВ/Н",
"0.002 мВ/Н",
"0.005 мВ/Н",
"0.01 мВ/Н",
"0.02 мВ/Н",
"0.05 мВ/Н",
"0.1 мВ/Н",
"0.2 мВ/Н",
"0.5 мВ/Н",
"1 мВ/Н",
"2 мВ/Н",
"5 мВ/Н",
"10 мВ/Н",
"20 мВ/Н",
"50 мВ/Н",
"100 мВ/Н",
"200 мВ/Н",
"500 мВ/Н",
"1 В/Н",
"2 В/Н",
"5 В/Н",
"10 В/Н"
}
};
if(sens <= 0.0010f) //0.001
{
out = iku;
}
else
if(/*sens >= 0.0011f && */sens <= 0.0020f) //0.002
{
out = (uint16_t)iku + 1;
}
else
if(/*sens >= 0.0021f && */sens <= 0.0050f) //0.005
{
out = (uint16_t)iku + 2;
}
else
if(/*sens >= 0.0051f && */sens <= 0.0100f) //0.01
{
out = (uint16_t)iku + 3;
}
else
if(/*sens >= 0.0101f && */sens <= 0.0200f) //0.02
{
out = (uint16_t)iku + 4;
}
else
if(/*sens >= 0.0201f && */sens <= 0.0500f) //0.05
{
out = (uint16_t)iku + 5;
}
else
if(/*sens >= 0.0501f && */sens <= 0.1000f) //0.1
{
out = (uint16_t)iku + 6;
}
else
if(/*sens >= 0.1001f && */sens <= 0.2000f) //0.2
{
out = (uint16_t)iku + 7;
}
else
if(/*sens >= 0.2001f && */sens <= 0.5000f) //0.5
{
out = (uint16_t)iku + 8;
}
else
if(/*sens >= 0.5001f && */sens <= 1.0000f) //1
{
out = (uint16_t)iku + 9;
}
else
if(/*sens >= 1.0001f && */sens <= 2.0000f) //2
{
out = (uint16_t)iku + 10;
}
else
if(/*sens >= 2.0001f && */sens <= 5.0000f) //5
{
out = (uint16_t)iku + 11;
}
else
if(/*sens >= 5.0001f && */sens <= 10.000f) //10
{
out = (uint16_t)iku + 12;
}
else
if(/*sens >= 10.001f && */sens <= 20.000f) //20
{
out = (uint16_t)iku + 13;
}
else
if(/*sens >= 20.001f && */sens <= 50.000f) //50
{
out = (uint16_t)iku + 14;
}
else
if(/*sens >= 50.001f && */sens <= 100.00f) //100
{
out = (uint16_t)iku + 15;
}
else
if(/*sens >= 100.01f && */sens <= 200.00f) //200
{
out = (uint16_t)iku + 16;
}
else
if(/*sens >= 200.01f && */sens <= 500.00f) //500
{
out = (uint16_t)iku + 17;
}
else
if(/*sens >= 500.01f && */sens <= 1000.0f) //1000
{
out = (uint16_t)iku + 18;
}
else
if(/*sens >= 1000.1f && */sens <= 2000.0f) //2000
{
out = (uint16_t)iku + 19;
}
else
if(/*sens >= 2000.1f && */sens <= 5000.0f) //2000
{
out = (uint16_t)iku + 20;
}
else
if(/*sens >= 5000.1f && */sens <= 10000.0f) //10000
{
out = (uint16_t)iku + 21;
}
else
if(/*sens >= 10001 && */sens <= 20000.0f) //20000
{
out = (uint16_t)iku + 22;
}
else
if(/*sens >= 20001 && */sens <= 50000.0f) //50000
{
out = (uint16_t)iku + 23;
}
else
if(/*sens >= 50001 && */sens <= 100000) //100000
{
out = (uint16_t)iku + 24;
}
return QString::fromStdString(pOUT[(uint16_t)value][out]);
}