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