modified: windowchannel.cpp

modified:   windowchannel.h
main
dplimin 2023-12-12 16:53:32 +03:00
parent fa0d4f3db9
commit ba4b85ef47
2 changed files with 203 additions and 198 deletions

View File

@ -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()<<"текущяя строка Ку по списку"<<out;
//qDebug()<<"смещение"<<offset;
//этот кусочек смотрит на чувствительность и
//пытается заполнить комбобобокс значениями строк соответствующим индексам КУ
//todo: добавить проверку verify Gain!!!!
ui->comboBoxOUT->clear();
uint16_t maxPlannedOut = offset+13;
for (uint offsetToWork=offset;((offsetToWork<25)&&(offsetToWork<maxPlannedOut));offsetToWork++) {
ui->comboBoxOUT->addItem(pOUT[(uint16_t)value][offsetToWork]);
qDebug()<< "max gain"<< thisData.channel<< maxGain(thisData);
for (uint offsetToWork=offset;((offsetToWork<34)&&
(offsetToWork<maxPlannedOut)&&
((maxGain(thisData)+offset)>=offsetToWork)); //проверяем на максиимально возможный для данного сенса
offsetToWork++) {
ui->comboBoxOUT->addItem(pOUT[(uint16_t)value][offsetToWork]);
ui->comboBoxOUT->setCurrentIndex(iku);
//qDebug()<<"добавлено смещние"<<offsetToWork;
}
//давай попробуем влоб запретить индексы 0-2 для IEPE
// Get the index of the value to disable
if(thisData.IIN==ICP){
//todo: сделать функцию для отключения пунктов меню
QModelIndex index0 = ui->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]);

View File

@ -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();