#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]); }