2023-04-14 19:30:30 +08:00
# include "HistoryAlarm.h"
# include "ui_HistoryAlarm.h"
2023-04-27 19:48:15 +08:00
# include <QListView>
# include "sqlitedb.h"
# include "QMyTableViewBtnDelegate.h"
# include "AlarmDetails.h"
2023-10-19 14:15:31 +08:00
# include "ftpclient.h"
# include "global.h"
2023-04-27 19:48:15 +08:00
2023-04-14 19:30:30 +08:00
CHistoryAlarm : : CHistoryAlarm ( QWidget * parent ) :
QWidget ( parent ) ,
ui ( new Ui : : CHistoryAlarm )
{
ui - > setupUi ( this ) ;
headerStr = QObject : : tr ( " 序号,报警级别,报警内容,报警时间,复归时间,报警详情 " ) ;
model = new QStandardItemModel ( ui - > tableView ) ;
ui - > tableView - > setSelectionBehavior ( QAbstractItemView : : SelectRows ) ; //选中行
QStringList headerList = headerStr . split ( " , " ) ;
model - > setHorizontalHeaderLabels ( headerList ) ;
model - > setColumnCount ( headerList . size ( ) ) ;
ui - > tableView - > setModel ( model ) ;
2023-04-17 17:40:26 +08:00
ui - > tableView - > horizontalHeader ( ) - > setSectionResizeMode ( QHeaderView : : Interactive ) ;
2023-10-19 14:15:31 +08:00
ui - > tableView - > setColumnWidth ( 2 , 500 ) ;
ui - > tableView - > setColumnWidth ( 3 , 200 ) ;
ui - > tableView - > setColumnWidth ( 4 , 200 ) ;
2023-04-14 19:30:30 +08:00
ui - > tableView - > setAlternatingRowColors ( true ) ;
2023-04-27 19:48:15 +08:00
2023-04-14 19:30:30 +08:00
ui - > tableView - > horizontalHeader ( ) - > setSectionResizeMode ( 0 , QHeaderView : : ResizeToContents ) ;
ui - > tableView - > horizontalHeader ( ) - > setSectionResizeMode ( 5 , QHeaderView : : ResizeToContents ) ;
2023-04-27 19:48:15 +08:00
ui - > dateTimeEdit_start - > setCalendarPopup ( true ) ;
ui - > dateTimeEdit_end - > setCalendarPopup ( true ) ;
QDateTime curDateTime = QDateTime : : currentDateTime ( ) ; //通过QDateTime的currentDateTime获得当前的日期时间, 并赋值给curDateTime
2023-10-19 14:15:31 +08:00
ui - > dateTimeEdit_start - > setDateTime ( curDateTime . addDays ( - 7 ) ) ;
2024-03-14 09:35:39 +08:00
ui - > dateTimeEdit_end - > setDateTime ( curDateTime . addSecs ( 300 ) ) ;
2023-04-27 19:48:15 +08:00
ui - > comboBox_channel - > setView ( new QListView ( ) ) ;
connect ( ui - > comboBox_channel , SIGNAL ( currentIndexChanged ( const QString & ) ) , this , SLOT ( on_comboBox_channel_currentTextChanged ( const QString & ) ) ) ;
2023-10-19 14:15:31 +08:00
ui - > comboBox_channel - > addItem ( " 请选择通道... " ) ;
2023-04-27 19:48:15 +08:00
for ( int i = 0 ; i < g_ChannelBaseInfo . size ( ) ; i + + ) {
ui - > comboBox_channel - > insertItem ( i , g_ChannelBaseInfo [ i ] . channelName ) ;
}
2023-04-14 19:30:30 +08:00
2023-10-19 14:15:31 +08:00
ui - > comboBox_channel - > setCurrentText ( " 请选择通道... " ) ;
2023-04-14 19:30:30 +08:00
}
CHistoryAlarm : : ~ CHistoryAlarm ( )
{
delete ui ;
}
2023-04-27 19:48:15 +08:00
void CHistoryAlarm : : on_comboBox_channel_currentTextChanged ( const QString & strChannelName )
{
int i = 0 ;
for ( i = 0 ; i < g_ChannelBaseInfo . size ( ) ; i + + ) {
if ( strChannelName = = g_ChannelBaseInfo [ i ] . channelName ) {
m_strChannelID = g_ChannelBaseInfo [ i ] . channelID ;
break ;
}
}
}
void CHistoryAlarm : : createRowItem ( int Row , QVariantList RowItem )
{
model - > setRowCount ( Row + 1 ) ;
for ( int j = 0 ; j < RowItem . size ( ) ; + + j )
{
model - > setData ( model - > index ( Row , j , QModelIndex ( ) ) , RowItem . at ( j ) ) ;
}
}
void CHistoryAlarm : : on_pushButton_search_clicked ( )
{
model - > removeRows ( 0 , model - > rowCount ( ) ) ;
QDateTime dateTimeStart = ui - > dateTimeEdit_start - > dateTime ( ) ;
QDateTime dateTimeEnd = ui - > dateTimeEdit_end - > dateTime ( ) ;
int timestampStart = dateTimeStart . toTime_t ( ) ;
int timestampEnd = dateTimeEnd . toTime_t ( ) ;
2023-10-19 14:15:31 +08:00
QString strTableName = " t_AlarmStatusInfo " , strSql ;
if ( ui - > comboBox_channel - > currentText ( ) = = " 请选择通道... " ) {
strSql = QString ( " timestamp > %1 and timestamp < %2 order by timestamp " ) . arg ( timestampStart ) . arg ( timestampEnd ) ;
}
else {
strSql = QString ( " channelId = '%1' and timestamp > %2 and timestamp < %3 order by timestamp desc " ) . arg ( m_strChannelID ) . arg ( timestampStart ) . arg ( timestampEnd ) ;
}
m_vecTriggerAlarmStatusInfo = g_SqliteDB - > GetTriggerAlarmStatusInfo ( strTableName , strSql ) ;
2023-04-27 19:48:15 +08:00
2023-10-19 14:15:31 +08:00
if ( m_vecTriggerAlarmStatusInfo . size ( ) > 0 ) {
for ( int i = 0 ; i < m_vecTriggerAlarmStatusInfo . size ( ) ; i + + ) {
2023-04-27 19:48:15 +08:00
QVariantList strRowItem ;
2023-10-19 14:15:31 +08:00
QString TStr = QDateTime : : fromSecsSinceEpoch ( m_vecTriggerAlarmStatusInfo [ i ] . timestamp ) . toString ( " yyyy-MM-dd hh:mm:ss " ) ;
QString resetTime = " " ;
if ( m_vecTriggerAlarmStatusInfo [ i ] . resetTimestamp ! = 0 )
resetTime = QDateTime : : fromSecsSinceEpoch ( m_vecTriggerAlarmStatusInfo [ i ] . resetTimestamp ) . toString ( " yyyy-MM-dd hh:mm:ss " ) ;
strRowItem < < i + 1 < < m_vecTriggerAlarmStatusInfo [ i ] . triggerLevel < < m_vecTriggerAlarmStatusInfo [ i ] . triggerEventName < < TStr < < resetTime ;
2023-04-27 19:48:15 +08:00
createRowItem ( i , strRowItem ) ;
}
QMyTableViewBtnDelegate * m_btnDelegate = new QMyTableViewBtnDelegate ( QStringList ( ) < < " 详情 " , this ) ;
ui - > tableView - > setItemDelegateForColumn ( 5 , m_btnDelegate ) ;
connect ( m_btnDelegate , SIGNAL ( editData ( const QModelIndex & ) ) , this , SLOT ( Details ( const QModelIndex & ) ) ) ;
} else {
QMessageBox : : information ( this , " 提示 " , QString ( " 未查询到数据! " ) ) ;
}
}
2023-10-19 14:15:31 +08:00
void CHistoryAlarm : : OpenDatFile ( QString & strFileName )
{
QProgressDialog * progressDialog = new QProgressDialog ( this ) ;
progressDialog - > setWindowFlags ( Qt : : CustomizeWindowHint | Qt : : FramelessWindowHint ) ;
progressDialog - > setWindowModality ( Qt : : WindowModal ) ;
progressDialog - > setWindowTitle ( tr ( " Please Wait " ) ) ;
progressDialog - > setLabelText ( tr ( " 读取中... " ) ) ;
progressDialog - > setCancelButton ( 0 ) ;
progressDialog - > show ( ) ;
QTime startTime = QTime : : currentTime ( ) ;
m_vecGroupdata . clear ( ) ;
m_vecWaveInfo . clear ( ) ;
QVector < GroupData > ( ) . swap ( m_vecGroupdata ) ;
QVector < WAVE_INFO > ( ) . swap ( m_vecWaveInfo ) ;
QVector < WAVE_ALLDATA > ( ) . swap ( m_vecAllData ) ;
QMap < QString , QVector < WAVE_DATA > > : : Iterator iter1 = mapWaveData . begin ( ) ;
for ( iter1 = mapWaveData . begin ( ) ; iter1 ! = mapWaveData . end ( ) ; iter1 + + ) {
QVector < WAVE_DATA > ( ) . swap ( iter1 . value ( ) ) ;
mapWaveData . erase ( iter1 ) ;
}
int channelwork [ 64 ] ;
int channelEnabled [ 64 ] ;
int theSize = 0 ; //通道数
//读12字节头文件
int iJsonSize , iChannelsize ;
char equipNo [ 12 ] ; //设备No 12字节
char time [ 10 ] ; //数据起始时间 10字节
QFile file ( strFileName ) ;
if ( ! file . open ( QIODevice : : ReadOnly ) )
{
qDebug ( ) < < " ::MainWidget::ReadDatData() cannot open file for read " ;
return ;
}
file . read ( ( char * ) & iChannelsize , sizeof ( iChannelsize ) ) ;
//qDebug() << "::MainWidget::ReadDatData() Channelsize:" << iChannelsize;
int iCount ; //存储dat文件原始数据秒数
file . read ( ( char * ) & iCount , sizeof ( iCount ) ) ;
//qDebug() << "::MainWidget::ReadDatData() iCount:" << iCount;
file . read ( equipNo , sizeof ( equipNo ) ) ;
QString sEquipNo ( equipNo ) ;
file . read ( time , sizeof ( time ) ) ;
QString CollectTime ( time ) ;
file . read ( ( char * ) & iJsonSize , sizeof ( iJsonSize ) ) ;
//qDebug() << "::MainWidget::ReadDatData() iJsonSize:" << iJsonSize;
//读json串
char * buf0 = ( char * ) malloc ( sizeof ( char ) * iJsonSize ) ;
file . read ( buf0 , iJsonSize ) ;
QJsonParseError parseJsonErr ;
QJsonDocument document = QJsonDocument : : fromJson ( buf0 , & parseJsonErr ) ;
if ( ! ( parseJsonErr . error = = QJsonParseError : : NoError ) )
{
qDebug ( ) < < tr ( " 解析json文件错误! " ) ;
delete progressDialog ;
file . close ( ) ;
return ;
}
int channels = 0 ;
QJsonObject jsonObject = document . object ( ) ;
QString strType = jsonObject [ " DeviceType " ] . toString ( ) ;
if ( jsonObject . contains ( QStringLiteral ( " ChannelSettings " ) ) ) {
QJsonValue arrayValue = jsonObject . value ( QStringLiteral ( " ChannelSettings " ) ) ;
if ( arrayValue . isArray ( ) ) {
QJsonArray array = arrayValue . toArray ( ) ;
theSize = array . size ( ) ;
for ( int i = 0 ; i < array . size ( ) ; i + + ) {
WAVE_INFO waveInfo ;
channelEnabled [ i ] = array . at ( i ) [ " isEnable " ] . toInt ( ) ;
channelwork [ i ] = array . at ( i ) [ " isWork " ] . toInt ( ) ;
QString strchannelType = array . at ( i ) [ " sensorType " ] . toString ( ) ;
if ( channelEnabled [ i ] & & channelwork [ i ] & & strchannelType ! = " DO " & & strchannelType ! = " DI " ) {
waveInfo . channelId = array . at ( i ) [ " channelId " ] . toString ( ) ;
waveInfo . channelType = array . at ( i ) [ " sensorType " ] . toString ( ) ;
waveInfo . channelName = array . at ( i ) [ " channelName " ] . toString ( ) ;
waveInfo . sensorType = array . at ( i ) [ " sensorType " ] . toString ( ) ;
waveInfo . channelSamleRate = array . at ( i ) [ " samplingRate " ] . toInt ( ) ;
waveInfo . pairChannelID = array . at ( i ) [ " pairChannelId " ] . toString ( ) ;
waveInfo . equipmentName = array . at ( i ) [ " equipmentName " ] . toString ( ) ;
waveInfo . sensorEngineeringUnit = array . at ( i ) [ " sensorEngineeringUnit " ] . toString ( ) ;
waveInfo . speedRefChannelId = array . at ( i ) [ " speedRefChannelId " ] . toString ( ) ;
waveInfo . tachAutoTach = array . at ( i ) [ " tachAutoTach " ] . toBool ( ) ;
waveInfo . sensorGapVoltage = array . at ( i ) [ " sensorGapVoltage " ] . toDouble ( ) ;
waveInfo . sensorSensitivity = array . at ( i ) [ " sensorSensitivity " ] . toDouble ( ) ;
QString strtachTriggerEdge = array . at ( i ) [ " tachTriggerEdge " ] . toString ( ) ;
if ( strtachTriggerEdge = = " rising " ) {
waveInfo . iTrigger = 0 ;
} else if ( strtachTriggerEdge = = " falling " ) {
waveInfo . iTrigger = 1 ;
}
waveInfo . iTrigger = 0 ;
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 << waveInfo.iTriggerValue<<endl;
}
}
}
} if ( jsonObject . contains ( QStringLiteral ( " groups " ) ) ) {
QJsonValue arrayValue = jsonObject . value ( QStringLiteral ( " groups " ) ) ;
if ( arrayValue . isArray ( ) ) {
QJsonArray array1 = arrayValue . toArray ( ) ;
theSize = array1 . size ( ) ;
for ( int i = 0 ; i < array1 . size ( ) ; i + + ) {
QString strChannelType = array1 . at ( i ) [ " ChannelType " ] . toString ( ) ;
QString strChannelID = array1 . at ( i ) [ " name " ] . toString ( ) ;
//if(strChannelType == "TACHOMETER")
{
for ( int ii = 0 ; ii < m_vecWaveInfo . size ( ) ; ii + + ) {
if ( strChannelID = = m_vecWaveInfo [ ii ] . channelId ) {
QJsonValue arrayValue = array1 . at ( i ) [ " channels " ] ;
QJsonArray array2 = arrayValue . toArray ( ) ;
for ( int j = 0 ; j < array2 . size ( ) ; j + + ) {
if ( " SpeedProfileSpeed " = = array2 . at ( j ) [ " name " ] . toString ( ) ) {
QJsonArray arrayValue = array2 . at ( j ) [ " data " ] . toArray ( ) ;
for ( int jj = 0 ; jj < arrayValue . size ( ) ; jj + + ) {
m_vecWaveInfo [ ii ] . SpeedProfileSpeed . push_back ( arrayValue [ jj ] . toDouble ( ) ) ;
}
}
if ( " RMSValues " = = array2 . at ( j ) [ " name " ] . toString ( ) ) {
QJsonArray arrayValue = array2 . at ( j ) [ " data " ] . toArray ( ) ;
for ( int jj = 0 ; jj < arrayValue . size ( ) ; jj + + ) {
m_vecWaveInfo [ ii ] . RMSValue . push_back ( arrayValue [ jj ] . toDouble ( ) ) ;
}
}
}
}
}
}
}
}
}
//qDebug()<<"channels" <<channels<<endl;
//循环读出原始数据内容
WAVE_CHNDATA m_WaveChnData [ 15000 ] ;
int Count , waveSize , bufferSiz ;
if ( strType = = " 3500 " )
bufferSiz = 16 ;
else
bufferSiz = 15 ;
char buf [ bufferSiz ] ;
m_vecAllData . clear ( ) ;
//QVector<WAVE_DATA> pData;
int j = 0 ;
int temCount = 0 ;
int flag = - 1 ;
progressDialog - > setRange ( 0 , iCount * channels - 1 ) ;
while ( ! file . atEnd ( ) ) {
file . read ( ( char * ) & Count , sizeof ( Count ) ) ;
//qDebug()<<"Count" << Count << "temCount" <<temCount<< endl;
if ( Count > temCount & & flag = = 0 ) //过滤超出的秒数的数据
break ;
if ( Count = = temCount & & flag = = 0 )
flag = 1 ;
if ( Count < temCount | | flag = = 1 ) { //过滤原始数据中转速多余数据
file . read ( buf , sizeof ( buf ) ) ;
file . read ( ( char * ) & waveSize , sizeof ( waveSize ) ) ;
float f = 0.0 ;
QVector < double > vecSpeed ;
//qDebug()<<"waveSize1" <<waveSize<<endl;
for ( int i = 0 ; i < waveSize ; i + + ) {
file . read ( ( char * ) & f , sizeof ( f ) ) ;
vecSpeed . push_back ( f ) ;
}
for ( int ii = 0 ; ii < 2000 ; ii + + ) {
if ( m_WaveChnData [ ii ] . Second = = Count ) {
m_WaveChnData [ ii ] . TimeStamp = vecSpeed ;
}
}
flag = 0 ;
//qDebug()<<"::MainWidget::ReadDatData()11 wave.channelId" << buf <<" wave.count"<<Count<<" wave.wavedata"<<m_WaveChnData[j].waveData.size()<<"waveSize"<<waveSize << "j"<<j<<endl;;
} else {
file . read ( buf , sizeof ( buf ) ) ;
file . read ( ( char * ) & waveSize , sizeof ( waveSize ) ) ;
float f = 0.0 ;
WAVE_ALLDATA waveAll ;
if ( waveSize < 0 | | waveSize > 131072 ) {
//qDebug() << "waveSize2" << waveSize << endl;
delete progressDialog ;
file . close ( ) ;
return ;
}
for ( int i = 0 ; i < waveSize ; i + + ) {
file . read ( ( char * ) & f , sizeof ( f ) ) ;
m_WaveChnData [ j ] . channelId = buf ;
m_WaveChnData [ j ] . waveData . push_back ( ( double ) f ) ;
m_WaveChnData [ j ] . Second = Count ;
}
temCount = Count ;
//qDebug()<<"::MainWidget::ReadDatData() wave.channelId" << m_WaveChnData[j].channelId<<" wave.count"<<Count<<" wave.wavedata"<<m_WaveChnData[j].waveData.size()<<"waveSize"<<waveSize << "j"<<j<<endl;;
}
progressDialog - > setValue ( j ) ;
if ( progressDialog - > wasCanceled ( ) )
{
delete progressDialog ;
file . close ( ) ;
return ;
}
j + + ;
}
/*if(temCount != iCount){
MyMsgBox ( QMessageBox : : Warning , " 警告 " , " Dat文件采集秒数与实际读取秒数不一致 " ) ;
iCount = temCount ;
} */
//qDebug()<<m_vecAllData.size()<<m_vecAllData.capacity() << "iCount" <<iCount << "m_vecWaveInfo" << m_vecWaveInfo.size() <<endl;
QVector < WAVE_INFO > : : iterator iter = m_vecWaveInfo . begin ( ) ;
int linecolor = 0 ;
for ( ; iter ! = m_vecWaveInfo . end ( ) ; iter + + ) {
WAVE_DATA wave ;
int ii = 0 ;
QVector < WAVE_DATA > m_vecPushData1 ;
for ( int i = 0 ; i < j ; i + + ) {
//qDebug() << "i" << iter->channelId.left(bufferSiz) << "j " << m_WaveChnData[i].channelId.left(bufferSiz) <<endl;
if ( iter - > channelId . left ( bufferSiz ) = = m_WaveChnData [ i ] . channelId . left ( bufferSiz ) ) {
wave . waveData = m_WaveChnData [ i ] . waveData ;
double sum = 0.0 ;
if ( iter - > sensorType = = " ACCELEROMETER " | | iter - > sensorType = = " MICROPHONE " | |
iter - > sensorType = = " PROXIMETER " | | iter - > sensorType = = " VELOCITY " | |
iter - > sensorType = = " TACHOMETER " | | iter - > sensorType = = " THRUST " | |
iter - > sensorType = = " FAST_VOLTAGE " ) {
sum = std : : accumulate ( std : : begin ( wave . waveData ) , std : : end ( wave . waveData ) , 0.0 ) ;
double size = m_WaveChnData [ i ] . waveData . size ( ) ;
wave . mean = sum / size ;
} else {
sum = 0.0 ;
}
if ( iter - > sensorType = = " TACHOMETER " ) {
wave . TimeStamp = m_WaveChnData [ i ] . TimeStamp ;
//qDebug()<< "iCount" <<iCount<<endl;
ii + + ;
}
wave . SpeedProfileSpeed = iter - > SpeedProfileSpeed ;
wave . wavesize = wave . waveData . size ( ) ;
wave . SamleRate = iter - > channelSamleRate ;
wave . sensorType = iter - > sensorType ;
wave . channelId = iter - > channelId ;
wave . channelNo = theSize ;
wave . Time = iCount ;
wave . channelName = iter - > channelName ;
wave . pairChannelID = iter - > pairChannelID ;
wave . sensorEngineeringUnit = iter - > sensorEngineeringUnit ;
wave . speedRefChannelId = iter - > speedRefChannelId ;
wave . RMSValue = iter - > RMSValue ;
wave . iTrigger = iter - > iTrigger ;
wave . iKeyCount = iter - > iKeyCount ;
wave . iTriggerValue = iter - > iTriggerValue ;
wave . iHysteresis = iter - > iHysteresis ;
wave . tachAutoTach = iter - > tachAutoTach ;
wave . sensorGapVoltage = iter - > sensorGapVoltage ;
wave . sensorSensitivity = iter - > sensorSensitivity ;
switch ( linecolor ) {
case 0 :
wave . linColor = Qt : : green ;
break ;
case 1 :
wave . linColor = QColor ( 30 , 144 , 255 ) ;
break ;
case 2 :
wave . linColor = QColor ( 255 , 182 , 193 ) ;
break ;
case 3 :
wave . linColor = Qt : : cyan ;
break ;
case 4 :
wave . linColor = Qt : : magenta ;
break ;
case 5 :
wave . linColor = Qt : : yellow ;
break ;
case 6 :
wave . linColor = QColor ( 255 , 69 , 0 ) ;
break ;
case 7 :
wave . linColor = QColor ( 0 , 255 , 127 ) ;
break ;
case 8 :
wave . linColor = QColor ( 255 , 140 , 0 ) ;
break ;
case 9 :
wave . linColor = QColor ( 0 , 191 , 255 ) ;
break ;
case 10 :
wave . linColor = Qt : : darkMagenta ;
break ;
case 11 :
wave . linColor = Qt : : lightGray ;
break ;
case 12 :
wave . linColor = Qt : : darkYellow ;
break ;
case 13 :
wave . linColor = QColor ( 153 , 51 , 250 ) ;
break ;
case 14 :
wave . linColor = QColor ( 255 , 218 , 185 ) ;
break ;
case 15 :
wave . linColor = QColor ( 0 , 199 , 140 ) ;
break ;
default :
break ;
}
m_vecPushData1 . push_back ( wave ) ;
}
}
linecolor + + ;
if ( linecolor > 15 ) {
linecolor = 0 ;
}
mapWaveData . insert ( iter - > channelId , m_vecPushData1 ) ;
}
file . close ( ) ;
free ( buf0 ) ;
QTime stopTime = QTime : : currentTime ( ) ;
// qDebug() << "Time: " << startTime.msecsTo(stopTime) << "ms" <<endl;
delete progressDialog ;
DateViewdialog = new CDataGraphView ( ) ;
connect ( DateViewdialog , SIGNAL ( ItemCheckStateSignal ( QString , bool ) ) , this , SLOT ( ItemCheckStateSlot ( QString , bool ) ) ) ;
DateViewdialog - > setWindowModality ( Qt : : ApplicationModal ) ;
DateViewdialog - > setAttribute ( Qt : : WA_DeleteOnClose ) ;
DateViewdialog - > show ( ) ;
QStringList strIDList , strChannleType , strChannleNameList ;
QMap < QString , QVector < WAVE_DATA > > : : Iterator iter2 = mapWaveData . begin ( ) ;
for ( ; iter2 ! = mapWaveData . end ( ) ; iter2 + + )
{
if ( ! strIDList . contains ( iter2 . key ( ) ) )
strIDList . push_back ( iter2 . key ( ) ) ;
strChannleType . push_back ( iter2 . value ( ) [ 0 ] . sensorType ) ;
strChannleNameList . push_back ( iter2 . value ( ) [ 0 ] . channelName ) ;
}
DateViewdialog - > SetDataIDs ( strIDList , tr ( " Data Watch " ) , strChannleType , strChannleNameList ) ;
}
void CHistoryAlarm : : downloadProcess_Slot ( qint64 byteSend , qint64 byteTotal )
{
qDebug ( ) < < byteSend < < byteTotal < < endl ;
downloadProgressDialog - > setRange ( 0 , byteTotal ) ;
downloadProgressDialog - > setValue ( byteSend ) ;
if ( byteSend = = byteTotal ) {
disconnect ( g_FtpClient , SIGNAL ( sigDownloadProcess ( qint64 , qint64 ) ) , this , SLOT ( downloadProcess_Slot ( qint64 , qint64 ) ) ) ;
OpenDatFile ( g_LocalFile ) ;
}
}
2023-04-27 19:48:15 +08:00
void CHistoryAlarm : : Details ( const QModelIndex & index )
{
int row = index . row ( ) ;
2023-10-19 14:15:31 +08:00
QString strCol = " triggeredFileName " ;
QString strTimeStamp = QString ( " %1 " ) . arg ( m_vecTriggerAlarmStatusInfo [ row ] . timestamp ) ;
qDebug ( ) < < " TriggerAlarm timestamp " < < strTimeStamp < < endl ;
QString strTableName = QString ( " t_TriggerEvent ORDER BY ABS(triggeredTime - %1) LIMIT 1 " ) . arg ( m_vecTriggerAlarmStatusInfo [ row ] . timestamp ) ;
QString strFileName = g_SqliteDB - > GetSingelLine ( strTableName , strCol ) ;
strFileName = strFileName . left ( strFileName . size ( ) - 1 ) ;
QStringList strList = strFileName . split ( " / " ) ;
QString strPath = QCoreApplication : : applicationDirPath ( ) + " \\ dat \\ " + strList [ 5 ] ;
customLogMessageHandler ( QtDebugMsg , " HistoryAlarm: " + strPath ) ;
QFile file ( strPath ) ;
g_LocalFile = strPath ;
if ( file . exists ( ) ) {
OpenDatFile ( strPath ) ;
} else {
downloadProgressDialog = new QProgressDialog ( this ) ;
downloadProgressDialog - > setWindowFlags ( Qt : : CustomizeWindowHint | Qt : : FramelessWindowHint ) ;
downloadProgressDialog - > setWindowModality ( Qt : : WindowModal ) ;
downloadProgressDialog - > setWindowTitle ( tr ( " Please Wait " ) ) ;
downloadProgressDialog - > setLabelText ( tr ( " 下载中... " ) ) ;
//downloadProgressDialog->setCancelButton(0);
downloadProgressDialog - > show ( ) ;
qDebug ( ) < < " file2 " < < endl ;
connect ( g_FtpClient , SIGNAL ( sigDownloadProcess ( qint64 , qint64 ) ) , this , SLOT ( downloadProcess_Slot ( qint64 , qint64 ) ) ) ;
//connect(g_FtpClient,SIGNAL(sigDownloadStatus()),this,SLOT(DownloadStatus_Slot()));
QString str = QString ( " ftp://%1/ " ) . arg ( IP ) ;
g_FtpClient - > SetServerInfo ( str ) ;
g_FtpClient - > SetUserInfo ( " root " , " @#cidw!@123456 " ) ;
g_FtpClient - > DownLoad ( strFileName , strPath ) ;
}
}
void CHistoryAlarm : : ItemCheckStateSlot ( QString strID , bool bChecked )
{
DateViewdialog - > ViewData ( strID , mapWaveData [ strID ] ) ;
2023-04-27 19:48:15 +08:00
}