diff --git a/windowchannel.cpp b/windowchannel.cpp index 9d1a98a..b2e5082 100644 --- a/windowchannel.cpp +++ b/windowchannel.cpp @@ -267,123 +267,173 @@ typeCHANNEL windowChannel::getWindowsChannel() } -typeIKU windowChannel::VerifyGainA142(Set thisData) //сверяет гейн на допусимый прибора при установке сенс + +typeIKU windowChannel::maxGain(Set Data) //сверяет гейн на допусимый прибора при установке сенс +{ + typeIKU maxGain; + if(Data.SENS <= 0.0010f) //0.001 + maxGain= Ku1000; + else + if(/*sens >= 0.0011f && */Data.SENS <= 10.000f) //0.002 + maxGain= Ku1000; + else + if(/*sens >= 10.001f && */Data.SENS <= 20.000f) //20 + maxGain= Ku500; + else + if(/*sens >= 20.001f && */Data.SENS <= 50.000f) //50 + maxGain= Ku200; + else + if(/*sens >= 50.001f && */Data.SENS <= 100.00f) //100 + maxGain= Ku100; + else + if(/*sens >= 100.01f && */Data.SENS <= 200.00f) //200 + maxGain= Ku50; + else + if(/*sens >= 200.01f && */Data.SENS <= 500.00f) //500 + maxGain= Ku20; + else + if(/*sens >= 500.01f && */Data.SENS <= 1000.0f) //1000 + maxGain= Ku10; + else + if(/*sens >= 1000.01f && */Data.SENS <= 2000.0f) //2000 + maxGain= Ku5; + else + if(/*sens >= 2000.01f && */Data.SENS <= 5000.0f) //5000 + maxGain= Ku2; + else + if(/*sens >= 5000.01f && */Data.SENS <= 10000.0f) //10000 + maxGain= Ku1; + else + if(/*sens >= 10001.0f && */Data.SENS <= 20000.0f) //20000 + maxGain= Ku0_5; + else + if(/*sens >= 20001.0f && */Data.SENS <= 50000.0f) //50000 + maxGain= Ku0_2; + else + if(Data.SENS < 100000.0f) //99999 + maxGain= Ku0_1; + return maxGain; +} + + + +typeIKU windowChannel::VerifyGainA142(Set Data) //сверяет гейн на допусимый прибора при установке сенс { - if(thisData.SENS <= 0.0010f) //0.001 + if(Data.SENS <= 0.0010f) //0.001 { - if(thisData.IKU > Ku1000) + if(Data.IKU > Ku1000) { - thisData.IKU = Ku1000; + Data.IKU = Ku1000; } } else - if(/*sens >= 0.0011f && */thisData.SENS <= 10.000f) //0.002 + if(/*sens >= 0.0011f && */Data.SENS <= 10.000f) //0.002 { - if(thisData.IKU > Ku1000) + if(Data.IKU > Ku1000) { - thisData.IKU = Ku1000; + Data.IKU = Ku1000; } } else - if(/*sens >= 10.001f && */thisData.SENS <= 20.000f) //20 + if(/*sens >= 10.001f && */Data.SENS <= 20.000f) //20 { - if(thisData.IKU > Ku500) + if(Data.IKU > Ku500) { - thisData.IKU = Ku500; + Data.IKU = Ku500; } } else - if(/*sens >= 20.001f && */thisData.SENS <= 50.000f) //50 + if(/*sens >= 20.001f && */Data.SENS <= 50.000f) //50 { - if(thisData.IKU > Ku200) + if(Data.IKU > Ku200) { - thisData.IKU = Ku200; + Data.IKU = Ku200; } } else - if(/*sens >= 50.001f && */thisData.SENS <= 100.00f) //100 + if(/*sens >= 50.001f && */Data.SENS <= 100.00f) //100 { - if(thisData.IKU > Ku100) + if(Data.IKU > Ku100) { - thisData.IKU = Ku100; + Data.IKU = Ku100; } } else - if(/*sens >= 100.01f && */thisData.SENS <= 200.00f) //200 + if(/*sens >= 100.01f && */Data.SENS <= 200.00f) //200 { - if(thisData.IKU > Ku50) + if(Data.IKU > Ku50) { - thisData.IKU = Ku50; + Data.IKU = Ku50; } } else - if(/*sens >= 200.01f && */thisData.SENS <= 500.00f) //500 + if(/*sens >= 200.01f && */Data.SENS <= 500.00f) //500 { - if(thisData.IKU > Ku20) + if(Data.IKU > Ku20) { - thisData.IKU = Ku20; + Data.IKU = Ku20; } } else - if(/*sens >= 500.01f && */thisData.SENS <= 1000.0f) //1000 + if(/*sens >= 500.01f && */Data.SENS <= 1000.0f) //1000 { - if(thisData.IKU > Ku10) + if(Data.IKU > Ku10) { - thisData.IKU = Ku10; + Data.IKU = Ku10; } } else - if(/*sens >= 1000.01f && */thisData.SENS <= 2000.0f) //2000 + if(/*sens >= 1000.01f && */Data.SENS <= 2000.0f) //2000 { - if(thisData.IKU > Ku5) + if(Data.IKU > Ku5) { - thisData.IKU = Ku5; + Data.IKU = Ku5; } } else - if(/*sens >= 2000.01f && */thisData.SENS <= 5000.0f) //5000 + if(/*sens >= 2000.01f && */Data.SENS <= 5000.0f) //5000 { - if(thisData.IKU > Ku2) + if(Data.IKU > Ku2) { - thisData.IKU = Ku2; + Data.IKU = Ku2; } } else - if(/*sens >= 5000.01f && */thisData.SENS <= 10000.0f) //10000 + if(/*sens >= 5000.01f && */Data.SENS <= 10000.0f) //10000 { - if(thisData.IKU > Ku1) + if(Data.IKU > Ku1) { - thisData.IKU = Ku1; + Data.IKU = Ku1; } } else - if(/*sens >= 10001.0f && */thisData.SENS <= 20000.0f) //20000 + if(/*sens >= 10001.0f && */Data.SENS <= 20000.0f) //20000 { - if(thisData.IKU > Ku0_5) + if(Data.IKU > Ku0_5) { - thisData.IKU = Ku0_5; + Data.IKU = Ku0_5; } } else - if(/*sens >= 20001.0f && */thisData.SENS <= 50000.0f) //50000 + if(/*sens >= 20001.0f && */Data.SENS <= 50000.0f) //50000 { - if(thisData.IKU > Ku0_2) + if(Data.IKU > Ku0_2) { - thisData.IKU = Ku0_2; + Data.IKU = Ku0_2; } } else - if(thisData.SENS < 100000.0f) //99999 + if(Data.SENS < 100000.0f) //99999 { - if(thisData.IKU > Ku0_1) + if(Data.IKU > Ku0_1) { - thisData.IKU = Ku0_1; + Data.IKU = Ku0_1; } } - return thisData.IKU; + return Data.IKU; } QString windowChannel::DisplayIKUA142(float sens, typeIKU iku ,typeVALUE value) @@ -392,7 +442,7 @@ QString windowChannel::DisplayIKUA142(float sens, typeIKU iku ,typeVALUE value) uint offset; //вбычку обьявлю тут - const char *pOUT[3][25] = + const char *pOUT[3][35] = { { "0.0001 мВ/м/c2", @@ -419,7 +469,17 @@ QString windowChannel::DisplayIKUA142(float sens, typeIKU iku ,typeVALUE value) "1 В/м/c2", "2 В/м/c2", "5 В/м/c2", - "10 В/м/c2" + "10 В/м/c2", + "20В/м/c2", + "50В/м/c2", + "100В/м/c2", + "200В/м/c2", + "500В/м/c2", + "1000В/м/c2", + "2000В/м/c2", + "5000В/м/c2", + "10000В/м/c2", + }, { "0.0001 мВ/Па", @@ -446,7 +506,16 @@ QString windowChannel::DisplayIKUA142(float sens, typeIKU iku ,typeVALUE value) "1 В/Па", "2 В/Па", "5 В/Па", - "10 В/Па" + "10 В/Па", + "20В/Па", + "50В/Па", + "100В/Па",//27 + "200В/Па", + "500В/Па", + "1000В/Па", //30 + "2000В/Па", + "5000В/Па", + "10000В/Па", //33 }, { "0.0001 мВ/Н", @@ -473,174 +542,109 @@ QString windowChannel::DisplayIKUA142(float sens, typeIKU iku ,typeVALUE value) "1 В/Н", "2 В/Н", "5 В/Н", - "10 В/Н" + "10 В/Н", + "20В/Н", + "50В/Н", + "100В/Н",//27 + "200В/Н", + "500В/Н", + "1000В/Н", //30 + "2000В/Н", + "5000В/Н", + "10000В/Н", //33 } }; - if(sens <= 0.0010f) //0.001 + if((sens>=0.0001f)&&(sens<0.001f)) //0.001 + { + out = iku; + offset=0; + } + else + if((sens >= 0.0010f)&&(sens < 0.010f)) //0.01 + { + out = iku; + offset=0; + } + else + if((sens>=0.01f)&&(sens<0.1f)) //0.01 + { + out = iku + 3; + offset=3; + } + else + if((sens>=0.1f)&&(sens<1.0f)) //0.1 + { + out = iku + 6; + offset=6; + } + else + if((sens>=1.0f)&&(sens<10.0f)) //1 + { + out = iku + 9; + offset=9; + } + else + if((sens>=10.0f)&&(sens<100.0f)) //10 + { + out = iku + 12; + offset=12; + } + else + if((sens>=100.0f)&&(sens<1000.0f)) //100 + { + out = iku + 15; + offset=15; + } + else + if((sens >= 1000.0f)&&(sens<10000.0f)) //1000 + { + out = iku + 18; + offset=18; + } + if((sens >= 10000.0f)&&(sens < 100000.0f)) //1000 { - out = iku; - offset=0; - - } - else - if(/*sens >= 0.0011f && */sens <= 0.0020f) //0.002 - { - out = (uint16_t)iku + 1; - offset=1; - } - else - if(/*sens >= 0.0021f && */sens <= 0.0050f) //0.005 - { - out = (uint16_t)iku + 2; - offset=2; - } - else - if(/*sens >= 0.0051f && */sens <= 0.0100f) //0.01 - { - out = (uint16_t)iku + 3; - offset=3; - } - else - if(/*sens >= 0.0101f && */sens <= 0.0200f) //0.02 - { - out = (uint16_t)iku + 4; - offset=4; - } - else - if(/*sens >= 0.0201f && */sens <= 0.0500f) //0.05 - { - out = (uint16_t)iku + 5; - offset=5; - } - else - if(/*sens >= 0.0501f && */sens <= 0.1000f) //0.1 - { - out = (uint16_t)iku + 6; - offset=6; - } - else - if(/*sens >= 0.1001f && */sens <= 0.2000f) //0.2 - { - out = (uint16_t)iku + 7; - offset=7; - } - else - if(/*sens >= 0.2001f && */sens <= 0.5000f) //0.5 - { - out = (uint16_t)iku + 8; - offset=8; - } - else - if(/*sens >= 0.5001f && */sens <= 1.0000f) //1 - { - out = (uint16_t)iku + 9; - offset=9; - } - else - if(/*sens >= 1.0001f && */sens <= 2.0000f) //2 - { - out = (uint16_t)iku + 10; - offset=10; - } - else - if(/*sens >= 2.0001f && */sens <= 5.0000f) //5 - { - out = (uint16_t)iku + 11; - offset=11; - } - else - if(/*sens >= 5.0001f && */sens <= 10.000f) //10 - { - out = (uint16_t)iku + 12; - offset=12; - } - else - if(/*sens >= 10.001f && */sens <= 20.000f) //20 - { - out = (uint16_t)iku + 13; - offset=13; - } - else - if(/*sens >= 20.001f && */sens <= 50.000f) //50 - { - out = (uint16_t)iku + 14; - offset=14; - } - else - if(/*sens >= 50.001f && */sens <= 100.00f) //100 - { - out = (uint16_t)iku + 15; - offset=15; - } - else - if(/*sens >= 100.01f && */sens <= 200.00f) //200 - { - out = (uint16_t)iku + 16; - offset=16; - } - else - if(/*sens >= 200.01f && */sens <= 500.00f) //500 - { - out = (uint16_t)iku + 17; - offset=17; - } - else - if(/*sens >= 500.01f && */sens <= 1000.0f) //1000 - { - out = (uint16_t)iku + 18; - offset=18; - } - else - if(/*sens >= 1000.1f && */sens <= 2000.0f) //2000 - { - out = (uint16_t)iku + 19; - offset=19; - } - else - if(/*sens >= 2000.1f && */sens <= 5000.0f) //2000 - { - out = (uint16_t)iku + 20; - offset=20; - } - else - if(/*sens >= 5000.1f && */sens <= 10000.0f) //10000 - { - out = (uint16_t)iku + 21; + out = iku + 21; offset=21; } - else - if(/*sens >= 10001 && */sens <= 20000.0f) //20000 - { - out = (uint16_t)iku + 22; - offset=22; - } - else - if(/*sens >= 20001 && */sens <= 50000.0f) //50000 - { - out = (uint16_t)iku + 23; - offset=23; - } - else - if(/*sens >= 50001 && */sens <= 100000) //100000 - { - out = (uint16_t)iku + 24; - offset=24; - } + + // qDebug()<<"текущяя строка Ку по списку"<comboBoxOUT->clear(); uint16_t maxPlannedOut = offset+13; - for (uint offsetToWork=offset;((offsetToWork<25)&&(offsetToWorkcomboBoxOUT->addItem(pOUT[(uint16_t)value][offsetToWork]); + qDebug()<< "max gain"<< thisData.channel<< maxGain(thisData); + for (uint offsetToWork=offset;((offsetToWork<34)&& + (offsetToWork=offsetToWork)); //проверяем на максиимально возможный для данного сенса + offsetToWork++) { + + ui->comboBoxOUT->addItem(pOUT[(uint16_t)value][offsetToWork]); ui->comboBoxOUT->setCurrentIndex(iku); - //qDebug()<<"добавлено смещние"<comboBoxOUT->model()->index(0,0); + QVariant v0(0); + ui->comboBoxOUT->model()->setData( index0, v0, Qt::UserRole -1); + QModelIndex index1 = ui->comboBoxOUT->model()->index(1,0); + QVariant v1(0); + ui->comboBoxOUT->model()->setData( index1, v1, Qt::UserRole -1); + QModelIndex index2 = ui->comboBoxOUT->model()->index(2,0); + QVariant v2(0); + ui->comboBoxOUT->model()->setData( index2, v2, Qt::UserRole -1); + + } return QString::fromStdString(pOUT[(uint16_t)value][out]); diff --git a/windowchannel.h b/windowchannel.h index 2aac1de..bf7e6f6 100644 --- a/windowchannel.h +++ b/windowchannel.h @@ -24,6 +24,7 @@ public: typeCHANNEL getWindowsChannel(); typeIKU VerifyGainA142(Set thisData); QString DisplayIKUA142(float sens,typeIKU iku, typeVALUE value); + typeIKU maxGain(Set Data); explicit windowChannel(QWidget *parent = nullptr); ~windowChannel();