101 lines
3.1 KiB
C++
101 lines
3.1 KiB
C++
#ifndef CTRENDINFOMANAGE_H
|
|
#define CTRENDINFOMANAGE_H
|
|
|
|
#include <QMap>
|
|
#include <QList>
|
|
#include <QPair>
|
|
#include <QStringList>
|
|
#include "dbms/rdb_api/CRdbAccess.h"
|
|
#include "dbms/db_api_ex/CDbApi.h"
|
|
#include "boost/property_tree/xml_parser.hpp"
|
|
#include "boost/typeof/typeof.hpp"
|
|
#include "boost/filesystem.hpp"
|
|
|
|
#define FUNC_NOM_TREND_EDIT "FUNC_NOM_TREND_EDIT"
|
|
|
|
enum E_Point_Type
|
|
{
|
|
E_ANALOG, //< 模拟量
|
|
E_DIGITAL, //< 数字量
|
|
E_MIX, //< 混合量
|
|
E_ACCUML, //< 累计量
|
|
};
|
|
|
|
class CTrendInfoManage
|
|
{
|
|
public:
|
|
static CTrendInfoManage * instance();
|
|
|
|
void destory();
|
|
|
|
QMap<int, QString> locationInfo();
|
|
|
|
QString getLocationDesc(const int &locId);
|
|
|
|
QList<int> locationOrderList();
|
|
|
|
QMap<QString, QString> devGroupInfo(const int& location); //新增设备组
|
|
|
|
QList<QPair<QString,QString> > devGroupInfoList(const int& location);
|
|
|
|
QMap<QString, QString> deviceInfo(const QString &devGroupName); //新增设备组时修改
|
|
|
|
QStringList queryTagListDevGroup(const QString &devGroup);
|
|
|
|
QStringList queryTagList(const QString &device);
|
|
|
|
QString queryDeviceGroup(const QString &device);
|
|
|
|
QString getTagDescription(const QString &tag);
|
|
|
|
QString getTagType(const QString &tag);
|
|
|
|
QString getTagUnit(const QString &tag);
|
|
|
|
bool checkTrendEditPerm();
|
|
|
|
int getStateActualValue(const QString &state);
|
|
|
|
int getInvalidStatus(E_Point_Type pointType, int status);
|
|
|
|
QMap<int, QPair<QString, bool> > getAlarmShowStatus();
|
|
|
|
QMap<int, QString> getAlarmOtherStatus();
|
|
|
|
private:
|
|
CTrendInfoManage();
|
|
|
|
void loadRTLocation();
|
|
void loadDevGroupInfo(iot_dbms::CDbApi *pReadDb); //新增设备组
|
|
void loadDeviceInfo(iot_dbms::CDbApi *pReadDb); //新增设备组时修改
|
|
void loadTagInfo(iot_dbms::CDbApi *pReadDb);
|
|
void loadUnit(iot_dbms::CDbApi *pReadDb);
|
|
void loadStateDefine();
|
|
void loadAlarmStatusDefine();
|
|
void loadAlarmStatus();
|
|
void loadAlarmOtherStatus();
|
|
void initInvalidStatus();
|
|
|
|
private:
|
|
iot_dbms::CRdbAccess * m_rtdbAccess;
|
|
QMap<int, QString> m_locationInfo; //< LocationID-LocationDesc
|
|
QMap<int, QMap<QString, QString> > m_devGroupInfo; //< LocationID-<DevGroupName-DevGroupDesc> 新增设备组
|
|
QMap<int, QList<QPair<QString,QString > > > m_devGroupInfoMap;
|
|
QMap<int, QMap<QString, QString> > m_devLocation; //< LocationID-<DeviceName-DeviceDesc> 新增设备组
|
|
QMap<QString, QMap<QString, QString> > m_deviceInfo; //< DevGroupName-<DeviceName-DeviceDesc> 新增设备组时修改
|
|
QMap<QString, QStringList> m_listTagName; //< DeviceName-list<TagName>
|
|
QHash<QString, QStringList> m_listTagInfo; //< TagName-TagInfo<desc, type, unit>
|
|
QMap<int, QString> m_listTagUnit;
|
|
QMap<QString, int> m_menuState;
|
|
QMap<int, QPair<QString, bool> > m_alarmShowStatus;
|
|
QMap<int, QString> m_alarmOtherStatus;
|
|
QMap<int, QString> m_alarmStatusDefineMap;
|
|
QList<int> m_locationOrderList; //< location_id: 按location_no排序
|
|
int m_nInvalidAnalog;
|
|
int m_nInvalidDigital;
|
|
|
|
static CTrendInfoManage * m_pInstance;
|
|
};
|
|
|
|
#endif // CTRENDINFOMANAGE_H
|