HM-SPMS/product/src/gui/plugin/TrendCurves/CTrendInfoManage.h
2025-03-17 09:23:17 +08:00

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