A142_Desktop/windowchannel.cpp

514 lines
11 KiB
C++
Raw 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 "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]);
}