1.0版本

This commit is contained in:
Zhang0626 2022-11-07 14:02:09 +08:00
parent a1250befa0
commit d66ad58b8b
31 changed files with 839 additions and 449 deletions

View File

@ -95,6 +95,9 @@ text-align:center;
<height>31</height>
</rect>
</property>
<property name="toolTip">
<string>查找</string>
</property>
<property name="styleSheet">
<string notr="true">background-image: url(:/images/images/imgModelAction/Search.png);</string>
</property>

View File

@ -361,7 +361,7 @@ void BaseWgt::maximumBtnClickedSlot()
this->setGeometry(m_screenRect);
m_pMaxBtn->setProperty("maxState", true);
m_pMaxBtn->setToolTip("restore");
m_pMaxBtn->setToolTip("最大化");
}
else
{

View File

@ -441,8 +441,8 @@ void Calculation::_Integration(QVector<double> & vecData,QVector<double>& retDat
qDebug()<< imageshiftfft.size() << endl;
for(int k = 1; k < realshiftfft.size()+1;k++){
realvalue.push_back((realshiftfft.at(k-1)/(k*2*3.14))*1000 * 2);//单位转换mm/s,*1000 *2 精度损失
imagevalue.push_back((imageshiftfft.at(k-1)/(k*2*3.14))*1000 * 2);//单位转换mm/s,*1000
realvalue.push_back((realshiftfft.at(k-1)/(k*2*PI))*1000 * 2);//单位转换mm/s,*1000 *2 精度损失
imagevalue.push_back((imageshiftfft.at(k-1)/(k*2*PI))*1000 * 2);//单位转换mm/s,*1000
}
_iFFT(realvalue,imagevalue,retData);
@ -722,6 +722,51 @@ QVector<double> Calculation::filter(QVector<double>&x, QVector<double>& coeff_b,
void Calculation::ButterWorth(QVector<double>&inData,double *FrequencyBands,QVector<double>& outData)
{
int FiltOrd = 4;
// double s = inData.size();
// double a = cos(M_PI*(FrequencyBands[0]+FrequencyBands[1])/s)/cos(M_PI*(FrequencyBands[0]-FrequencyBands[1])/s);
// double a2 = a*a;
// double b = tan(M_PI*(FrequencyBands[0]-FrequencyBands[1])/s);
// double b2 = b*b;
// double r;
// int n = FiltOrd/4;
// double *A = (double *)malloc(n*sizeof(double));
// double *d1 = (double *)malloc(n*sizeof(double));
// double *d2 = (double *)malloc(n*sizeof(double));
// double *d3 = (double *)malloc(n*sizeof(double));
// double *d4 = (double *)malloc(n*sizeof(double));
// double *w0 = (double *)calloc(n, sizeof(double));
// double *w1 = (double *)calloc(n, sizeof(double));
// double *w2 = (double *)calloc(n, sizeof(double));
// double *w3 = (double *)calloc(n, sizeof(double));
// double *w4 = (double *)calloc(n, sizeof(double));
// double x;
// for(int i=0; i<n; ++i){
// r = sin(M_PI*(2.0*i+1.0)/(4.0*n));
// s = b2 + 2.0*b*r + 1.0;
// A[i] = 1.0/s;
// d1[i] = 4.0*a*(1.0+b*r)/s;
// d2[i] = 2.0*(b2-2.0*a2-1.0)/s;
// d3[i] = 4.0*a*(1.0-b*r)/s;
// d4[i] = -(b2 - 2.0*b*r + 1.0)/s;}
// r = 4.0*a;
// s = 4.0*a2+2.0;
// for(int j = 0; j < inData.size(); j++){
// for(int i=0; i<n; ++i){
// w0[i] = d1[i]*w1[i] + d2[i]*w2[i]+ d3[i]*w3[i]+ d4[i]*w4[i] + inData[j];
// x = A[i]*(w0[i] - r*w1[i] + s*w2[i]- r*w3[i] + w4[i]);
// w4[i] = w3[i];
// w3[i] = w2[i];
// w2[i] = w1[i];
// w1[i] = w0[i];
// }
// outData.push_back(x);
// //printf("%lf\n", x);
// }
// free(A);free(A);free(d1);free(d2);free(d3);free(d4);
// free(w0);free(w1);free(w2);free(w3);free(w4);
QVector<double> a,b;
a = ComputeDenCoeffs(FiltOrd, FrequencyBands[0], FrequencyBands[1]);

View File

@ -95,7 +95,7 @@ public:
QVector<double> ComputeHP(int FilterOrder);
//vector<double> filter(int ord, vector<double> a, vector<double> b, int np, vector<double> x);
//巴特沃斯滤波
//巴特沃斯滤波(带通)
QVector<double> filter(QVector<double>&x, QVector<double>& coeff_b, QVector<double>& coeff_a);
void ButterWorth(QVector<double>& inData,double *FrequencyBands,QVector<double>& outData);

File diff suppressed because it is too large Load Diff

View File

@ -31,7 +31,8 @@ enum FormType
PolarPlot, //极坐标
BodePlot, //伯德图
ShaftCenterline, //轴心位置图
AllWavePlot //全谱图
AllWavePlot , //全谱图
TimeWavePlot //时域长波形
};
@ -58,7 +59,7 @@ class ChildForm : public BaseWgt
Q_OBJECT
public:
explicit ChildForm(FormType iType,QString m_strName = "",DEVICE_INFO* DeviceInfo = NULL, QWidget *parent = nullptr);
explicit ChildForm(FormType iType,QString m_strName = "",DEVICE_INFO* DeviceInfo = NULL,int iCurCount = 0, QWidget *parent = nullptr);
~ChildForm();
void SetName(QString strName)
@ -103,6 +104,7 @@ public:
void EnableBtn();
void UpdateDiffMenu();
void InitIntegration();
void UpdateTracerLabel();
QVector<WAVE_DATA> childWave;
QVector<WAVE_DATA> OrbitXWave,OrbitYWave;
QVector<KeyPhasor> vecKeyPhasor;
@ -126,20 +128,20 @@ signals:
protected:
public slots:
void ZoomBtnSlot_X();
void ZoomBtnSlot_Y();
void ZoomBtnSlot_XY();
void ZoomBtnSlot_Hand();
void ScalesBtnSlot_X();
void ScalesBtnSlot_Y();
void ScalesBtnSlot_XY();
void ScalesBtnSlot_Hand();
void ToRpm();
void Btn_ZoomSlot();
void Btn_ScalesSlot();
void IntegrationSlot();
void DoubleIntegrationSlot();
void DifferentiationSlot();
void DoubleDifferentiationSlot();
void ScalesBox();
void ScalesX();
void ScalesY();
void ScalesXY();
void ZoomBox();
void ZoomX();
void ZoomY();
void ZoomXY();
void Cursor();
void SetScales();
void SetFilter();
@ -170,7 +172,8 @@ private:
std::condition_variable m_cv;
std::mutex mu;
WAVE_CSVDATA m_vecCsvData[32];
QString m_strFilter;
QString m_strSacles;
int m_nStart;
int m_nEnd;
QMenu *remove_menu;
@ -180,6 +183,7 @@ private:
QAction *Ord;
QAction *Rad;
QCPAxis *yAxis3;
QList<QCPAxis*> Axis;
QCPItemTracer *tracer; //游标

View File

@ -17,11 +17,11 @@
<string>Form</string>
</property>
<property name="styleSheet">
<string notr="true">#Btn_ZoomMenu { border-image:url(:/images/images/imgModelAction/Zoom_xy.png) 1; }
#Btn_ZoomMenu:hover { border-image:url(:/images/images/imgModelAction/Zoom-xy-h.png) 1; }
#Btn_ZoomMenu:pressed { border-image:url(:/images/images/imgModelAction/Zoom-xy-p.png) 1; }
#Btn_ZoomMenu:checked { border-image:url(:/images/images/imgModelAction/Zoom_xy.png) 1; }
#Btn_ZoomMenu::menu-indicator{image:none;}
<string notr="true">#Btn_ScalesMenu { border-image:url(:/images/images/imgModelAction/Zoom_xy.png) 1; }
#Btn_ScalesMenu:hover { border-image:url(:/images/images/imgModelAction/Zoom-xy-h.png) 1; }
#Btn_ScalesMenu:pressed { border-image:url(:/images/images/imgModelAction/Zoom-xy-p.png) 1; }
#Btn_ScalesMenu:checked { border-image:url(:/images/images/imgModelAction/Zoom_xy.png) 1; }
#Btn_ScalesMenu::menu-indicator{image:none;}
#Btn_setScales { border-image:url(:/images/images/imgModelAction/setScales.png) 5; }
#Btn_setScales:hover { border-image:url(:/images/images/imgModelAction/setScales-h.png) 5; }
@ -98,7 +98,7 @@
#measureBtn:pressed {border-image:url(:/images/images/imgModelAction/measure-p.png) 5; }
#measureBtn:checked {border-image:url(:/images/images/imgModelAction/measure-p.png) 5; }
#realTimeDataBtn { border-image:url(:/images/images/imgModelAction/realTime.png) 5; }
#realTimeDataBtn { border-image:url(:/images/images/imgModelAction/realTime-d.png) 5; }
#realTimeDataBtn:hover { border-image:url(:/images/images/imgModelAction/realTime-h.png) 5; }
#realTimeDataBtn:pressed {border-image:url(:/images/images/imgModelAction/realTime-p.png) 5; }
#realTimeDataBtn:checked {border-image:url(:/images/images/imgModelAction/realTime-p.png) 5; }
@ -338,7 +338,7 @@
<height>41</height>
</size>
</property>
<widget class="QPushButton" name="Btn_ZoomMenu">
<widget class="QPushButton" name="Btn_ScalesMenu">
<property name="geometry">
<rect>
<x>90</x>
@ -473,7 +473,7 @@
</widget>
<widget class="QPushButton" name="realTimeDataBtn">
<property name="enabled">
<bool>true</bool>
<bool>false</bool>
</property>
<property name="geometry">
<rect>
@ -979,7 +979,7 @@
<zorder>Btn_Cursor</zorder>
<zorder>Btn_Zoom</zorder>
<zorder>line_5</zorder>
<zorder>Btn_ZoomMenu</zorder>
<zorder>Btn_ScalesMenu</zorder>
<zorder>Btn_setScales</zorder>
<zorder>line_6</zorder>
<zorder>Btn_Annotation</zorder>

View File

@ -73,6 +73,18 @@ bool CreateReport::CreateWord()//创建word
m_wordOperate->SetText("趋势图");
if(_strImagePathList.at(i).contains("EnvChart"))
m_wordOperate->SetText("包络图");
if(_strImagePathList.at(i).contains("Orbit"))
m_wordOperate->SetText("轴心轨迹图");
if(_strImagePathList.at(i).contains("WaterFall"))
m_wordOperate->SetText("瀑布图");
if(_strImagePathList.at(i).contains("Polar"))
m_wordOperate->SetText("极坐标图");
if(_strImagePathList.at(i).contains("ShaftCenterline"))
m_wordOperate->SetText("轴心位置图");
if(_strImagePathList.at(i).contains("Bode"))
m_wordOperate->SetText("伯德图");
if(_strImagePathList.at(i).contains("AllWave"))
m_wordOperate->SetText("全频图");
m_wordOperate->insertEnter();
}
DrawTable();

View File

@ -4,7 +4,7 @@
#include <qvalidator.h>
#include "msgbox.h"
FilterForm::FilterForm(QWidget *parent) :
FilterForm::FilterForm(QString strFilter, QWidget *parent) :
BaseWgt(parent),
ui(new Ui::FilterForm)
{
@ -17,6 +17,10 @@ FilterForm::FilterForm(QWidget *parent) :
QRegExpValidator *validator = new QRegExpValidator(rx, this);
ui->lineEdit->setValidator(validator);
ui->lineEdit_2->setValidator(validator);
QStringList strList = strFilter.split(",");
ui->lineEdit->setText(strList[0]);
ui->lineEdit_2->setText(strList[1]);
}
FilterForm::~FilterForm()

View File

@ -14,7 +14,7 @@ class FilterForm : public BaseWgt
Q_OBJECT
public:
explicit FilterForm(QWidget *parent = nullptr);
explicit FilterForm(QString strFilter,QWidget *parent = nullptr);
~FilterForm();
private:

View File

@ -130,6 +130,7 @@ void MainWidget::InitSignalandSlot()
connect(ui->modelBtn_5, SIGNAL(clicked()), this, SLOT(BodePlotSlot()));
connect(ui->modelBtn_6, SIGNAL(clicked()), this, SLOT(ShaftCenterlinePlotSlot()));
connect(ui->modelBtn_12, SIGNAL(clicked()), this, SLOT(View3D()));
connect(ui->modelBtn_TimeWave, SIGNAL(clicked()), this, SLOT(TimeWave()));
connect(ui->pushButton_5, SIGNAL(clicked()), this, SLOT(Dat2Csv()));
connect(ui->refreshBtn, SIGNAL(clicked()), this, SLOT(RefreshBtnSlot()));//刷新终端列表
@ -248,6 +249,11 @@ void MainWidget::SearchSlot(QString strIP,bool AutoSearch)
}
void MainWidget::RefreshBtnSlot()
{
ui->refreshBtn->setEnabled(false);
QTimer::singleShot(1000, this, [=]() {
ui->refreshBtn->setEnabled(true);
});
ui->treeWidget->clear();
InitDevList();
/*QString tablename = "t_Device";
@ -631,7 +637,6 @@ void MainWidget::addChildItem(QTreeWidgetItem *pDataItem,QTreeWidgetItem *pNoIte
else if ("manu" == strFlag)
{
pManulItem = pItem;
}
}
@ -687,7 +692,7 @@ void MainWidget::addChildItem(QTreeWidgetItem *pDataItem,QTreeWidgetItem *pNoIte
QIcon icon(":/images/images/imgTreeIcon/remove6.png");
pNewItem->setIcon(0, icon);
pNewItem->setData(0,FILE_ROLE,0);
pSizeItem->addChild(pNewItem);
pTimeItem->addChild(pNewItem);
}else{
QIcon icon(":/images/images/imgTreeIcon/remove2.png");
pNewItem->setIcon(0, icon);
@ -696,16 +701,17 @@ void MainWidget::addChildItem(QTreeWidgetItem *pDataItem,QTreeWidgetItem *pNoIte
}
}
else if (sfileName.contains("DELTA_EU") || sfileName.contains("DELTA_SPPEED"))
else if (sfileName.contains("DELTA_EU") || sfileName.contains("DELTA_SPEED"))
{
datpath = QCoreApplication::applicationDirPath() + "\\Dat\\" + strNo + "\\" + "change" + "\\";
filename = datpath + sfileName;
QFileInfo file(filename);
qDebug() << filename << endl;
if(file.exists()){
QIcon icon(":/images/images/imgTreeIcon/remove6.png");
pNewItem->setIcon(0, icon);
pNewItem->setData(0,FILE_ROLE,0);
pSizeItem->addChild(pNewItem);
pChangeItem->addChild(pNewItem);
}else{
QIcon icon(":/images/images/imgTreeIcon/remove2.png");
pNewItem->setIcon(0, icon);
@ -1028,7 +1034,7 @@ void MainWidget::OutPDF(QStringList strResult,QString filePath)
break;
case FormType::FrequencyDomainPlot:
pPdfPainter->setPen(QColor(0,0,0));
pPdfPainter->drawText(iLeft+290 + i * 610,iTop+600,"");
pPdfPainter->drawText(iLeft+290 + i * 610,iTop+600,"");
break;
case FormType::EnvChartPlot:
pPdfPainter->setPen(QColor(0,0,0));
@ -1162,7 +1168,8 @@ void MainWidget::ItemCheckStateSlot(QString strID, bool bChecked)
if(pChild->GetFormType() == FrequencyDomainPlot || pChild->GetFormType() == TimeDomainPlot
|| pChild->GetFormType() == EnvChartPlot || pChild->GetFormType() == SpecChartPlot
|| pChild->GetFormType() == TrendChartPlot || pChild->GetFormType() == WaterFallPlot)
|| pChild->GetFormType() == TrendChartPlot || pChild->GetFormType() == WaterFallPlot
|| pChild->GetFormType() == TimeWavePlot)
{//频域图,时域图,包络图,频谱图
QString strChannelID = strID;
QMap<QString,QVector<WAVE_DATA>>::Iterator iter = mapWaveData.begin();
@ -1217,23 +1224,27 @@ void MainWidget::ItemCheckStateSlot(QString strID, bool bChecked)
QMap<QString,QVector<WAVE_DATA>>::Iterator iter = mapWaveData.begin();
for (; iter != mapWaveData.end(); ++iter){
if((iter.key() == strChannelID)){
qDebug() << strChannelID << endl;
pChild->mapBodeData.insert(strID,iter.value());
qDebug() << pChild->mapBodeData.size() << endl;
if(pChild->mapBodeData.size() < 2){
QString ChannelID = iter.value().at(0).speedRefChannelId;
qDebug() << "speedRefChannelId" <<ChannelID << endl;
if(ChannelID == "NONE" || ChannelID == ""){
MyMsgBox(QMessageBox::Warning,"警告","当前文件中没有绑定转速通道,请手动选择另一个通道");
//return;
//MyMsgBox(QMessageBox::Warning,"警告","当前文件中没有绑定转速通道,请手动选择另一个通道");
return;
}else{
pChild->mapBodeData.insert(strID,mapWaveData[ChannelID]);
pChild->AddBodeSeries(strChannelID, iter.value(),mapWaveData[ChannelID]);
return;
}
}else{
qDebug() << 2 << strChannelID << endl;
QVector<WAVE_DATA> waveSpeedData; //转速
QVector<WAVE_DATA> waveVibrateData; //加速度
QMap<QString,QVector<WAVE_DATA>>::Iterator iter = pChild->mapBodeData.begin();
for (;iter != pChild->mapBodeData.end() ; iter++) {
qDebug() << iter.value()[0].sensorType << endl;
if(iter.value()[0].sensorType != "ACCELEROMETER" && iter.value()[0].sensorType != "TACHOMETER"){
MyMsgBox(QMessageBox::Warning,"警告","请选择转速和振动通道进行伯德图分析");
return;
@ -1257,7 +1268,7 @@ void MainWidget::ItemCheckStateSlot(QString strID, bool bChecked)
QString ChannelID = iter.value().at(0).pairChannelID;
QString ChannelType = iter.value().at(0).sensorType;
if((ChannelType != "PROXIMETER") /*&& (ChannelID == "NONE" || ChannelID == "")*/){
MyMsgBox(QMessageBox::Warning,"警告","请选择径向位移通道");
//MyMsgBox(QMessageBox::Warning,"警告","请选择径向位移通道");
return;
}
pChild->AddShaftCenterlineSeries(strChannelID, iter.value(),mapWaveData[ChannelID]);
@ -1276,7 +1287,7 @@ void MainWidget::ItemCheckStateSlot(QString strID, bool bChecked)
if(strChannelType != "PROXIMETER")
return;
if(speedChannelID == "NONE" || speedChannelID == ""){
MyMsgBox(QMessageBox::Warning,"警告","当前文件中没有转速通道数据");
//MyMsgBox(QMessageBox::Warning,"警告","当前文件中没有转速通道数据");
return;
}
@ -1330,7 +1341,11 @@ void MainWidget::TrendChartPlotSlot()
MyMsgBox(QMessageBox::Warning,"警告","请先打开数据文件!");
return;
}
ChildForm *pChild = new ChildForm(FormType::TrendChartPlot,tr("趋势图"),&m_DeviceInfo,this);
if( ui->tabWidget->count() == 10){
MyMsgBox(QMessageBox::Warning,"警告","最大支持打开10张图谱");
return;
}
ChildForm *pChild = new ChildForm(FormType::TrendChartPlot,tr("趋势图"),&m_DeviceInfo,m_iCurCount-1,this);
pChild->setCloseBtnVisible(true);
pChild->hideTopWgt();
pChild->SetName(tr("趋势图"));
@ -1379,7 +1394,12 @@ void MainWidget::TimeDomainPlotSlot()
MyMsgBox(QMessageBox::Warning,"警告","请先打开数据文件!");
return;
}
ChildForm *pChild = new ChildForm(FormType::TimeDomainPlot,tr("时域图"),&m_DeviceInfo,this);
if( ui->tabWidget->count() == 10){
MyMsgBox(QMessageBox::Warning,"警告","最大支持打开10张图谱");
return;
}
ChildForm *pChild = new ChildForm(FormType::TimeDomainPlot,tr("时域图"),&m_DeviceInfo,m_iCurCount-1,this);
pChild->setCloseBtnVisible(true);
pChild->hideTopWgt();
@ -1430,7 +1450,11 @@ void MainWidget::FrequencyDomainPlotSlot()
MyMsgBox(QMessageBox::Warning,"警告","请先打开数据文件!");
return;
}
ChildForm *pChild = new ChildForm(FormType::FrequencyDomainPlot,tr("频域图"),&m_DeviceInfo,this);
if( ui->tabWidget->count() == 10){
MyMsgBox(QMessageBox::Warning,"警告","最大支持打开10张图谱");
return;
}
ChildForm *pChild = new ChildForm(FormType::FrequencyDomainPlot,tr("频域图"),&m_DeviceInfo,m_iCurCount-1,this);
pChild->setCloseBtnVisible(true);
pChild->hideTopWgt();
pChild->SetName(tr("频域图"));
@ -1478,7 +1502,11 @@ void MainWidget::EnvelopeAnalysisPlotSlot()
MyMsgBox(QMessageBox::Warning,"警告","请先打开数据文件!");
return;
}
ChildForm *pChild = new ChildForm(FormType::EnvChartPlot,tr("包络图"),&m_DeviceInfo,this);
if( ui->tabWidget->count() == 10){
MyMsgBox(QMessageBox::Warning,"警告","最大支持打开10张图谱");
return;
}
ChildForm *pChild = new ChildForm(FormType::EnvChartPlot,tr("包络图"),&m_DeviceInfo,m_iCurCount-1,this);
pChild->setCloseBtnVisible(true);
pChild->hideTopWgt();
pChild->SetName(tr("包络图"));
@ -1526,7 +1554,11 @@ void MainWidget::WaterFallPlotSlot()
MyMsgBox(QMessageBox::Warning,"警告","请先打开数据文件!");
return;
}
ChildForm *pChild = new ChildForm(FormType::WaterFallPlot,tr("瀑布图"),&m_DeviceInfo,this);
if( ui->tabWidget->count() == 10){
MyMsgBox(QMessageBox::Warning,"警告","最大支持打开10张图谱");
return;
}
ChildForm *pChild = new ChildForm(FormType::WaterFallPlot,tr("瀑布图"),&m_DeviceInfo,m_iCurCount-1,this);
pChild->setCloseBtnVisible(true);
pChild->hideTopWgt();
pChild->SetName(tr("瀑布图"));
@ -1583,7 +1615,11 @@ void MainWidget::BodePlotSlot()
MyMsgBox(QMessageBox::Warning,"警告","请先打开数据文件!");
return;
}
ChildForm *pChild = new ChildForm(FormType::BodePlot,tr("Bode"),&m_DeviceInfo,this);
if( ui->tabWidget->count() == 10){
MyMsgBox(QMessageBox::Warning,"警告","最大支持打开10张图谱");
return;
}
ChildForm *pChild = new ChildForm(FormType::BodePlot,tr("伯德图"),&m_DeviceInfo,m_iCurCount-1,this);
pChild->setCloseBtnVisible(true);
pChild->hideTopWgt();
pChild->SetName(tr("伯德图"));
@ -1629,7 +1665,11 @@ void MainWidget::OrbitPlotSlot()
MyMsgBox(QMessageBox::Warning,"警告","请先打开数据文件!");
return;
}
ChildForm *pChild = new ChildForm(FormType::OrbitPlot,tr("轴心轨迹图"),&m_DeviceInfo,this);
if( ui->tabWidget->count() == 10){
MyMsgBox(QMessageBox::Warning,"警告","最大支持打开10张图谱");
return;
}
ChildForm *pChild = new ChildForm(FormType::OrbitPlot,tr("轴心轨迹图"),&m_DeviceInfo,m_iCurCount-1,this);
pChild->setCloseBtnVisible(true);
pChild->hideTopWgt();
pChild->SetName(tr("轴心轨迹图"));
@ -1677,7 +1717,11 @@ void MainWidget::ShaftCenterlinePlotSlot()
MyMsgBox(QMessageBox::Warning,"警告","请先打开数据文件!");
return;
}
ChildForm *pChild = new ChildForm(FormType::ShaftCenterline,tr("轴心位置图"),&m_DeviceInfo,this);
if( ui->tabWidget->count() == 10){
MyMsgBox(QMessageBox::Warning,"警告","最大支持打开10张图谱");
return;
}
ChildForm *pChild = new ChildForm(FormType::ShaftCenterline,tr("轴心位置图"),&m_DeviceInfo,m_iCurCount-1,this);
pChild->setCloseBtnVisible(true);
pChild->hideTopWgt();
pChild->SetName(tr("轴心位置图"));
@ -1721,7 +1765,15 @@ void MainWidget::ShaftCenterlinePlotSlot()
}
void MainWidget::PolarplotSlot()
{
ChildForm *pChild = new ChildForm(FormType::PolarPlot,tr("极坐标"),&m_DeviceInfo,this);
if(mapWaveData.size() < 1){
MyMsgBox(QMessageBox::Warning,"警告","请先打开数据文件!");
return;
}
if( ui->tabWidget->count() == 10){
MyMsgBox(QMessageBox::Warning,"警告","最大支持打开10张图谱");
return;
}
ChildForm *pChild = new ChildForm(FormType::PolarPlot,tr("极坐标"),&m_DeviceInfo,m_iCurCount-1,this);
pChild->setCloseBtnVisible(true);
pChild->hideTopWgt();
pChild->SetName(tr("极坐标"));
@ -1763,6 +1815,58 @@ void MainWidget::PolarplotSlot()
ui->tabWidget->setCurrentWidget(pChild);
}
void MainWidget::TimeWave()
{
if(mapWaveData.size() < 1){
MyMsgBox(QMessageBox::Warning,"警告","请先打开数据文件!");
return;
}
if( ui->tabWidget->count() == 10){
MyMsgBox(QMessageBox::Warning,"警告","最大支持打开10张图谱");
return;
}
ChildForm *pChild = new ChildForm(FormType::TimeWavePlot,tr("时域长波形"),&m_DeviceInfo,m_iCurCount-1,this);
pChild->setCloseBtnVisible(true);
pChild->hideTopWgt();
pChild->SetName(tr("时域长波形"));
pChild->SetFormType(FormType::TimeWavePlot);
QIcon icon(":/images/images/imgDatamodel/wave.png");
ui->tabWidget->addTab(pChild, icon, pChild->GetName());
//pChild->AddPolarPlotSeries();
QPushButton *pCustomButton = new QPushButton();
pCustomButton->setFixedSize(14, 14);
pCustomButton->setStyleSheet(" QPushButton { border-image:url(:/images/images/imgDatamodel/tabclose.png) 5; }\
QPushButton:hover { border-image:url(:/images/images/imgDatamodel/tabclose-h.png) 5; }\
QPushButton:pressed {border-image:url(:/images/images/imgDatamodel/tabclose-p.png) 5; }");
((QTabBar*)(ui->tabWidget->tabBar()))->setTabButton(ui->tabWidget->indexOf(pChild),QTabBar::RightSide,pCustomButton);
connect(pCustomButton, SIGNAL(clicked()), this, SLOT(TabBarCloseSlot()));
m_mapTabBtnToForm[pCustomButton] = pChild;
connect(pChild, SIGNAL(OutSig()), this, SLOT(OutSlot()));
connect(pChild, SIGNAL(ReturnSig()), this, SLOT(ReturnSlot()));
connect(pChild, SIGNAL(ItemCheckStateSignal(QString, bool)), this, SLOT(ItemCheckStateSlot(QString, bool)));
// connect(pChild, &ChildForm::sigRealTimeData, this, &MainWidget::slotRealTimeData);
m_vecChildForm.push_back(pChild);
QStringList strIDList,strChannleType,strChannleNameList;
// QVector<WAVE_DATA>::Iterator iter = m_vecPushData.begin();
QMap<QString,QVector<WAVE_DATA>>::Iterator iter = mapWaveData.begin();
for (; iter != mapWaveData.end(); iter ++)
{
if(!strIDList.contains(iter.key()))
strIDList.push_back(iter.key());
strChannleType.push_back(iter.value()[0].sensorType);
strChannleNameList.push_back(iter.value()[0].channelName);
}
if(mapWaveData.size() > 8)
pChild->SetDataIDs(strIDList, tr("Data Watch "),strChannleType,strChannleNameList);
else
pChild->SetDataIDs(strIDList, tr("Data Watch "),strChannleType,strChannleNameList);
ui->tabWidget->setCurrentWidget(pChild);
}
void MainWidget::View3D()
{
/* Child3DFrom *pChild = new Child3DFrom(this);
@ -1776,7 +1880,7 @@ void MainWidget::Dat2Csv()
MyMsgBox(QMessageBox::Warning,"警告","请先打开数据文件!");
return;
}
QString dirpath = QFileDialog::getExistingDirectory(this, QStringLiteral("选择目录"), "./", QFileDialog::ShowDirsOnly);
QString dirpath = QFileDialog::getExistingDirectory(this, QStringLiteral("请选择保存CSV文件路径"), "./", QFileDialog::ShowDirsOnly);
if(dirpath.isEmpty()) return;
if(mapWaveData.size() < 1){
@ -1816,7 +1920,8 @@ void MainWidget::Dat2Csv()
}
QDateTime time = QDateTime::fromTime_t(m_strCollectTime.toUInt());
QString DevicemCollectTime = time.toString("yyyy-MM-dd_hhmmss");
QString filename = QString(dirName + "%1-%2-%3.csv").arg(iter.key()).arg(iter.value().at(0).sensorType).arg(DevicemCollectTime);
QString filename = QString(dirName + "%1-%2-%3-%4.csv").arg(iter.key()).arg(iter.value().at(0).sensorType)\
.arg(iter.value().at(0).SamleRate).arg(DevicemCollectTime);
QFile file(filename);
qDebug()<< "filename = "<<filename << endl;
if (!file.open(QIODevice::WriteOnly))
@ -2111,6 +2216,7 @@ void MainWidget::ReadDatData(QString strPath,QString strFileName,QString strIP)
WAVE_INFO waveInfo;
channelEnabled[i] = array.at(i)["isEnable"].toInt();
channelwork[i] = array.at(i)["isWork"].toInt();
//qDebug() << channelEnabled[i] << channelwork[i] << array.at(i)["channelId"].toString() << endl;
if(channelEnabled[i] && channelwork[i]){
waveInfo.channelId = array.at(i)["channelId"].toString();
waveInfo.channelType = array.at(i)["sensorType"].toString();
@ -2134,10 +2240,11 @@ void MainWidget::ReadDatData(QString strPath,QString strFileName,QString strIP)
waveInfo.iKeyCount = array.at(i)["tachTriggerPerRev"].toInt();
waveInfo.iTriggerValue = array.at(i)["tachTriggerVoltageLevel"].toDouble();
waveInfo.iHysteresis = array.at(i)["tachTriggerHysteresis"].toDouble();
qDebug() <<waveInfo.channelId<< "iKeyCount" << waveInfo.iKeyCount << "iTriggerValue" << waveInfo.iTriggerValue << "iHysteresis" << waveInfo.iHysteresis << endl;
m_vecWaveInfo.push_back(waveInfo);
channels ++ ;
qDebug() << waveInfo.sensorGapVoltage << waveInfo.sensorSensitivity << endl;
qDebug() << waveInfo.channelId << waveInfo.channelType <<waveInfo.channelName << waveInfo.pairChannelID << waveInfo.sensorEngineeringUnit << waveInfo.speedRefChannelId<<endl;
qDebug() << waveInfo.channelId << waveInfo.channelType <<waveInfo.channelName << waveInfo.pairChannelID << waveInfo.sensorEngineeringUnit << waveInfo.speedRefChannelId << waveInfo.iTriggerValue<<endl;
}
}
}
@ -2281,7 +2388,7 @@ void MainWidget::ReadDatData(QString strPath,QString strFileName,QString strIP)
}
if(iter->sensorType == "TACHOMETER"){
wave.TimeStamp = m_WaveChnData[i].TimeStamp;
qDebug()<< "iCount" <<iCount<<endl;
//qDebug()<< "iCount" <<iCount<<endl;
ii ++;
}
@ -2347,19 +2454,18 @@ void MainWidget::ReadDatData(QString strPath,QString strFileName,QString strIP)
wave.linColor = Qt::darkYellow ;
break;
case 13:
wave.linColor = Qt::gray ;
wave.linColor = QColor(153, 51, 250);
break;
case 14:
wave.linColor = QColor(255, 218, 185) ;
break;
case 15:
wave.linColor = QColor(255, 20, 147) ;
wave.linColor = QColor(0,199,140) ;
break;
default:
break;
}
m_vecPushData1.push_back(wave);
//qDebug()<<"m_vecPushData1"<<m_vecPushData1.size()<<endl;
}
}
linecolor++;
@ -2838,6 +2944,12 @@ void MainWidget::EnableGraph(bool isOpen)
QPushButton:hover { border-image:url(:/images/images/imgDatamodel/M8-h.png) 1; }\
QPushButton:pressed {border-image:url(:/images/images/imgDatamodel/M8-p.png) 1; }\
QPushButton:checked {border-image:url(:/images/images/imgDatamodel/M8-p.png) 1; }");
ui->modelBtn_TimeWave->setEnabled(false);
ui->modelBtn_TimeWave->setStyleSheet(" QPushButton { border-image:url(:/images/images/imgDatamodel/wave-p.png) 1; }\
QPushButton:hover { border-image:url(:/images/images/imgDatamodel/wave-h.png) 1; }\
QPushButton:pressed {border-image:url(:/images/images/imgDatamodel/wave-p.png) 1; }\
QPushButton:checked {border-image:url(:/images/images/imgDatamodel/wave-p.png) 1; }");
}else{
ui->modelBtn_TrendChart->setEnabled(true);
ui->modelBtn_TrendChart->setStyleSheet(" QPushButton { border-image:url(:/images/images/imgDatamodel/M1.png) 1; }\
@ -2898,6 +3010,12 @@ void MainWidget::EnableGraph(bool isOpen)
QPushButton:hover { border-image:url(:/images/images/imgDatamodel/M8-h.png) 1; }\
QPushButton:pressed {border-image:url(:/images/images/imgDatamodel/M8-p.png) 1; }\
QPushButton:checked {border-image:url(:/images/images/imgDatamodel/M8-p.png) 1; }");
ui->modelBtn_TimeWave->setEnabled(true);
ui->modelBtn_TimeWave->setStyleSheet(" QPushButton { border-image:url(:/images/images/imgDatamodel/wave.png) 1; }\
QPushButton:hover { border-image:url(:/images/images/imgDatamodel/wave-h.png) 1; }\
QPushButton:pressed {border-image:url(:/images/images/imgDatamodel/wave-p.png) 1; }\
QPushButton:checked {border-image:url(:/images/images/imgDatamodel/wave-p.png) 1; }");
}
// ui->modelBtn_11->setEnabled(true);

View File

@ -56,6 +56,7 @@ public slots:
void PolarplotSlot();
void BodePlotSlot();
void ShaftCenterlinePlotSlot();
void TimeWave();
void OutSlot();
void ReturnSlot();
void View3D();

View File

@ -79,6 +79,7 @@
#modelBtn_TrendChart{border-image:url(:/images/images/imgDatamodel/M1-p.png);}
#modelBtn_TimeDomain{border-image:url(:/images/images/imgDatamodel/M2-p.png);}
#modelBtn_TimeWave{border-image:url(:/images/images/imgDatamodel/wave-p.png);}
#modelBtn_FrequencyDomain{border-image:url(:/images/images/imgDatamodel/M3-p.png);}
#modelBtn_4{border-image:url(:/images/images/imgDatamodel/M4-p.png);}
#modelBtn_5{border-image:url(:/images/images/imgDatamodel/M5-p.png);}
@ -92,6 +93,7 @@
#modelBtn_TrendChart:hover{border-image:url(:/images/images/imgDatamodel/M1-h.png);}
#modelBtn_TimeDomain:hover{border-image:url(:/images/images/imgDatamodel/M2-h.png);}
#modelBtn_TimeWave:hover{border-image:url(:/images/images/imgDatamodel/wave-h.png);}
#modelBtn_FrequencyDomain:hover{border-image:url(:/images/images/imgDatamodel/M3-h.png);}
#modelBtn_4:hover{border-image:url(:/images/images/imgDatamodel/M4-h.png);}
#modelBtn_5:hover{border-image:url(:/images/images/imgDatamodel/M5-h.png);}
@ -105,6 +107,7 @@
#modelBtn_TrendChart:pressed{border-image:url(:/images/images/imgDatamodel/M1-p.png);}
#modelBtn_TimeDomain:pressed{border-image:url(:/images/images/imgDatamodel/M2-p.png);}
#modelBtn_TimeWave:pressed{border-image:url(:/images/images/imgDatamodel/wave-p.png);}
#modelBtn_FrequencyDomain:pressed{border-image:url(:/images/images/imgDatamodel/M3-p.png);}
#modelBtn_4:pressed{border-image:url(:/images/images/imgDatamodel/M4-p.png);}
#modelBtn_5:pressed{border-image:url(:/images/images/imgDatamodel/M5-p.png);}
@ -289,28 +292,6 @@
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_6">
<property name="minimumSize">
<size>
<width>18</width>
<height>18</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>18</width>
<height>18</height>
</size>
</property>
<property name="toolTip">
<string>退出当前DAT文件</string>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="ReportButton">
<property name="minimumSize">
@ -333,6 +314,28 @@
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_6">
<property name="minimumSize">
<size>
<width>18</width>
<height>18</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>18</width>
<height>18</height>
</size>
</property>
<property name="toolTip">
<string>退出当前DAT文件</string>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="Btn_Setting">
<property name="enabled">
@ -668,6 +671,31 @@
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="modelBtn_TimeWave">
<property name="enabled">
<bool>false</bool>
</property>
<property name="minimumSize">
<size>
<width>36</width>
<height>36</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>36</width>
<height>36</height>
</size>
</property>
<property name="toolTip">
<string>时域长波形</string>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="modelBtn_spec">
<property name="enabled">

View File

@ -25,9 +25,9 @@
<widget class="QLineEdit" name="lineEdit">
<property name="geometry">
<rect>
<x>170</x>
<x>150</x>
<y>50</y>
<width>51</width>
<width>91</width>
<height>31</height>
</rect>
</property>
@ -41,7 +41,7 @@ text-align:center;
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>113</x>
<x>93</x>
<y>50</y>
<width>31</width>
<height>31</height>
@ -54,9 +54,9 @@ text-align:center;
<widget class="QLineEdit" name="lineEdit_2">
<property name="geometry">
<rect>
<x>300</x>
<x>280</x>
<y>50</y>
<width>51</width>
<width>91</width>
<height>31</height>
</rect>
</property>
@ -70,10 +70,10 @@ text-align:center;
<widget class="QLabel" name="label_2">
<property name="geometry">
<rect>
<x>240</x>
<x>250</x>
<y>60</y>
<width>54</width>
<height>12</height>
<width>21</width>
<height>16</height>
</rect>
</property>
<property name="text">
@ -83,9 +83,9 @@ text-align:center;
<widget class="QLineEdit" name="lineEdit_3">
<property name="geometry">
<rect>
<x>170</x>
<x>150</x>
<y>100</y>
<width>51</width>
<width>91</width>
<height>31</height>
</rect>
</property>
@ -99,7 +99,7 @@ text-align:center;
<widget class="QLabel" name="label_3">
<property name="geometry">
<rect>
<x>113</x>
<x>93</x>
<y>100</y>
<width>31</width>
<height>31</height>
@ -112,9 +112,9 @@ text-align:center;
<widget class="QLineEdit" name="lineEdit_4">
<property name="geometry">
<rect>
<x>300</x>
<x>280</x>
<y>100</y>
<width>51</width>
<width>91</width>
<height>31</height>
</rect>
</property>
@ -128,10 +128,10 @@ text-align:center;
<widget class="QLabel" name="label_4">
<property name="geometry">
<rect>
<x>240</x>
<x>250</x>
<y>110</y>
<width>54</width>
<height>12</height>
<width>21</width>
<height>16</height>
</rect>
</property>
<property name="text">

View File

@ -3,7 +3,7 @@
#include "QMessageBox"
#include <qvalidator.h>
SetScalesForm::SetScalesForm(QWidget *parent) :
SetScalesForm::SetScalesForm(QString m_strSacles,QWidget *parent) :
BaseWgt(parent),
ui(new Ui::SetScalesForm)
{
@ -18,6 +18,11 @@ SetScalesForm::SetScalesForm(QWidget *parent) :
ui->lineEdit_2->setValidator(validator);
ui->lineEdit_3->setValidator(validator);
ui->lineEdit_4->setValidator(validator);
QStringList strList = m_strSacles.split(",");
ui->lineEdit->setText(strList[0]);
ui->lineEdit_2->setText(strList[1]);
ui->lineEdit_3->setText(strList[2]);
ui->lineEdit_4->setText(strList[3]);
}
SetScalesForm::~SetScalesForm()

View File

@ -15,7 +15,7 @@ class SetScalesForm : public BaseWgt
Q_OBJECT
public:
explicit SetScalesForm(QWidget *parent = nullptr);
explicit SetScalesForm(QString m_strSacles,QWidget *parent = nullptr);
~SetScalesForm();
private:
Ui::SetScalesForm *ui;

View File

@ -124,8 +124,8 @@ typedef struct{
double sensorSensitivity;
int iTrigger;
int iKeyCount;
int iTriggerValue;
int iHysteresis;
double iTriggerValue;
double iHysteresis;
}WAVE_INFO;
typedef struct tag_DEVICE_INFO{

Binary file not shown.

After

Width:  |  Height:  |  Size: 381 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 384 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 608 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 553 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 614 B

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 689 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 661 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 704 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

View File

@ -175,6 +175,9 @@
<file>images/imgModelAction/realTime-d.png</file>
<file>images/logo1.png</file>
<file>images/loading.gif</file>
<file>images/imgDatamodel/wave.png</file>
<file>images/imgDatamodel/wave-h.png</file>
<file>images/imgDatamodel/wave-p.png</file>
</qresource>
<qresource prefix="/qss">
<file>mainui.css</file>