87 lines
2.0 KiB
C++
87 lines
2.0 KiB
C++
#include "AlertMessage.h"
|
||
#include <QFile>
|
||
|
||
using namespace AlertData;
|
||
|
||
AlertMessage::AlertMessage()
|
||
{
|
||
}
|
||
|
||
AlertMessage::~AlertMessage()
|
||
{
|
||
}
|
||
|
||
bool AlertMessage::IsValid()
|
||
{
|
||
return bIsValid;
|
||
}
|
||
|
||
const AlertsInfo& AlertMessage::GetAlertsInfo()
|
||
{
|
||
return alerts_info;
|
||
}
|
||
|
||
void AlertMessage::ClearData()
|
||
{
|
||
bIsValid = false;
|
||
|
||
alerts_info.station_code.clear();
|
||
alerts_info.alert_type.clear();
|
||
alerts_info.date.clear();
|
||
alerts_info.time.clear();
|
||
alerts_info.desc.clear();
|
||
|
||
AbstractSpectrumDataMessage::ClearData();
|
||
}
|
||
|
||
bool AlertMessage::AnalyseMessgeBody(QTextStream &content)
|
||
{
|
||
const MessageInfo& msg = AbstractSpectrumDataMessage::GetMessageInfo();
|
||
if ( QLatin1String("ALERT_FLOW") != msg.data_type &&
|
||
QLatin1String("ALERT_SYSTEM") != msg.data_type &&
|
||
QLatin1String("ALERT_TEMP") != msg.data_type &&
|
||
QLatin1String("ALERT_UPS") != msg.data_type )
|
||
{
|
||
return bIsValid = false;
|
||
}
|
||
content >> alerts_info.station_code >> alerts_info.alert_type >> alerts_info.date >> alerts_info.time;
|
||
do
|
||
{
|
||
QString line = content.readLine();
|
||
if ( 0==line.compare(QLatin1String("STOP")) )
|
||
{
|
||
bIsValid = true; //检测到“STOP line”,消息完整,数据有效
|
||
break;
|
||
}
|
||
else if (content.atEnd())
|
||
{
|
||
bIsValid = false;
|
||
alerts_info.alert_type.clear();
|
||
alerts_info.date.clear();
|
||
alerts_info.desc.clear();
|
||
alerts_info.station_code.clear();
|
||
alerts_info.time.clear();
|
||
break;
|
||
}
|
||
else
|
||
{
|
||
// QString desc_row = QLatin1String("\n") + line;
|
||
QString desc_row;
|
||
if(alerts_info.desc.isEmpty())
|
||
{
|
||
desc_row = line;
|
||
}
|
||
else
|
||
{
|
||
desc_row = QLatin1String("\n") + line;
|
||
}
|
||
|
||
alerts_info.desc.append(desc_row);
|
||
}
|
||
}
|
||
while( !content.atEnd() );
|
||
|
||
return bIsValid;
|
||
}
|
||
|