#ifndef ALARMEVENTGLOBAL_H #define ALARMEVENTGLOBAL_H #include #include #include enum AlarmDataMode { RealTime = 0, Historical_All, //所有事件 Historical_Unconfirmed //未确认事件(查看所有实时报警事件时用) }; struct PaginationInfo { int totalEntries; int entriesPerPage; int totalPages; int currentPage; }; struct EventData { QString id; QString name; int type; int priority; //1告知、4预警、7事故 int status; qint64 timestamp; QString stationName; //场站名称 QString bayName; //间隔名称 QString severity;//严重性(等级) QString from; //'station'、'platform'、'msa' QString category; //存放订阅数据的标识,它和 timestamp 一起构成订阅从的requst QString description; QVariantMap condition; //事件发生时的简单场景描述,如{'up_limitaion': 40, 'low_limitation': 10, value: 45} QVariantMap alarmInfo; //{"driver_name":"ssu_driver_name","device_no":"ssu000","alarm_code":1,"alarm_time":2516666461000,"alarm_status":0} static EventData fromJson(const QJsonObject& json) { EventData event; event.id = json.value("event_uuid").toString(); event.name = json.value("event").toString(); event.type = json.value("type").toInt(); event.priority = json.value("priority").toInt(); if(event.priority == 1) event.severity = QString("告知"); else if(event.priority == 4) event.severity = QString("预警"); else if(event.priority == 7) event.severity = QString("事故"); else event.severity = QString("未定义"); event.status = json.value("status").toInt(); event.timestamp = json.value("timestamp").toVariant().toLongLong(); event.from = json.value("from").toString(); event.category = json.value("category").toString(); QJsonValue conditionJValue = json.value("condition"); if(conditionJValue.isObject()) { QJsonObject conditionObj = conditionJValue.toObject(); event.condition = conditionObj.toVariantMap(); } QJsonValue alarmJValue = json.value("alarm"); if(alarmJValue.isObject()) { QJsonObject alarmObj = alarmJValue.toObject(); event.alarmInfo = alarmObj.toVariantMap(); } return event; } }; #endif