Merge branch 'master' into Dev
# Conflicts: # ChaosDataPlayer/ChildForm.cpp
This commit is contained in:
commit
a1250befa0
@ -189,6 +189,9 @@ ChildForm::ChildForm(FormType iType,QString m_strName,DEVICE_INFO* DeviceInfo,QW
|
|||||||
|
|
||||||
ui->widget->yAxis2->setVisible(false);
|
ui->widget->yAxis2->setVisible(false);
|
||||||
ui->widget->yAxis2->setTickLabels(true);
|
ui->widget->yAxis2->setTickLabels(true);
|
||||||
|
ui->widget->yAxis2->grid()->setVisible(true);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
yAxis3 = ui->widget->axisRect()->addAxis(QCPAxis::atRight);
|
yAxis3 = ui->widget->axisRect()->addAxis(QCPAxis::atRight);
|
||||||
yAxis3->setTickLabelColor(Qt::white);
|
yAxis3->setTickLabelColor(Qt::white);
|
||||||
@ -196,10 +199,11 @@ ChildForm::ChildForm(FormType iType,QString m_strName,DEVICE_INFO* DeviceInfo,QW
|
|||||||
yAxis3->setLabelColor(Qt::white);
|
yAxis3->setLabelColor(Qt::white);
|
||||||
yAxis3->setTickLabels(true);
|
yAxis3->setTickLabels(true);
|
||||||
yAxis3->setVisible(false);
|
yAxis3->setVisible(false);
|
||||||
|
yAxis3->grid()->setVisible(true);
|
||||||
|
|
||||||
axes.append(ui->widget->yAxis);
|
Axis.append(ui->widget->yAxis);
|
||||||
axes.append(ui->widget->yAxis2);
|
Axis.append(ui->widget->yAxis2);
|
||||||
axes.append(yAxis3);
|
Axis.append(yAxis3);
|
||||||
|
|
||||||
//ui->widget->setInteractions(QCP::iSelectPlottables);
|
//ui->widget->setInteractions(QCP::iSelectPlottables);
|
||||||
//鼠标点击
|
//鼠标点击
|
||||||
@ -240,6 +244,55 @@ ChildForm::~ChildForm()
|
|||||||
}
|
}
|
||||||
void ChildForm::InitDisPaly()
|
void ChildForm::InitDisPaly()
|
||||||
{
|
{
|
||||||
|
|
||||||
|
// QMap<QString,QMap<QString,QCPAxis*>>::Iterator itermultiGraph = mapMultiGraph.begin();
|
||||||
|
// for(int i = 0; i < listChannelID.size();i++){
|
||||||
|
// for(;itermultiGraph != mapMultiGraph.end();itermultiGraph++){
|
||||||
|
// int flag = 0;
|
||||||
|
// QMap<QString,QCPAxis*>::Iterator iterGraph = itermultiGraph.value().begin();
|
||||||
|
// for(iterGraph = itermultiGraph.value().begin();iterGraph != itermultiGraph.value().end();iterGraph++){
|
||||||
|
// if(iterGraph.key() == listChannelID[i]){
|
||||||
|
// if(mapMultiGraph[itermultiGraph.key()].size() == 1){
|
||||||
|
// iterGraph.value()->setVisible(false);
|
||||||
|
// }
|
||||||
|
// mapMultiGraph[itermultiGraph.key()].erase(iterGraph);
|
||||||
|
// }
|
||||||
|
// if(mapMultiGraph[itermultiGraph.key()].size() == 0){
|
||||||
|
// flag = 1;
|
||||||
|
// break;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// if(flag ==1){
|
||||||
|
// mapMultiGraph.erase(itermultiGraph);
|
||||||
|
// }
|
||||||
|
// if(mapMultiGraph.size() == 0)
|
||||||
|
// break;
|
||||||
|
// }
|
||||||
|
// QMap<QString,QCPGraph*>::Iterator iter = waveGraph.begin();
|
||||||
|
// for(iter = waveGraph.begin();iter != waveGraph.end();iter++)
|
||||||
|
// {
|
||||||
|
// if(listChannelID[i] == iter.key()){
|
||||||
|
// qDebug() << listChannelID[i] << endl;
|
||||||
|
// ui->widget->removeGraph(iter.value());
|
||||||
|
// line --;
|
||||||
|
// qDebug() << "line" << line << endl;
|
||||||
|
// int graphCount = ui->widget->graphCount();
|
||||||
|
// qDebug() << "graphCount" << graphCount<< endl;
|
||||||
|
// waveGraph.erase(iter);
|
||||||
|
|
||||||
|
// }
|
||||||
|
// if(waveGraph.size() == 0){
|
||||||
|
// m_bRealTime = false;
|
||||||
|
// ui->realTimeDataBtn->setChecked(false);
|
||||||
|
// EnableBtn();
|
||||||
|
// break;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// QMap<QString,QVector<WAVE_DISPALYDATA>>::Iterator iter = mapWaveDisplayData.begin();
|
// QMap<QString,QVector<WAVE_DISPALYDATA>>::Iterator iter = mapWaveDisplayData.begin();
|
||||||
// for(iter = mapWaveDisplayData.begin();iter !=mapWaveDisplayData.end();iter++){
|
// for(iter = mapWaveDisplayData.begin();iter !=mapWaveDisplayData.end();iter++){
|
||||||
// for (int i = 0;iter.value().size() ;i ++ ) {
|
// for (int i = 0;iter.value().size() ;i ++ ) {
|
||||||
@ -502,29 +555,29 @@ QCPGraph* ChildForm::MultiyAxis(QString strID,QString sensorType,QString sensorE
|
|||||||
|
|
||||||
qDebug() << "contains" << endl;
|
qDebug() << "contains" << endl;
|
||||||
if(mapMultiGraph.size() == 0){
|
if(mapMultiGraph.size() == 0){
|
||||||
qDebug() << "mapMultiGraph1" << endl;
|
qDebug() << "mapMultiGraph1" << sensorEngineeringUnit << endl;
|
||||||
graph = ui->widget->addGraph(ui->widget->xAxis, axes[0]);
|
graph = ui->widget->addGraph(ui->widget->xAxis, Axis[0]);
|
||||||
ui->widget->yAxis->setLabel(sensorType + "(" + sensorEngineeringUnit+")");
|
ui->widget->yAxis->setLabel( sensorEngineeringUnit);
|
||||||
axes[0]->setVisible(true);
|
Axis[0]->setVisible(true);
|
||||||
mapGraph.insert(strID,axes[0]);
|
mapGraph.insert(strID,Axis[0]);
|
||||||
}
|
}
|
||||||
else if(mapMultiGraph.size() == 2 || mapMultiGraph.size() == 1){
|
else if(mapMultiGraph.size() == 2 || mapMultiGraph.size() == 1){
|
||||||
qDebug() << "mapMultiGraph3" << endl;
|
qDebug() << "mapMultiGraph3" << endl;
|
||||||
QList<QCPAxis*> tmpaxes;
|
QList<QCPAxis*> tmpAxis;
|
||||||
for(int i = 0 ; i < axes.size();i++){
|
for(int i = 0 ; i < Axis.size();i++){
|
||||||
QMap<QString,QMap<QString,QCPAxis*>>::iterator iter = mapMultiGraph.begin();
|
QMap<QString,QMap<QString,QCPAxis*>>::iterator iter = mapMultiGraph.begin();
|
||||||
for(;iter != mapMultiGraph.end();iter ++){
|
for(;iter != mapMultiGraph.end();iter ++){
|
||||||
|
|
||||||
QMap<QString,QCPAxis*>::iterator iterGraph = iter.value().begin();
|
QMap<QString,QCPAxis*>::iterator iterGraph = iter.value().begin();
|
||||||
if(axes[i] == iterGraph.value()){
|
if(Axis[i] == iterGraph.value()){
|
||||||
tmpaxes.push_back(axes[i]);
|
tmpAxis.push_back(Axis[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(i == axes.size()-1){
|
if(i == Axis.size()-1){
|
||||||
int eql1 = 0;
|
int eql1 = 0;
|
||||||
for(int k = 0 ; k < axes.size();k++){
|
for(int k = 0 ; k < Axis.size();k++){
|
||||||
for(int j = 0; j < tmpaxes.size();j++){
|
for(int j = 0; j < tmpAxis.size();j++){
|
||||||
if(axes[k] == tmpaxes[j]){
|
if(Axis[k] == tmpAxis[j]){
|
||||||
eql1 = 1;
|
eql1 = 1;
|
||||||
break;
|
break;
|
||||||
}else{
|
}else{
|
||||||
@ -534,10 +587,10 @@ QCPGraph* ChildForm::MultiyAxis(QString strID,QString sensorType,QString sensorE
|
|||||||
if(eql1 == 1){
|
if(eql1 == 1){
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
graph = ui->widget->addGraph(ui->widget->xAxis, axes[k]);
|
graph = ui->widget->addGraph(ui->widget->xAxis, Axis[k]);
|
||||||
axes[k]->setLabel(sensorType + "(" + sensorEngineeringUnit+")");
|
Axis[k]->setLabel(sensorEngineeringUnit);
|
||||||
axes[k]->setVisible(true);
|
Axis[k]->setVisible(true);
|
||||||
mapGraph.insert(strID,axes[k]);
|
mapGraph.insert(strID,Axis[k]);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -551,6 +604,7 @@ QCPGraph* ChildForm::MultiyAxis(QString strID,QString sensorType,QString sensorE
|
|||||||
|
|
||||||
QMap<QString,QCPAxis*>::iterator iterGraph = iter.value().begin();
|
QMap<QString,QCPAxis*>::iterator iterGraph = iter.value().begin();
|
||||||
graph = ui->widget->addGraph(ui->widget->xAxis, iterGraph.value());
|
graph = ui->widget->addGraph(ui->widget->xAxis, iterGraph.value());
|
||||||
|
iterGraph.value()->setLabel(sensorEngineeringUnit);
|
||||||
mapGraph.insert(strID,iterGraph.value());
|
mapGraph.insert(strID,iterGraph.value());
|
||||||
qDebug() << "strID1" << strID << endl;
|
qDebug() << "strID1" << strID << endl;
|
||||||
}
|
}
|
||||||
@ -600,6 +654,7 @@ void ChildForm::SecondData(const QString& strID,WAVE_DATA& waveData,WAVE_DISPALY
|
|||||||
waveShowData.Key.push_back(f);
|
waveShowData.Key.push_back(f);
|
||||||
waveShowData.wavedata_DC.push_back(waveData.waveDataRealTime.at(j));
|
waveShowData.wavedata_DC.push_back(waveData.waveDataRealTime.at(j));
|
||||||
}
|
}
|
||||||
|
<<<<<<< HEAD
|
||||||
if(m_bIntegration){
|
if(m_bIntegration){
|
||||||
QVector<double> retValue;
|
QVector<double> retValue;
|
||||||
double RMS = 0.0;
|
double RMS = 0.0;
|
||||||
@ -608,6 +663,9 @@ void ChildForm::SecondData(const QString& strID,WAVE_DATA& waveData,WAVE_DISPALY
|
|||||||
waveShowData.wavedata = retValue;
|
waveShowData.wavedata = retValue;
|
||||||
waveShowData.RMS = RMS;
|
waveShowData.RMS = RMS;
|
||||||
}
|
}
|
||||||
|
=======
|
||||||
|
|
||||||
|
>>>>>>> master
|
||||||
qDebug() << "waveShowData.wavedata_DC" << waveShowData.wavedata_DC.size()<< endl;
|
qDebug() << "waveShowData.wavedata_DC" << waveShowData.wavedata_DC.size()<< endl;
|
||||||
}else{
|
}else{
|
||||||
QVector<double> vecOutData;
|
QVector<double> vecOutData;
|
||||||
@ -624,7 +682,68 @@ void ChildForm::SecondData(const QString& strID,WAVE_DATA& waveData,WAVE_DISPALY
|
|||||||
waveShowData.wavedata = vecOutData;
|
waveShowData.wavedata = vecOutData;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(m_bIntegration){
|
||||||
|
QVector<double> retValue;
|
||||||
|
double RMS = 0.0;
|
||||||
|
f = 0.0;
|
||||||
|
pCalculation->_Integration(waveShowData.wavedata,retValue,RMS);
|
||||||
|
QVector<double>().swap(waveShowData.wavedata);
|
||||||
|
QVector<double>().swap(waveShowData.Key);
|
||||||
|
waveShowData.wavedata = retValue;
|
||||||
|
for(int ii = 0; ii < retValue.size();ii++){
|
||||||
|
f += gap;
|
||||||
|
waveShowData.Key.push_back(f);
|
||||||
|
}
|
||||||
|
waveShowData.RMS = RMS;
|
||||||
|
}
|
||||||
|
if(m_bDoubleIntegration){
|
||||||
|
QVector<double> retValue,retValue2;
|
||||||
|
double RMS = 0.0;
|
||||||
|
f = 0.0;
|
||||||
|
pCalculation->_Integration(waveShowData.wavedata,retValue,RMS);
|
||||||
|
pCalculation->_Integration(retValue,retValue2,RMS);
|
||||||
|
QVector<double>().swap(waveShowData.wavedata);
|
||||||
|
QVector<double>().swap(waveShowData.Key);
|
||||||
|
waveShowData.wavedata = retValue2;
|
||||||
|
waveShowData.RMS = RMS;
|
||||||
|
for(int ii = 0; ii < retValue2.size();ii++){
|
||||||
|
f += gap;
|
||||||
|
waveShowData.Key.push_back(f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(m_bDifferentiation){
|
||||||
|
QVector<double> diffValue,yValue;
|
||||||
|
pCalculation->_Differentiation(waveShowData.wavedata,diffValue);
|
||||||
|
QVector<double>().swap(waveShowData.wavedata);
|
||||||
|
QVector<double>().swap(waveShowData.Key);
|
||||||
|
f = 0.0;
|
||||||
|
for(int ii = 0; ii < diffValue.size();ii++){
|
||||||
|
yValue.push_back(diffValue[ii]/(double)10000);
|
||||||
|
f += gap;
|
||||||
|
waveShowData.Key.push_back(f);
|
||||||
|
}
|
||||||
|
waveShowData.wavedata = yValue;
|
||||||
|
}
|
||||||
|
if(m_bDoubleDifferentiation){
|
||||||
|
QVector<double> diffValue,yValue,diffValue2,yValue2;
|
||||||
|
pCalculation->_Differentiation(waveShowData.wavedata,diffValue);
|
||||||
|
QVector<double>().swap(waveShowData.wavedata);
|
||||||
|
QVector<double>().swap(waveShowData.Key);
|
||||||
|
|
||||||
|
for(int ii = 0; ii < diffValue.size();ii++){
|
||||||
|
yValue.push_back(diffValue[ii]/(double)10000);
|
||||||
|
}
|
||||||
|
|
||||||
|
f = 0.0;
|
||||||
|
pCalculation->_Differentiation(yValue,diffValue2);
|
||||||
|
|
||||||
|
for(int i = 0 ; i < diffValue2.size();i++){
|
||||||
|
yValue2.push_back(diffValue2[i]/(double)10000);
|
||||||
|
f += gap;
|
||||||
|
waveShowData.Key.push_back(f);
|
||||||
|
}
|
||||||
|
waveShowData.wavedata = yValue2;
|
||||||
|
}
|
||||||
waveShowData.linColor = waveData.linColor;
|
waveShowData.linColor = waveData.linColor;
|
||||||
waveShowData.channelType = waveData.sensorType;
|
waveShowData.channelType = waveData.sensorType;
|
||||||
waveShowData.sensorEngineeringUnit = waveData.sensorEngineeringUnit;
|
waveShowData.sensorEngineeringUnit = waveData.sensorEngineeringUnit;
|
||||||
@ -659,8 +778,10 @@ void ChildForm::SecondData(const QString& strID,WAVE_DATA& waveData,WAVE_DISPALY
|
|||||||
for(int jj = 0 ; jj < vecFFTSpecData.size();jj++){
|
for(int jj = 0 ; jj < vecFFTSpecData.size();jj++){
|
||||||
waveShowData.Key.push_back(jj);
|
waveShowData.Key.push_back(jj);
|
||||||
}
|
}
|
||||||
|
waveShowData.SamleRate = waveData.SamleRate;
|
||||||
waveShowData.wavedata = vecFFTSpecData;
|
waveShowData.mean = waveData.mean;
|
||||||
|
waveShowData.wavedata = waveData.waveData;
|
||||||
|
waveShowData.wavedataFre = vecFFTSpecData;
|
||||||
waveShowData.linColor = waveData.linColor;
|
waveShowData.linColor = waveData.linColor;
|
||||||
waveShowData.channelType = waveData.sensorType;
|
waveShowData.channelType = waveData.sensorType;
|
||||||
waveShowData.sensorEngineeringUnit = waveData.sensorEngineeringUnit;
|
waveShowData.sensorEngineeringUnit = waveData.sensorEngineeringUnit;
|
||||||
@ -699,8 +820,10 @@ void ChildForm::SecondData(const QString& strID,WAVE_DATA& waveData,WAVE_DISPALY
|
|||||||
mapWaveDisplayData.insert(strID,waveShowData);
|
mapWaveDisplayData.insert(strID,waveShowData);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ChildForm::UpdateDiffMenu()
|
void ChildForm::UpdateDiffMenu()
|
||||||
{
|
{
|
||||||
|
if(m_iFormType == TimeDomainPlot || m_iFormType == FrequencyDomainPlot){
|
||||||
if(mapMultiGraph.contains("VELOCITY") && mapMultiGraph.contains("ACCELEROMETER")){
|
if(mapMultiGraph.contains("VELOCITY") && mapMultiGraph.contains("ACCELEROMETER")){
|
||||||
Integration->setEnabled(true);
|
Integration->setEnabled(true);
|
||||||
doubleIntegration->setEnabled(false);
|
doubleIntegration->setEnabled(false);
|
||||||
@ -747,6 +870,16 @@ void ChildForm::UpdateDiffMenu()
|
|||||||
doubleDifferentiation->setEnabled(false);
|
doubleDifferentiation->setEnabled(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(mapMultiGraph.contains("TACHOMETER") && !mapMultiGraph.contains("THRUST")
|
||||||
|
&& !mapMultiGraph.contains("PROXIMETER") && !mapMultiGraph.contains("ACCELEROMETER")
|
||||||
|
&& !mapMultiGraph.contains("SLOW_CURRENT") && !mapMultiGraph.contains("FAST_VOLTAGE")
|
||||||
|
&& !mapMultiGraph.contains("VELOCITY") && !mapMultiGraph.contains("SLOW_CURRENT")
|
||||||
|
&& !mapMultiGraph.contains("MICROPHONE")){
|
||||||
|
Rad->setEnabled(true);
|
||||||
|
}else{
|
||||||
|
Rad->setEnabled(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
void ChildForm::AddSeries(QString strID, QVector<WAVE_DATA>& waveData)
|
void ChildForm::AddSeries(QString strID, QVector<WAVE_DATA>& waveData)
|
||||||
{
|
{
|
||||||
@ -758,27 +891,45 @@ void ChildForm::AddSeries(QString strID, QVector<WAVE_DATA>& waveData)
|
|||||||
if(m_iFormType == TimeDomainPlot)//时域图
|
if(m_iFormType == TimeDomainPlot)//时域图
|
||||||
{
|
{
|
||||||
WAVE_DISPALYDATA waveShowData;
|
WAVE_DISPALYDATA waveShowData;
|
||||||
SecondData( strID,waveData[0], waveShowData);
|
SecondData( strID,waveData[m_position], waveShowData);
|
||||||
if(waveData[0].sensorType == "TACHOMETER"){
|
if(waveData[0].sensorType == "TACHOMETER"){
|
||||||
Rad->setEnabled(true);
|
Rad->setEnabled(true);
|
||||||
}else{
|
}else{
|
||||||
Rad->setEnabled(false);
|
Rad->setEnabled(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
mapWaveDisplayData.insert(strID,waveShowData);
|
mapWaveDisplayData.insert(strID,waveShowData);
|
||||||
|
|
||||||
QCPGraph* graph = MultiyAxis(strID,waveShowData.channelType,waveShowData.sensorEngineeringUnit);
|
QString stryLabel = waveShowData.channelType + "(" + waveShowData.sensorEngineeringUnit +")";
|
||||||
|
if(m_bIntegration){
|
||||||
|
if(waveShowData.channelType =="VELOCITY"){
|
||||||
|
stryLabel = "PROXIMETER(um)";
|
||||||
|
}else if(waveShowData.channelType =="ACCELEROMETER"){
|
||||||
|
stryLabel = "Velocity(mm/s)";
|
||||||
|
}
|
||||||
|
}else if(m_bDoubleIntegration){
|
||||||
|
if(waveShowData.channelType =="ACCELEROMETER"){
|
||||||
|
stryLabel = "PROXIMETER(um)";
|
||||||
|
}
|
||||||
|
}else if(m_bDifferentiation){
|
||||||
|
if(waveShowData.channelType == "VELOCITY")
|
||||||
|
stryLabel = "ACCELEROMETER(m/s^2)";
|
||||||
|
else if(waveShowData.channelType == "THRUST" ||
|
||||||
|
waveShowData.channelType == "PROXIMETER")
|
||||||
|
stryLabel = "Velocity(mm/s)";
|
||||||
|
}else if(m_bDoubleDifferentiation){
|
||||||
|
stryLabel = "ACCELEROMETER(m/s^2)";
|
||||||
|
}
|
||||||
|
QCPGraph* graph = MultiyAxis(strID,waveShowData.channelType,stryLabel);
|
||||||
if(graph == NULL)
|
if(graph == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if(waveData[0].sensorType == "ACCELEROMETER" || waveData[0].sensorType == "VELOCITY" ||
|
// if(waveData[m_position].sensorType == "ACCELEROMETER" || waveData[m_position].sensorType == "VELOCITY" ||
|
||||||
waveData[0].sensorType == "MICROPHONE"){
|
// waveData[m_position].sensorType == "MICROPHONE"){
|
||||||
|
|
||||||
ui->Btn_AC_DC->setEnabled(false);
|
// ui->Btn_AC_DC->setEnabled(false);
|
||||||
}else{
|
// }else{
|
||||||
ui->Btn_AC_DC->setEnabled(true);
|
// ui->Btn_AC_DC->setEnabled(true);
|
||||||
}
|
// }
|
||||||
|
|
||||||
if(!m_bDC)
|
if(!m_bDC)
|
||||||
{
|
{
|
||||||
@ -786,7 +937,7 @@ void ChildForm::AddSeries(QString strID, QVector<WAVE_DATA>& waveData)
|
|||||||
}else{
|
}else{
|
||||||
ui->widget->graph(line)->setData(waveShowData.Key, waveShowData.wavedata_DC);
|
ui->widget->graph(line)->setData(waveShowData.Key, waveShowData.wavedata_DC);
|
||||||
}
|
}
|
||||||
ui->widget->graph(line)->setName(waveData[0].channelName);
|
ui->widget->graph(line)->setName(waveData[m_position].channelName);
|
||||||
ui->widget->xAxis->setRange(0, 1);
|
ui->widget->xAxis->setRange(0, 1);
|
||||||
UpdateDiffMenu();
|
UpdateDiffMenu();
|
||||||
|
|
||||||
@ -810,50 +961,68 @@ void ChildForm::AddSeries(QString strID, QVector<WAVE_DATA>& waveData)
|
|||||||
ui->widget->xAxis->setRange(0, Time);
|
ui->widget->xAxis->setRange(0, Time);
|
||||||
ui->widget->xAxis->setLabel("Time(s)");
|
ui->widget->xAxis->setLabel("Time(s)");
|
||||||
waveTrendData.insert(strID,wavetempTrendData);
|
waveTrendData.insert(strID,wavetempTrendData);
|
||||||
QCPGraph* graph = MultiyAxis(strID,waveData[0].sensorType,waveData[0].sensorEngineeringUnit);
|
QString stryLabel = waveData[m_position].sensorType + "(" + waveData[m_position].sensorEngineeringUnit +")";
|
||||||
|
QCPGraph* graph = MultiyAxis(strID,waveData[0].sensorType,stryLabel);
|
||||||
if(graph == NULL)
|
if(graph == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if(waveData[0].sensorType == "TACHOMETER"){
|
if(waveData[0].sensorType == "TACHOMETER"){
|
||||||
ui->widget->graph(line)->setData(x, waveData[0].SpeedProfileSpeed);
|
ui->widget->graph(line)->setData(x, waveData[m_position].SpeedProfileSpeed);
|
||||||
}else{
|
}else{
|
||||||
ui->widget->graph(line)->setData(x, waveData[0].RMSValue);
|
ui->widget->graph(line)->setData(x, waveData[m_position].RMSValue);
|
||||||
}
|
}
|
||||||
ui->widget->graph(line)->setName(waveData[0].channelName);
|
ui->widget->graph(line)->setName(waveData[0].channelName);
|
||||||
ui->widget->replot(QCustomPlot::rpQueuedReplot);//刷新图表
|
ui->widget->replot(QCustomPlot::rpQueuedReplot);//刷新图表
|
||||||
|
|
||||||
}else if(m_iFormType == FrequencyDomainPlot){//频域图
|
}else if(m_iFormType == FrequencyDomainPlot){//频域图
|
||||||
|
|
||||||
if(waveData[0].sensorType == "ACCELEROMETER" || waveData[0].sensorType == "VELOCITY"){
|
|
||||||
Integration->setEnabled(true);
|
|
||||||
}else{
|
|
||||||
Integration->setEnabled(false);
|
|
||||||
}
|
|
||||||
WAVE_DISPALYDATA vecWaveDisplay;
|
WAVE_DISPALYDATA vecWaveDisplay;
|
||||||
SecondData( strID,waveData[0], vecWaveDisplay);
|
SecondData( strID,waveData[m_position], vecWaveDisplay);
|
||||||
|
mapWaveDisplayData.insert(strID,vecWaveDisplay);
|
||||||
ui->widget->xAxis->setRange(0, 1000);
|
ui->widget->xAxis->setRange(0, 1000);
|
||||||
QCPGraph* graph = MultiyAxis(strID,vecWaveDisplay.channelType,vecWaveDisplay.sensorEngineeringUnit);
|
QString stryLabel = vecWaveDisplay.channelType + "(" + vecWaveDisplay.sensorEngineeringUnit +")";
|
||||||
|
if(m_bIntegration){
|
||||||
|
if(vecWaveDisplay.channelType =="VELOCITY"){
|
||||||
|
stryLabel = "PROXIMETER(um)";
|
||||||
|
}else if(vecWaveDisplay.channelType =="ACCELEROMETER"){
|
||||||
|
stryLabel = "Velocity(mm/s)";
|
||||||
|
}
|
||||||
|
}else if(m_bDoubleIntegration){
|
||||||
|
if(vecWaveDisplay.channelType =="ACCELEROMETER"){
|
||||||
|
stryLabel = "PROXIMETER(um)";
|
||||||
|
}
|
||||||
|
}else if(m_bDifferentiation){
|
||||||
|
if(vecWaveDisplay.channelType == "VELOCITY")
|
||||||
|
stryLabel = "ACCELEROMETER(m/s^2)";
|
||||||
|
else if(vecWaveDisplay.channelType == "THRUST" ||
|
||||||
|
vecWaveDisplay.channelType == "PROXIMETER")
|
||||||
|
stryLabel = "Velocity(mm/s)";
|
||||||
|
}else if(m_bDoubleDifferentiation){
|
||||||
|
stryLabel = "ACCELEROMETER(m/s^2)";
|
||||||
|
}
|
||||||
|
QCPGraph* graph = MultiyAxis(strID,vecWaveDisplay.channelType,stryLabel);
|
||||||
if(graph == NULL)
|
if(graph == NULL)
|
||||||
return;
|
return;
|
||||||
ui->widget->xAxis->setLabel("Frequency(Hz)");
|
ui->widget->xAxis->setLabel("Frequency(Hz)");
|
||||||
ui->widget->graph(line)->setData(vecWaveDisplay.Key, vecWaveDisplay.wavedata);
|
ui->widget->graph(line)->setData(vecWaveDisplay.Key, vecWaveDisplay.wavedataFre);
|
||||||
ui->widget->graph(line)->setName(waveData[0].channelName);
|
ui->widget->graph(line)->setName(waveData[m_position].channelName);
|
||||||
|
UpdateDiffMenu();
|
||||||
|
|
||||||
}else if(m_iFormType == EnvChartPlot){//包络图
|
}else if(m_iFormType == EnvChartPlot){//包络图
|
||||||
|
|
||||||
QVector<QVector<double>> wavetempData;
|
QVector<QVector<double>> wavetempData;
|
||||||
WAVE_DISPALYDATA vecWaveDisplay;
|
WAVE_DISPALYDATA vecWaveDisplay;
|
||||||
SecondData( strID,waveData[0], vecWaveDisplay);
|
SecondData( strID,waveData[m_position], vecWaveDisplay);
|
||||||
|
mapWaveDisplayData.insert(strID,vecWaveDisplay);
|
||||||
QCPGraph* graph = MultiyAxis(strID,vecWaveDisplay.channelType,vecWaveDisplay.sensorEngineeringUnit);
|
QString stryLabel = vecWaveDisplay.channelType + "(" + vecWaveDisplay.sensorEngineeringUnit +")";
|
||||||
|
QCPGraph* graph = MultiyAxis(strID,vecWaveDisplay.channelType,stryLabel);
|
||||||
if(graph == NULL)
|
if(graph == NULL)
|
||||||
return;
|
return;
|
||||||
ui->widget->xAxis->setLabel("Frequency(Hz)");
|
ui->widget->xAxis->setLabel("Frequency(Hz)");
|
||||||
ui->widget->xAxis->setRange(0, 1000);
|
ui->widget->xAxis->setRange(0, 1000);
|
||||||
qDebug() << "line" <<line << endl;
|
qDebug() << "line" <<line << endl;
|
||||||
ui->widget->graph(line)->setData(vecWaveDisplay.Key, vecWaveDisplay.wavedataEnv);
|
ui->widget->graph(line)->setData(vecWaveDisplay.Key, vecWaveDisplay.wavedataEnv);
|
||||||
ui->widget->graph(line)->setName(waveData[0].channelName);
|
ui->widget->graph(line)->setName(waveData[m_position].channelName);
|
||||||
|
|
||||||
}else if(m_iFormType == WaterFallPlot){//瀑布图
|
}else if(m_iFormType == WaterFallPlot){//瀑布图
|
||||||
int k = 0;
|
int k = 0;
|
||||||
@ -893,7 +1062,7 @@ void ChildForm::AddSeries(QString strID, QVector<WAVE_DATA>& waveData)
|
|||||||
}
|
}
|
||||||
ui->widget->graph(0)->rescaleAxes();
|
ui->widget->graph(0)->rescaleAxes();
|
||||||
|
|
||||||
ui->widget->xAxis->setRange(0, waveData[0].SamleRate/2);
|
ui->widget->xAxis->setRange(0, waveData[m_position].SamleRate/2);
|
||||||
ui->widget->xAxis->setLabel("Frequency(Hz)");
|
ui->widget->xAxis->setLabel("Frequency(Hz)");
|
||||||
ui->widget->yAxis->setLabel(waveData[0].sensorType + "(" + waveData[0].sensorEngineeringUnit+")");
|
ui->widget->yAxis->setLabel(waveData[0].sensorType + "(" + waveData[0].sensorEngineeringUnit+")");
|
||||||
|
|
||||||
@ -1021,16 +1190,22 @@ void ChildForm::handlePlayWave(double position,double size )
|
|||||||
qDebug() << iterAxis.key() << endl;
|
qDebug() << iterAxis.key() << endl;
|
||||||
SecondData(listChannelID.at(i),iterWaveData.value()[position],waveShowData);
|
SecondData(listChannelID.at(i),iterWaveData.value()[position],waveShowData);
|
||||||
graph = ui->widget->addGraph(ui->widget->xAxis,iterAxis.value());
|
graph = ui->widget->addGraph(ui->widget->xAxis,iterAxis.value());
|
||||||
|
if(!m_bIntegration && !m_bDoubleIntegration &&
|
||||||
|
!m_bDifferentiation && !m_bDoubleDifferentiation){
|
||||||
|
|
||||||
iterAxis.value()->setLabel(waveShowData.channelType + "(" + waveShowData.sensorEngineeringUnit+")");
|
iterAxis.value()->setLabel(waveShowData.channelType + "(" + waveShowData.sensorEngineeringUnit+")");
|
||||||
}
|
}
|
||||||
|
//iterAxis.value()->setLabel(waveShowData.channelType + "(" + waveShowData.sensorEngineeringUnit+")");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if(m_bRpm){
|
if(m_bRpm){
|
||||||
CalculateRPM();
|
CalculateRPM();
|
||||||
}
|
}
|
||||||
if(m_bIntegration || m_bDoubleIntegration){
|
/*if(m_bIntegration || m_bDoubleIntegration){
|
||||||
if(m_bIntegration)
|
if(m_bIntegration)
|
||||||
CalculateIntegration(false);
|
CalculateIntegration(false);
|
||||||
else if(m_bDoubleIntegration)
|
else if(m_bDoubleIntegration)
|
||||||
@ -1041,14 +1216,17 @@ void ChildForm::handlePlayWave(double position,double size )
|
|||||||
CalculateDifferentiation(false);
|
CalculateDifferentiation(false);
|
||||||
else if(m_bDoubleDifferentiation)
|
else if(m_bDoubleDifferentiation)
|
||||||
CalculateDifferentiation(true);
|
CalculateDifferentiation(true);
|
||||||
}else
|
}*/else
|
||||||
{
|
{
|
||||||
if(m_bDC){
|
if(m_bDC){
|
||||||
graph->setData(waveShowData.Key, waveShowData.wavedata_DC);
|
graph->setData(waveShowData.Key, waveShowData.wavedata_DC);
|
||||||
}else{
|
}else{
|
||||||
if(m_iFormType == EnvChartPlot){
|
if(m_iFormType == EnvChartPlot){
|
||||||
graph->setData(waveShowData.Key, waveShowData.wavedataEnv);
|
graph->setData(waveShowData.Key, waveShowData.wavedataEnv);
|
||||||
}else{
|
}else if(m_iFormType == FrequencyDomainPlot){
|
||||||
|
graph->setData(waveShowData.Key, waveShowData.wavedataFre);
|
||||||
|
}else
|
||||||
|
{
|
||||||
graph->setData(waveShowData.Key, waveShowData.wavedata);
|
graph->setData(waveShowData.Key, waveShowData.wavedata);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1927,9 +2105,9 @@ void ChildForm::RemoveSeries(QString strID)
|
|||||||
for(;itermultiGraph != mapMultiGraph.end();itermultiGraph++){
|
for(;itermultiGraph != mapMultiGraph.end();itermultiGraph++){
|
||||||
int flag = 0;
|
int flag = 0;
|
||||||
QMap<QString,QCPAxis*>::Iterator iterGraph = itermultiGraph.value().begin();
|
QMap<QString,QCPAxis*>::Iterator iterGraph = itermultiGraph.value().begin();
|
||||||
for(;iterGraph != itermultiGraph.value().end();iterGraph++){
|
for(iterGraph = itermultiGraph.value().begin();iterGraph != itermultiGraph.value().end();iterGraph++){
|
||||||
if(iterGraph.key() == strID){
|
if(iterGraph.key() == strID){
|
||||||
if(mapMultiGraph[itermultiGraph.key()].size() == 1){
|
if(mapMultiGraph[itermultiGraph.key()].size() == 1){//当前Y轴最后一条数据清除时,隐藏Y轴
|
||||||
iterGraph.value()->setVisible(false);
|
iterGraph.value()->setVisible(false);
|
||||||
}
|
}
|
||||||
mapMultiGraph[itermultiGraph.key()].erase(iterGraph);
|
mapMultiGraph[itermultiGraph.key()].erase(iterGraph);
|
||||||
@ -2062,14 +2240,31 @@ void ChildForm::ItemPressSlot(QTableWidgetItem *item)
|
|||||||
if(item->column() != 0) return;
|
if(item->column() != 0) return;
|
||||||
|
|
||||||
QString strID = item->data(CHANNELID_ROLE).toString();
|
QString strID = item->data(CHANNELID_ROLE).toString();
|
||||||
|
QString strType = item->data(CHANNELTYPE_ROLE).toString();
|
||||||
|
|
||||||
if(item->isSelected() && !item->checkState())
|
if(item->isSelected() && !item->checkState())
|
||||||
{
|
{
|
||||||
if(ui->widget->graphCount() == 3){
|
if(ui->widget->graphCount() == 3 && (m_iFormType == TimeDomainPlot ||
|
||||||
|
m_iFormType == FrequencyDomainPlot ||
|
||||||
|
m_iFormType == TrendChartPlot ||
|
||||||
|
m_iFormType == SpecChartPlot ||
|
||||||
|
m_iFormType == EnvChartPlot)){
|
||||||
|
|
||||||
item->setCheckState(Qt::Unchecked);
|
item->setCheckState(Qt::Unchecked);
|
||||||
item->setSelected(false);
|
item->setSelected(false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if((m_iFormType == OrbitPlot || m_iFormType == ShaftCenterline || m_iFormType == PolarPlot) && (strType != "PROXIMETER" /*|| strType != "THRUST"*/)){
|
||||||
|
item->setCheckState(Qt::Unchecked);
|
||||||
|
item->setSelected(false);
|
||||||
|
return;
|
||||||
|
|
||||||
|
}else if(m_iFormType == BodePlot && strType != "ACCELEROMETER"){
|
||||||
|
item->setCheckState(Qt::Unchecked);
|
||||||
|
item->setSelected(false);
|
||||||
|
return;
|
||||||
|
|
||||||
|
}
|
||||||
item->setCheckState(Qt::Checked);
|
item->setCheckState(Qt::Checked);
|
||||||
emit ItemCheckStateSignal(strID, true);
|
emit ItemCheckStateSignal(strID, true);
|
||||||
listChannelID.push_back(strID);
|
listChannelID.push_back(strID);
|
||||||
@ -2094,14 +2289,44 @@ void ChildForm::ItemChangedSlot(QTableWidgetItem *item)
|
|||||||
|
|
||||||
QString strID = item->data(CHANNELID_ROLE).toString();
|
QString strID = item->data(CHANNELID_ROLE).toString();
|
||||||
QString strType = item->data(CHANNELTYPE_ROLE).toString();
|
QString strType = item->data(CHANNELTYPE_ROLE).toString();
|
||||||
|
|
||||||
|
if(item->isSelected() && item->checkState())
|
||||||
|
{
|
||||||
|
if((m_iFormType == OrbitPlot || m_iFormType == ShaftCenterline || m_iFormType == PolarPlot) && (strType != "PROXIMETER" /*|| strType != "THRUST"*/)){
|
||||||
|
item->setCheckState(Qt::Unchecked);
|
||||||
|
item->setSelected(false);
|
||||||
|
return;
|
||||||
|
|
||||||
|
}else if(m_iFormType == BodePlot && strType != "ACCELEROMETER"){
|
||||||
|
item->setCheckState(Qt::Unchecked);
|
||||||
|
item->setSelected(false);
|
||||||
|
return;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
if(item->checkState() && !item->isSelected())
|
if(item->checkState() && !item->isSelected())
|
||||||
{
|
{
|
||||||
if(ui->widget->graphCount() == 3 && m_iFormType != OrbitPlot){
|
if(ui->widget->graphCount() == 3 && (m_iFormType == TimeDomainPlot ||
|
||||||
|
m_iFormType == FrequencyDomainPlot ||
|
||||||
|
m_iFormType == TrendChartPlot ||
|
||||||
|
m_iFormType == SpecChartPlot ||
|
||||||
|
m_iFormType == EnvChartPlot)){
|
||||||
MyMsgBox(QMessageBox::Information,"提示","最大支持三条曲线");
|
MyMsgBox(QMessageBox::Information,"提示","最大支持三条曲线");
|
||||||
item->setCheckState(Qt::Unchecked);
|
item->setCheckState(Qt::Unchecked);
|
||||||
item->setSelected(false);
|
item->setSelected(false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if((m_iFormType == OrbitPlot || m_iFormType == ShaftCenterline || m_iFormType == PolarPlot) && (strType != "PROXIMETER" /*|| strType != "THRUST"*/)){
|
||||||
|
item->setCheckState(Qt::Unchecked);
|
||||||
|
item->setSelected(false);
|
||||||
|
return;
|
||||||
|
|
||||||
|
}else if(m_iFormType == BodePlot && strType != "ACCELEROMETER"){
|
||||||
|
item->setCheckState(Qt::Unchecked);
|
||||||
|
item->setSelected(false);
|
||||||
|
return;
|
||||||
|
|
||||||
|
}
|
||||||
item->setCheckState(Qt::Checked);
|
item->setCheckState(Qt::Checked);
|
||||||
item->setSelected(true);
|
item->setSelected(true);
|
||||||
emit ItemCheckStateSignal(strID, true);
|
emit ItemCheckStateSignal(strID, true);
|
||||||
@ -2350,6 +2575,7 @@ void ChildForm::CalculateRPM()
|
|||||||
WaveDisplay.channelType = iter.value().channelType;
|
WaveDisplay.channelType = iter.value().channelType;
|
||||||
WaveDisplay.sensorEngineeringUnit = iter.value().sensorEngineeringUnit;
|
WaveDisplay.sensorEngineeringUnit = iter.value().sensorEngineeringUnit;
|
||||||
WaveDisplay.SamleRate = iter.value().SamleRate;
|
WaveDisplay.SamleRate = iter.value().SamleRate;
|
||||||
|
WaveDisplay.channleName = iter.value().channleName;
|
||||||
|
|
||||||
//file.close();
|
//file.close();
|
||||||
mapWaveDisplayData_RPM.insert(iter.key(),WaveDisplay);
|
mapWaveDisplayData_RPM.insert(iter.key(),WaveDisplay);
|
||||||
@ -2371,6 +2597,7 @@ void ChildForm::CalculateRPM()
|
|||||||
pen.setWidth(0);
|
pen.setWidth(0);
|
||||||
ui->widget->graph(i)->setPen(pen);
|
ui->widget->graph(i)->setPen(pen);
|
||||||
ui->widget->replot(QCustomPlot::rpImmediateRefresh);
|
ui->widget->replot(QCustomPlot::rpImmediateRefresh);
|
||||||
|
ui->widget->graph(i)->setName(iter1.value().channleName);
|
||||||
waveGraph.insert(iter1.key(),graph);
|
waveGraph.insert(iter1.key(),graph);
|
||||||
QString xAxis = "";
|
QString xAxis = "";
|
||||||
xAxis = QString("Time(s) 平均转速:%1").arg(iter1.value().meanRpm);
|
xAxis = QString("Time(s) 平均转速:%1").arg(iter1.value().meanRpm);
|
||||||
@ -2458,9 +2685,9 @@ void ChildForm::ZoomBtnSlot_XY()
|
|||||||
ui->widget->setSelectionRectMode(QCP::SelectionRectMode::srmNone);
|
ui->widget->setSelectionRectMode(QCP::SelectionRectMode::srmNone);
|
||||||
int graphCount = ui->widget->graphCount();
|
int graphCount = ui->widget->graphCount();
|
||||||
if(graphCount > 0){
|
if(graphCount > 0){
|
||||||
ui->widget->graph(0)->rescaleValueAxis();
|
ui->widget->graph(0)->rescaleAxes();
|
||||||
for(int i = 1; i < graphCount; i++){
|
for(int i = 1; i < graphCount; i++){
|
||||||
ui->widget->graph(i)->rescaleValueAxis(true);
|
ui->widget->graph(i)->rescaleAxes(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
ui->widget->replot();
|
ui->widget->replot();
|
||||||
@ -2517,22 +2744,22 @@ void ChildForm::ScalesY()
|
|||||||
ui->widget->setSelectionRectMode(QCP::SelectionRectMode::srmNone);
|
ui->widget->setSelectionRectMode(QCP::SelectionRectMode::srmNone);
|
||||||
ui->widget->setInteractions(QCP::iRangeZoom|QCP::iRangeDrag|QCP::iSelectAxes);
|
ui->widget->setInteractions(QCP::iRangeZoom|QCP::iRangeDrag|QCP::iSelectAxes);
|
||||||
ui->widget->axisRect()->setRangeZoomFactor(1,1.2);
|
ui->widget->axisRect()->setRangeZoomFactor(1,1.2);
|
||||||
for(int i = 0; i < axes.size();i++){
|
for(int i = 0; i < Axis.size();i++){
|
||||||
if (axes[i]->selectedParts().testFlag(QCPAxis::spAxis))
|
if (Axis[i]->selectedParts().testFlag(QCPAxis::spAxis))
|
||||||
ui->widget->axisRect()->setRangeZoomAxes(ui->widget->xAxis,axes[i]);
|
ui->widget->axisRect()->setRangeZoomAxes(ui->widget->xAxis,Axis[i]);
|
||||||
}
|
}
|
||||||
//ui->widget->axisRect()->setRangeZoomAxes(ui->widget->xAxis,ui->widget->yAxis);
|
//ui->widget->axisRect()->setRangeZoomAxis(ui->widget->xAxis,ui->widget->yAxis);
|
||||||
}
|
}
|
||||||
void ChildForm::ScalesXY()
|
void ChildForm::ScalesXY()
|
||||||
{
|
{
|
||||||
ui->widget->setSelectionRectMode(QCP::SelectionRectMode::srmNone);
|
ui->widget->setSelectionRectMode(QCP::SelectionRectMode::srmNone);
|
||||||
ui->widget->setInteractions(QCP::iRangeZoom|QCP::iRangeDrag|QCP::iSelectAxes);
|
ui->widget->setInteractions(QCP::iRangeZoom|QCP::iRangeDrag|QCP::iSelectAxes);
|
||||||
ui->widget->axisRect()->setRangeZoomFactor(1.2,1.2);
|
ui->widget->axisRect()->setRangeZoomFactor(1.2,1.2);
|
||||||
for(int i = 0; i < axes.size();i++){
|
for(int i = 0; i < Axis.size();i++){
|
||||||
if (axes[i]->selectedParts().testFlag(QCPAxis::spAxis))
|
if (Axis[i]->selectedParts().testFlag(QCPAxis::spAxis))
|
||||||
ui->widget->axisRect()->setRangeZoomAxes(ui->widget->xAxis,axes[i]);
|
ui->widget->axisRect()->setRangeZoomAxes(ui->widget->xAxis,Axis[i]);
|
||||||
}
|
}
|
||||||
//ui->widget->axisRect()->setRangeZoomAxes(ui->widget->xAxis,ui->widget->yAxis);
|
//ui->widget->axisRect()->setRangeZoomAxis(ui->widget->xAxis,ui->widget->yAxis);
|
||||||
}
|
}
|
||||||
void ChildForm::ScalesBox()
|
void ChildForm::ScalesBox()
|
||||||
{
|
{
|
||||||
@ -2542,6 +2769,11 @@ void ChildForm::ScalesBox()
|
|||||||
}
|
}
|
||||||
void ChildForm::Cursor()
|
void ChildForm::Cursor()
|
||||||
{
|
{
|
||||||
|
if(tracer->visible())
|
||||||
|
tracer->setVisible(false);
|
||||||
|
else
|
||||||
|
tracer->setVisible(true);
|
||||||
|
|
||||||
ui->widget->setInteractions(QCP::iRangeZoom|QCP::iRangeDrag);
|
ui->widget->setInteractions(QCP::iRangeZoom|QCP::iRangeDrag);
|
||||||
dismove = connect(ui->widget, SIGNAL(mouseMove(QMouseEvent*)), this, SLOT(mouseMoveEvent(QMouseEvent*)));
|
dismove = connect(ui->widget, SIGNAL(mouseMove(QMouseEvent*)), this, SLOT(mouseMoveEvent(QMouseEvent*)));
|
||||||
disDoubleclick = connect(ui->widget, SIGNAL(mouseDoubleClick(QMouseEvent*)), this, SLOT(mouseDoubleClickEvent(QMouseEvent*)));
|
disDoubleclick = connect(ui->widget, SIGNAL(mouseDoubleClick(QMouseEvent*)), this, SLOT(mouseDoubleClickEvent(QMouseEvent*)));
|
||||||
@ -2560,11 +2792,21 @@ void ChildForm::slotSetScales(QString str)
|
|||||||
QStringList strList = str.split(",");
|
QStringList strList = str.split(",");
|
||||||
qDebug() << "slotSetScales" << strList[2].toFloat()<<strList[3].toFloat() << endl;
|
qDebug() << "slotSetScales" << strList[2].toFloat()<<strList[3].toFloat() << endl;
|
||||||
ui->widget->xAxis->setRange(strList[0].toFloat(), strList[1].toFloat()-strList[0].toFloat(), Qt::AlignLeft);
|
ui->widget->xAxis->setRange(strList[0].toFloat(), strList[1].toFloat()-strList[0].toFloat(), Qt::AlignLeft);
|
||||||
for(int i = 0; i < axes.size();i++){
|
|
||||||
if (axes[i]->selectedParts().testFlag(QCPAxis::spAxis))
|
|
||||||
axes[i]->setRange(strList[2].toFloat(), strList[3].toFloat()-strList[2].toFloat(), Qt::AlignLeft);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
int j = 0,ii = 0;
|
||||||
|
for(int i = 0; i < Axis.size();i++){
|
||||||
|
if(Axis[i]->visible()){
|
||||||
|
j ++;
|
||||||
|
ii = i;
|
||||||
|
|
||||||
|
}
|
||||||
|
if (Axis[i]->selectedParts().testFlag(QCPAxis::spAxis) && j > 1){
|
||||||
|
Axis[i]->setRange(strList[2].toFloat(), strList[3].toFloat()-strList[2].toFloat(), Qt::AlignLeft);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(j == 1){
|
||||||
|
Axis[ii]->setRange(strList[2].toFloat(), strList[3].toFloat()-strList[2].toFloat(), Qt::AlignLeft);
|
||||||
|
}
|
||||||
ui->widget->replot(QCustomPlot::rpImmediateRefresh);
|
ui->widget->replot(QCustomPlot::rpImmediateRefresh);
|
||||||
}
|
}
|
||||||
void ChildForm::slotSetFilter(QString str)
|
void ChildForm::slotSetFilter(QString str)
|
||||||
@ -2817,6 +3059,7 @@ void ChildForm::OnPlayWaveSound()
|
|||||||
ui->Btn_Sound->setChecked(false);
|
ui->Btn_Sound->setChecked(false);
|
||||||
std::unique_lock<std::mutex> lock(mu);
|
std::unique_lock<std::mutex> lock(mu);
|
||||||
m_isPause = true;
|
m_isPause = true;
|
||||||
|
EnableBtn();
|
||||||
m_cv.notify_one();
|
m_cv.notify_one();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -2885,17 +3128,17 @@ void ChildForm::realTimeData()
|
|||||||
|
|
||||||
void ChildForm::SetDC()
|
void ChildForm::SetDC()
|
||||||
{
|
{
|
||||||
QMap<QString,QMap<QString,QCPAxis*>>::iterator iter = mapMultiGraph.begin();
|
// QMap<QString,QMap<QString,QCPAxis*>>::iterator iter = mapMultiGraph.begin();
|
||||||
for(;iter != mapMultiGraph.end();iter ++){
|
// for(;iter != mapMultiGraph.end();iter ++){
|
||||||
if(iter.key() == "VELOCITY" || iter.key() == "MICROPHONE" || iter.key() == "ACCELEROMETER" ){
|
// if(iter.key() == "VELOCITY" || iter.key() == "MICROPHONE" || iter.key() == "ACCELEROMETER" ){
|
||||||
MyMsgBox(QMessageBox::Warning,"警告","加速度、速度信号、声音信号只有AC数据");
|
// MyMsgBox(QMessageBox::Warning,"警告","加速度、速度信号、声音信号只有AC数据");
|
||||||
if(ui->Btn_AC_DC->isChecked()){
|
// if(ui->Btn_AC_DC->isChecked()){
|
||||||
ui->Btn_AC_DC->setChecked(false);
|
// ui->Btn_AC_DC->setChecked(false);
|
||||||
ui->Btn_AC_DC->setEnabled(false);
|
// ui->Btn_AC_DC->setEnabled(false);
|
||||||
}
|
// }
|
||||||
return;
|
// return;
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
int graphCount = ui->widget->clearGraphs();
|
int graphCount = ui->widget->clearGraphs();
|
||||||
QMap<QString,QCPGraph*>().swap(waveGraph);
|
QMap<QString,QCPGraph*>().swap(waveGraph);
|
||||||
@ -2911,13 +3154,16 @@ void ChildForm::SetDC()
|
|||||||
|
|
||||||
void ChildForm::CalculateIntegration(bool isDoubleIntegration)
|
void ChildForm::CalculateIntegration(bool isDoubleIntegration)
|
||||||
{
|
{
|
||||||
ui->widget->clearGraphs();
|
|
||||||
QMap<QString,QCPGraph*>().swap(waveGraph);
|
QMap<QString,QCPGraph*>().swap(waveGraph);
|
||||||
QVector<double> x,y;
|
QVector<double> x,y;
|
||||||
QVector<double> temDCWave;
|
QVector<double> temDCWave;
|
||||||
|
<<<<<<< HEAD
|
||||||
|
=======
|
||||||
|
QString strLabel;
|
||||||
|
>>>>>>> master
|
||||||
QMap<QString,WAVE_DISPALYDATA>::Iterator iter = mapWaveDisplayData.begin();
|
QMap<QString,WAVE_DISPALYDATA>::Iterator iter = mapWaveDisplayData.begin();
|
||||||
for (int i = 0; i < listChannelID.size(); ++i){
|
for (int i = 0; i < listChannelID.size(); ++i){
|
||||||
for(;iter != mapWaveDisplayData.end();iter++){
|
for(iter = mapWaveDisplayData.begin();iter != mapWaveDisplayData.end();iter++){
|
||||||
if(listChannelID.at(i) == iter.key()){
|
if(listChannelID.at(i) == iter.key()){
|
||||||
QVector<double>().swap(x);
|
QVector<double>().swap(x);
|
||||||
QVector<double>().swap(y);
|
QVector<double>().swap(y);
|
||||||
@ -2939,22 +3185,25 @@ void ChildForm::CalculateIntegration(bool isDoubleIntegration)
|
|||||||
key.push_back(f);
|
key.push_back(f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
|
=======
|
||||||
|
if(iter.value().channelType =="ACCELEROMETER"){
|
||||||
|
strLabel = "PROXIMETER(um)";
|
||||||
|
}
|
||||||
|
QCPGraph* graph = MultiyAxis(iter.key(),iter.value().channelType,strLabel);
|
||||||
|
>>>>>>> master
|
||||||
ui->widget->xAxis->setRange(0, 1);
|
ui->widget->xAxis->setRange(0, 1);
|
||||||
QCPGraph* graph = ui->widget->addGraph();
|
graph->setData(key, Proximeter);
|
||||||
ui->widget->graph(i)->setData(key, Proximeter);
|
|
||||||
// let the ranges scale themselves so graph 0 fits perfectly in the visible area:
|
// let the ranges scale themselves so graph 0 fits perfectly in the visible area:
|
||||||
ui->widget->graph(i)->rescaleValueAxis();
|
graph->rescaleValueAxis();
|
||||||
|
graph->setName(iter.value().channleName);
|
||||||
QPen pen;
|
QPen pen;
|
||||||
pen.setColor(iter.value().linColor);
|
pen.setColor(iter.value().linColor);
|
||||||
pen.setStyle(Qt::SolidLine);
|
pen.setStyle(Qt::SolidLine);
|
||||||
pen.setWidth(0);
|
pen.setWidth(0);
|
||||||
ui->widget->graph(i)->setPen(pen);
|
graph->setPen(pen);
|
||||||
// give the axes some labels:
|
// give the Axis some labels:
|
||||||
ui->widget->xAxis->setLabel("Time(s)");
|
ui->widget->xAxis->setLabel("Time(s)");
|
||||||
if(iter.value().channelType =="ACCELEROMETER"){
|
|
||||||
ui->widget->yAxis->setLabel("PROXIMETER(um)");
|
|
||||||
}
|
|
||||||
waveGraph.insert(listChannelID.at(i), graph);
|
|
||||||
|
|
||||||
}else{
|
}else{
|
||||||
|
|
||||||
@ -2963,15 +3212,24 @@ void ChildForm::CalculateIntegration(bool isDoubleIntegration)
|
|||||||
f += gap;
|
f += gap;
|
||||||
x.push_back(f);
|
x.push_back(f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(iter.value().channelType =="VELOCITY"){
|
||||||
|
strLabel = "PROXIMETER(um)";
|
||||||
|
}else if(iter.value().channelType =="ACCELEROMETER"){
|
||||||
|
strLabel = "Velocity(mm/s)";
|
||||||
|
}
|
||||||
|
QCPGraph* graph = MultiyAxis(iter.key(),iter.value().channelType,strLabel);
|
||||||
ui->widget->xAxis->setRange(0, 1);
|
ui->widget->xAxis->setRange(0, 1);
|
||||||
QCPGraph* graph = ui->widget->addGraph();
|
//QCPGraph* graph = ui->widget->addGraph();
|
||||||
ui->widget->graph(i)->setData(x, y);
|
graph->setData(x, y);
|
||||||
// let the ranges scale themselves so graph 0 fits perfectly in the visible area:
|
// let the ranges scale themselves so graph 0 fits perfectly in the visible area:
|
||||||
ui->widget->graph(i)->rescaleValueAxis();
|
graph->rescaleValueAxis();
|
||||||
|
graph->setName(iter.value().channleName);
|
||||||
QPen pen;
|
QPen pen;
|
||||||
pen.setColor(iter.value().linColor);
|
pen.setColor(iter.value().linColor);
|
||||||
pen.setStyle(Qt::SolidLine);
|
pen.setStyle(Qt::SolidLine);
|
||||||
pen.setWidth(0);
|
pen.setWidth(0);
|
||||||
|
<<<<<<< HEAD
|
||||||
ui->widget->graph(i)->setPen(pen);
|
ui->widget->graph(i)->setPen(pen);
|
||||||
// give the axes some labels:
|
// give the axes some labels:
|
||||||
// QString strRMS = QString("Time(s) %1: %2").arg( "RMS" ).arg(rms);
|
// QString strRMS = QString("Time(s) %1: %2").arg( "RMS" ).arg(rms);
|
||||||
@ -2983,6 +3241,15 @@ void ChildForm::CalculateIntegration(bool isDoubleIntegration)
|
|||||||
ui->widget->yAxis->setLabel("Velocity(mm/s)");
|
ui->widget->yAxis->setLabel("Velocity(mm/s)");
|
||||||
}
|
}
|
||||||
waveGraph.insert(listChannelID.at(i), graph);
|
waveGraph.insert(listChannelID.at(i), graph);
|
||||||
|
=======
|
||||||
|
graph->setPen(pen);
|
||||||
|
// give the Axis some labels:
|
||||||
|
QString strRMS = QString("Time(s) %1: %2").arg( "RMS" ).arg(rms);
|
||||||
|
|
||||||
|
ui->widget->xAxis->setLabel(strRMS);
|
||||||
|
|
||||||
|
//waveGraph.insert(listChannelID.at(i), graph);
|
||||||
|
>>>>>>> master
|
||||||
}
|
}
|
||||||
ui->widget->replot(QCustomPlot::rpImmediateRefresh);
|
ui->widget->replot(QCustomPlot::rpImmediateRefresh);
|
||||||
|
|
||||||
@ -2996,9 +3263,15 @@ void ChildForm::CalculateDifferentiation(bool isDoubleDifferentiation)
|
|||||||
{
|
{
|
||||||
QVector<double> key,value,yValue,key2,yValue2;
|
QVector<double> key,value,yValue,key2,yValue2;
|
||||||
QVector<double> temDCWave,diffValue,diffValue2;
|
QVector<double> temDCWave,diffValue,diffValue2;
|
||||||
|
<<<<<<< HEAD
|
||||||
|
=======
|
||||||
|
QString strLabel;
|
||||||
|
QCPGraph* graph = NULL;
|
||||||
|
qDebug() << mapWaveDisplayData.size() << endl;
|
||||||
|
>>>>>>> master
|
||||||
QMap<QString,WAVE_DISPALYDATA>::Iterator iter = mapWaveDisplayData.begin();
|
QMap<QString,WAVE_DISPALYDATA>::Iterator iter = mapWaveDisplayData.begin();
|
||||||
for (int i = 0; i < listChannelID.size(); ++i){
|
for (int i = 0; i < listChannelID.size(); ++i){
|
||||||
for(;iter != mapWaveDisplayData.end();iter++){
|
for(iter = mapWaveDisplayData.begin();iter != mapWaveDisplayData.end();iter++){
|
||||||
if(listChannelID.at(i) == iter.key()){
|
if(listChannelID.at(i) == iter.key()){
|
||||||
double gap,f;
|
double gap,f;
|
||||||
f= 0.0;
|
f= 0.0;
|
||||||
@ -3016,8 +3289,6 @@ void ChildForm::CalculateDifferentiation(bool isDoubleDifferentiation)
|
|||||||
key.push_back(f);
|
key.push_back(f);
|
||||||
}
|
}
|
||||||
|
|
||||||
QCPGraph* graph = ui->widget->addGraph();
|
|
||||||
|
|
||||||
if(isDoubleDifferentiation){//二次微分
|
if(isDoubleDifferentiation){//二次微分
|
||||||
m_bDoubleDifferentiation = true;
|
m_bDoubleDifferentiation = true;
|
||||||
QVector<double>().swap(diffValue2);
|
QVector<double>().swap(diffValue2);
|
||||||
@ -3029,42 +3300,60 @@ void ChildForm::CalculateDifferentiation(bool isDoubleDifferentiation)
|
|||||||
f += gap;
|
f += gap;
|
||||||
key2.push_back(f);
|
key2.push_back(f);
|
||||||
}
|
}
|
||||||
|
strLabel = "ACCELEROMETER(m/s^2)";
|
||||||
|
graph = MultiyAxis(iter.key(),iter.value().channelType,strLabel);
|
||||||
ui->widget->xAxis->setRange(0, 1);
|
ui->widget->xAxis->setRange(0, 1);
|
||||||
ui->widget->graph(i)->setData(key2, yValue2);
|
graph->setData(key2, yValue2);
|
||||||
ui->widget->yAxis->setLabel("ACCELEROMETER(m/s^2)");
|
|
||||||
}else{
|
}else{
|
||||||
ui->widget->xAxis->setRange(0, 1);
|
ui->widget->xAxis->setRange(0, 1);
|
||||||
|
<<<<<<< HEAD
|
||||||
ui->widget->graph(i)->setData(key, yValue);
|
ui->widget->graph(i)->setData(key, yValue);
|
||||||
if(iter.value().channelType == "VELOCITY")
|
if(iter.value().channelType == "VELOCITY")
|
||||||
ui->widget->yAxis->setLabel("ACCELEROMETER(mm/s)");
|
ui->widget->yAxis->setLabel("ACCELEROMETER(mm/s)");
|
||||||
else if(iter.value().channelType == "THRUST" ||
|
else if(iter.value().channelType == "THRUST" ||
|
||||||
iter.value().channelType == "PROXIMETER")
|
iter.value().channelType == "PROXIMETER")
|
||||||
ui->widget->yAxis->setLabel("Velocity(mm/s)");
|
ui->widget->yAxis->setLabel("Velocity(mm/s)");
|
||||||
|
=======
|
||||||
|
|
||||||
|
if(iter.value().channelType == "VELOCITY")
|
||||||
|
strLabel = "ACCELEROMETER(m/s^2)";
|
||||||
|
else if(iter.value().channelType == "THRUST" ||
|
||||||
|
iter.value().channelType == "PROXIMETER")
|
||||||
|
strLabel = "Velocity(mm/s)";
|
||||||
|
graph = MultiyAxis(iter.key(),iter.value().channelType,strLabel);
|
||||||
|
graph->setData(key, yValue);
|
||||||
|
>>>>>>> master
|
||||||
}
|
}
|
||||||
|
|
||||||
waveGraph.insert(listChannelID.at(i), graph);
|
|
||||||
// let the ranges scale themselves so graph 0 fits perfectly in the visible area:
|
// let the ranges scale themselves so graph 0 fits perfectly in the visible area:
|
||||||
ui->widget->graph(i)->rescaleValueAxis();
|
graph->rescaleValueAxis();
|
||||||
QPen pen;
|
QPen pen;
|
||||||
pen.setColor(iter.value().linColor);
|
pen.setColor(iter.value().linColor);
|
||||||
pen.setStyle(Qt::SolidLine);
|
pen.setStyle(Qt::SolidLine);
|
||||||
pen.setWidth(0);
|
pen.setWidth(0);
|
||||||
ui->widget->graph(i)->setPen(pen);
|
graph->setPen(pen);
|
||||||
|
graph->setName(iter.value().channleName);
|
||||||
// give the axes some labels:
|
// give the axes some labels:
|
||||||
ui->widget->xAxis->setLabel("Time(s)");
|
ui->widget->xAxis->setLabel("Time(s)");
|
||||||
|
<<<<<<< HEAD
|
||||||
|
|
||||||
|
=======
|
||||||
|
qDebug() << listChannelID.at(i) << endl;
|
||||||
|
>>>>>>> master
|
||||||
ui->widget->replot(QCustomPlot::rpImmediateRefresh);
|
ui->widget->replot(QCustomPlot::rpImmediateRefresh);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ChildForm::DoubleDifferentiationSlot()
|
void ChildForm::DoubleDifferentiationSlot()
|
||||||
{
|
{
|
||||||
qDebug() << "DoubleDifferentiationSlot" << endl;
|
qDebug() << "DoubleDifferentiationSlot" << endl;
|
||||||
|
|
||||||
if(listChannelID.size() > 1)
|
// if(listChannelID.size() > 1)
|
||||||
return;
|
// return;
|
||||||
ui->widget->clearGraphs();
|
ui->widget->clearGraphs();
|
||||||
if(m_bDoubleDifferentiation){
|
if(m_bDoubleDifferentiation){
|
||||||
m_bDoubleDifferentiation = false;
|
m_bDoubleDifferentiation = false;
|
||||||
@ -3077,12 +3366,13 @@ void ChildForm::DoubleDifferentiationSlot()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ChildForm::DifferentiationSlot()
|
void ChildForm::DifferentiationSlot()
|
||||||
{
|
{
|
||||||
qDebug() << "differentiationSlot" << endl;
|
qDebug() << "differentiationSlot" << endl;
|
||||||
|
|
||||||
if(listChannelID.size() > 1)
|
// if(listChannelID.size() > 1)
|
||||||
return;
|
// return;
|
||||||
ui->widget->clearGraphs();
|
ui->widget->clearGraphs();
|
||||||
if(m_bDifferentiation){
|
if(m_bDifferentiation){
|
||||||
m_bDifferentiation = false;
|
m_bDifferentiation = false;
|
||||||
@ -3090,17 +3380,19 @@ void ChildForm::DifferentiationSlot()
|
|||||||
}else{
|
}else{
|
||||||
m_bDifferentiation = true;
|
m_bDifferentiation = true;
|
||||||
m_bDoubleDifferentiation = false;
|
m_bDoubleDifferentiation = false;
|
||||||
|
m_bIntegration = false;
|
||||||
if(m_iFormType == TimeDomainPlot){
|
if(m_iFormType == TimeDomainPlot){
|
||||||
CalculateDifferentiation();
|
CalculateDifferentiation();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ChildForm::DoubleIntegrationSlot(){
|
void ChildForm::DoubleIntegrationSlot()
|
||||||
|
{
|
||||||
|
|
||||||
qDebug() << "DoubleIntegrationSlot" << endl;
|
qDebug() << "DoubleIntegrationSlot" << endl;
|
||||||
if(listChannelID.size() > 1)
|
// if(listChannelID.size() > 1)
|
||||||
return;
|
// return;
|
||||||
ui->widget->clearGraphs();
|
ui->widget->clearGraphs();
|
||||||
if(m_bDoubleIntegration){
|
if(m_bDoubleIntegration){
|
||||||
m_bDoubleIntegration = false;
|
m_bDoubleIntegration = false;
|
||||||
@ -3116,22 +3408,20 @@ void ChildForm::DoubleIntegrationSlot(){
|
|||||||
|
|
||||||
void ChildForm::IntegrationSlot()
|
void ChildForm::IntegrationSlot()
|
||||||
{
|
{
|
||||||
if(listChannelID.size() > 1)
|
// if(listChannelID.size() > 1)
|
||||||
return;
|
// return;
|
||||||
ui->widget->clearGraphs();
|
ui->widget->clearGraphs();
|
||||||
|
// InitDisPaly();
|
||||||
if(m_bIntegration){
|
if(m_bIntegration){
|
||||||
m_bIntegration = false;
|
m_bIntegration = false;
|
||||||
handlePlayWave(m_position);
|
handlePlayWave(m_position);
|
||||||
}else{
|
}else{
|
||||||
m_bIntegration = true;
|
m_bIntegration = true;
|
||||||
m_bDoubleIntegration = false;
|
m_bDoubleIntegration = false;
|
||||||
|
m_bDifferentiation = false;
|
||||||
QVector<double> x,y,y1,realvalue,imagevalue;
|
QVector<double> x,y,y1,realvalue,imagevalue;
|
||||||
QVector<double> temDCWave;
|
QVector<double> temDCWave;
|
||||||
QVector<double> temHanning;
|
|
||||||
QVector<double> AddHanning;
|
|
||||||
QVector<double> realshiftfft;
|
|
||||||
QVector<double> imageshiftfft;
|
|
||||||
QVector<double> ifft;
|
|
||||||
if(m_iFormType == TimeDomainPlot){
|
if(m_iFormType == TimeDomainPlot){
|
||||||
CalculateIntegration();
|
CalculateIntegration();
|
||||||
}else if(m_iFormType == FrequencyDomainPlot){
|
}else if(m_iFormType == FrequencyDomainPlot){
|
||||||
@ -3141,30 +3431,27 @@ void ChildForm::IntegrationSlot()
|
|||||||
if(listChannelID.at(i) == iter.key()){
|
if(listChannelID.at(i) == iter.key()){
|
||||||
QVector<double>().swap(x);
|
QVector<double>().swap(x);
|
||||||
QVector<double>().swap(y);
|
QVector<double>().swap(y);
|
||||||
QVector<double>().swap(realvalue);
|
|
||||||
QVector<double>().swap(imagevalue);
|
|
||||||
QVector<double>().swap(temDCWave);
|
QVector<double>().swap(temDCWave);
|
||||||
QVector<double>().swap(realshiftfft);
|
|
||||||
QVector<double>().swap(imageshiftfft);
|
|
||||||
for(int j = 0; j < iter.value().SamleRate;j++){
|
for(int j = 0; j < iter.value().SamleRate;j++){
|
||||||
temDCWave.push_back(iter.value().wavedata.at(j) - iter.value().mean);
|
double f = iter.value().wavedata.at(j) - iter.value().mean;
|
||||||
}
|
temDCWave.push_back(f);
|
||||||
//pCalculation->_FFT(temDCWave,realshiftfft,imageshiftfft);
|
|
||||||
pCalculation->FFTSpec(temDCWave,realshiftfft);
|
|
||||||
for (int i = 0; i < 10; i++) {
|
|
||||||
realshiftfft[i] = 0;
|
|
||||||
}
|
|
||||||
for (int i = 1000; i < realshiftfft.size(); i++) {
|
|
||||||
realshiftfft[i] = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
double rms = 0.0;
|
||||||
for(int k = 1; k < realshiftfft.size()+1;k++){
|
pCalculation->_Integration(temDCWave,y,rms);
|
||||||
x.push_back(k - 1);
|
pCalculation->FFTSpec(y,realvalue);
|
||||||
realvalue.push_back(realshiftfft.at(k-1)/(k*2*3.14)*1000);
|
for(int jj = 0 ; jj < realvalue.size();jj++){
|
||||||
|
x.push_back(jj);
|
||||||
}
|
}
|
||||||
|
|
||||||
ui->widget->xAxis->setRange(0, realvalue.size());
|
ui->widget->xAxis->setRange(0, realvalue.size());
|
||||||
ui->widget->addGraph();
|
QString strLabel = "";
|
||||||
|
if(iter.value().channelType == "ACCELEROMETER")
|
||||||
|
strLabel = "Velocity(mm/s)";
|
||||||
|
else if(iter.value().channelType == "VELOCITY")
|
||||||
|
strLabel = "PROXIMETER(um)";
|
||||||
|
QCPGraph* graph = MultiyAxis(iter.key(),iter.value().channelType,strLabel);
|
||||||
|
//QCPGraph* graph = ui->widget->addGraph();
|
||||||
ui->widget->graph(i)->setData(x, realvalue);
|
ui->widget->graph(i)->setData(x, realvalue);
|
||||||
// let the ranges scale themselves so graph 0 fits perfectly in the visible area:
|
// let the ranges scale themselves so graph 0 fits perfectly in the visible area:
|
||||||
ui->widget->graph(i)->rescaleValueAxis();
|
ui->widget->graph(i)->rescaleValueAxis();
|
||||||
@ -3175,12 +3462,11 @@ void ChildForm::IntegrationSlot()
|
|||||||
ui->widget->graph(i)->setPen(pen);
|
ui->widget->graph(i)->setPen(pen);
|
||||||
// give the axes some labels:
|
// give the axes some labels:
|
||||||
ui->widget->xAxis->setLabel("Frequency(Hz)");
|
ui->widget->xAxis->setLabel("Frequency(Hz)");
|
||||||
ui->widget->yAxis->setLabel("Velocity(mm/s)");
|
|
||||||
ui->widget->replot(QCustomPlot::rpImmediateRefresh);
|
ui->widget->replot(QCustomPlot::rpImmediateRefresh);
|
||||||
}
|
|
||||||
|
|
||||||
|
//waveGraph.insert(listChannelID.at(i), graph);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -181,7 +181,7 @@ private:
|
|||||||
QAction *Rad;
|
QAction *Rad;
|
||||||
|
|
||||||
QCPAxis *yAxis3;
|
QCPAxis *yAxis3;
|
||||||
QList<QCPAxis*> axes;
|
QList<QCPAxis*> Axis;
|
||||||
QCPItemTracer *tracer; //游标
|
QCPItemTracer *tracer; //游标
|
||||||
QCPItemTracer *tracer2; //游标
|
QCPItemTracer *tracer2; //游标
|
||||||
|
|
||||||
|
|||||||
@ -1193,9 +1193,6 @@ void MainWidget::ItemCheckStateSlot(QString strID, bool bChecked)
|
|||||||
QString strChannelType = iter.value().at(0).sensorType;
|
QString strChannelType = iter.value().at(0).sensorType;
|
||||||
if(strChannelType != "PROXIMETER")
|
if(strChannelType != "PROXIMETER")
|
||||||
return;
|
return;
|
||||||
qDebug() << "speedChannelID" << speedChannelID << endl;
|
|
||||||
qDebug() << "ChannelID" << ChannelID << endl;
|
|
||||||
qDebug() << "size" << mapWaveData[ChannelID].size() << endl;
|
|
||||||
if(speedChannelID == "NONE" || speedChannelID == ""){
|
if(speedChannelID == "NONE" || speedChannelID == ""){
|
||||||
MyMsgBox(QMessageBox::Warning,"警告","当前文件中没有转速通道数据");
|
MyMsgBox(QMessageBox::Warning,"警告","当前文件中没有转速通道数据");
|
||||||
return;
|
return;
|
||||||
@ -1259,7 +1256,7 @@ void MainWidget::ItemCheckStateSlot(QString strID, bool bChecked)
|
|||||||
if((iter.key() == strChannelID)){
|
if((iter.key() == strChannelID)){
|
||||||
QString ChannelID = iter.value().at(0).pairChannelID;
|
QString ChannelID = iter.value().at(0).pairChannelID;
|
||||||
QString ChannelType = iter.value().at(0).sensorType;
|
QString ChannelType = iter.value().at(0).sensorType;
|
||||||
if((ChannelType != "PROXIMETER") && (ChannelID == "NONE" || ChannelID == "")){
|
if((ChannelType != "PROXIMETER") /*&& (ChannelID == "NONE" || ChannelID == "")*/){
|
||||||
MyMsgBox(QMessageBox::Warning,"警告","请选择径向位移通道");
|
MyMsgBox(QMessageBox::Warning,"警告","请选择径向位移通道");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -1775,6 +1772,10 @@ void MainWidget::View3D()
|
|||||||
}
|
}
|
||||||
void MainWidget::Dat2Csv()
|
void MainWidget::Dat2Csv()
|
||||||
{
|
{
|
||||||
|
if(mapWaveData.size() < 1){
|
||||||
|
MyMsgBox(QMessageBox::Warning,"警告","请先打开数据文件!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
QString dirpath = QFileDialog::getExistingDirectory(this, QStringLiteral("选择目录"), "./", QFileDialog::ShowDirsOnly);
|
QString dirpath = QFileDialog::getExistingDirectory(this, QStringLiteral("选择目录"), "./", QFileDialog::ShowDirsOnly);
|
||||||
|
|
||||||
if(dirpath.isEmpty()) return;
|
if(dirpath.isEmpty()) return;
|
||||||
@ -2230,7 +2231,7 @@ void MainWidget::ReadDatData(QString strPath,QString strFileName,QString strIP)
|
|||||||
for (int i = 0; i < waveSize; i++) {
|
for (int i = 0; i < waveSize; i++) {
|
||||||
file.read((char *)&f, sizeof(f));
|
file.read((char *)&f, sizeof(f));
|
||||||
m_WaveChnData[j].channelId = buf;
|
m_WaveChnData[j].channelId = buf;
|
||||||
m_WaveChnData[j].waveData.push_back(f);
|
m_WaveChnData[j].waveData.push_back((double)f);
|
||||||
m_WaveChnData[j].Second = Count;
|
m_WaveChnData[j].Second = Count;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2266,13 +2267,13 @@ void MainWidget::ReadDatData(QString strPath,QString strFileName,QString strIP)
|
|||||||
if(iter->channelId.left(15) == m_WaveChnData[i].channelId.left(15)){
|
if(iter->channelId.left(15) == m_WaveChnData[i].channelId.left(15)){
|
||||||
wave.waveData = m_WaveChnData[i].waveData;
|
wave.waveData = m_WaveChnData[i].waveData;
|
||||||
|
|
||||||
float sum = 0.0;
|
double sum = 0.0;
|
||||||
if(iter->sensorType == "ACCELEROMETER" || iter->sensorType == "MICROPHONE" ||
|
if(iter->sensorType == "ACCELEROMETER" || iter->sensorType == "MICROPHONE" ||
|
||||||
iter->sensorType == "PROXIMETER" || iter->sensorType == "VELOCITY" ||
|
iter->sensorType == "PROXIMETER" || iter->sensorType == "VELOCITY" ||
|
||||||
iter->sensorType == "TACHOMETER" || iter->sensorType == "THRUST" ||
|
iter->sensorType == "TACHOMETER" || iter->sensorType == "THRUST" ||
|
||||||
iter->sensorType == "FAST_VOLTAGE"){
|
iter->sensorType == "FAST_VOLTAGE"){
|
||||||
sum = std::accumulate(std::begin(wave.waveData), std::end(wave.waveData), 0.0);
|
sum = std::accumulate(std::begin(wave.waveData), std::end(wave.waveData), 0.0);
|
||||||
float size = m_WaveChnData[i].waveData.size();
|
double size = m_WaveChnData[i].waveData.size();
|
||||||
wave.mean = sum/size;
|
wave.mean = sum/size;
|
||||||
|
|
||||||
}else{
|
}else{
|
||||||
|
|||||||
@ -22,7 +22,7 @@ typedef struct tag_WAVE_DATA{
|
|||||||
int channelNo;
|
int channelNo;
|
||||||
int Time;
|
int Time;
|
||||||
QString pairChannelID;
|
QString pairChannelID;
|
||||||
QVector<float> waveData;
|
QVector<double> waveData;
|
||||||
QVector<double> waveDataRealTime;
|
QVector<double> waveDataRealTime;
|
||||||
QColor linColor;
|
QColor linColor;
|
||||||
QVector<double> SpeedProfileSpeed;
|
QVector<double> SpeedProfileSpeed;
|
||||||
@ -63,7 +63,7 @@ typedef struct {
|
|||||||
typedef struct {
|
typedef struct {
|
||||||
int Second;
|
int Second;
|
||||||
QString channelId;
|
QString channelId;
|
||||||
QVector<float> waveData;
|
QVector<double> waveData;
|
||||||
QVector<double> TimeStamp;
|
QVector<double> TimeStamp;
|
||||||
} WAVE_CHNDATA;
|
} WAVE_CHNDATA;
|
||||||
|
|
||||||
@ -89,12 +89,13 @@ typedef struct {
|
|||||||
QVector<double> wavedata; //原始数据
|
QVector<double> wavedata; //原始数据
|
||||||
QVector<double> wavedataEnv;//包络数据
|
QVector<double> wavedataEnv;//包络数据
|
||||||
QVector<double> wavedata_DC;
|
QVector<double> wavedata_DC;
|
||||||
|
QVector<double> wavedataFre;//频域数据
|
||||||
QVector<double> TimeStamp;
|
QVector<double> TimeStamp;
|
||||||
QColor linColor;
|
QColor linColor;
|
||||||
QString channelType;
|
QString channelType;
|
||||||
QString sensorEngineeringUnit;
|
QString sensorEngineeringUnit;
|
||||||
int SamleRate;
|
int SamleRate;
|
||||||
float mean;
|
double mean;
|
||||||
double meanRpm;
|
double meanRpm;
|
||||||
QString channleName;
|
QString channleName;
|
||||||
int iTrigger;
|
int iTrigger;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user