|
|
/****************************************************************************
|
|
|
** File name : HTMemCacheData.h
|
|
|
** Description : define memory data struct
|
|
|
** Create date : 2018.09.01
|
|
|
** Auther by : Liuyx
|
|
|
** Version info : V1.0.01
|
|
|
** Copyright (C) 2002-2018 xi'an huatek, Inc Co., Ltd
|
|
|
** Update record:
|
|
|
** DATE AUTHER DESC
|
|
|
** -------------------------------------------------------------------------
|
|
|
** 2018.09.01 Liuyx first build
|
|
|
****************************************************************************/
|
|
|
#ifndef __HT_MEM_CACHE_DATA_H
|
|
|
#define __HT_MEM_CACHE_DATA_H
|
|
|
#pragma pack (push ,1)
|
|
|
|
|
|
|
|
|
// 变压器三种工作状态下的阈值,运行工况阈值的字典
|
|
|
typedef struct
|
|
|
{
|
|
|
double value; // 阈值
|
|
|
char field[64]; // 阈值字段名称,对应阈值表中的字段名称
|
|
|
}ST_STAT_FIELD;
|
|
|
|
|
|
#define MAX_RUN_STATUS_COUNT 15 // 一个主变的最大运行工况阈值数量
|
|
|
typedef struct {
|
|
|
int fnum; // 阈值个数
|
|
|
ST_STAT_FIELD stField[MAX_RUN_STATUS_COUNT];
|
|
|
}ST_STAT_THRESHOLD;
|
|
|
|
|
|
// 变压器运行工况阈值缓存信息体
|
|
|
typedef struct{
|
|
|
unsigned char site_id[DEF_EQM_CODE_SIZE]; // 站点ID
|
|
|
unsigned char eqm_code[DEF_EQM_CODE_SIZE]; // 主设备ID,对应表busi_site_tree.id,map.key
|
|
|
unsigned char system_code[DEF_EQM_CODE_SIZE]; // 系统设备编码,strkey
|
|
|
unsigned char dev_name[DEF_EQM_CODE_SIZE * 2]; // 设备名称
|
|
|
unsigned char wstate; // 当前设备工作状态 1-发电状态 2:抽水状态 3:空闲状态
|
|
|
ST_STAT_THRESHOLD stThreashod[3]; // 0-发电状态 1:抽水状态 2:空闲状态
|
|
|
}ST_BYQ_RUN_STATE_THRESHOLD;
|
|
|
|
|
|
// 主变与其他主设备关联关系
|
|
|
typedef struct{
|
|
|
unsigned char site_id[DEF_EQM_CODE_SIZE]; // 站点ID
|
|
|
unsigned char m_eqm_code[DEF_EQM_CODE_SIZE]; // 主设备ID,对应表busi_site_tree.id.
|
|
|
unsigned char s_eqm_code[DEF_EQM_CODE_SIZE]; // 主设备ID,对应表busi_site_tree.id,map.key
|
|
|
unsigned char s_sys_code[DEF_EQM_CODE_SIZE]; // 从设备ID,对应表busi_site_tree.id,map.key
|
|
|
unsigned char s_eqm_type; // 设备类型 1:主变 2:GIS 3:测温 4:避雷器
|
|
|
unsigned char wstate; // 主变+GIS,工作状态 1-发电状态 2:抽水状态 3:空闲状态
|
|
|
unsigned char bClose; // GIS的开合状态0:分 1:合
|
|
|
unsigned char bfault; // 主变事故状态:0-正常 1-事故状态
|
|
|
}ST_DEV_RELATION;
|
|
|
|
|
|
// 主变id工作状态列表
|
|
|
typedef struct{
|
|
|
unsigned char site_id[DEF_EQM_CODE_SIZE]; // 站点ID
|
|
|
unsigned char eqm_code[DEF_EQM_CODE_SIZE]; // 主设备ID,对应表busi_site_tree.id.
|
|
|
unsigned char eqm_name[DEF_BUFFER_128]; // 设备名称
|
|
|
unsigned char wstate; // 主变+GIS,工作状态 1-发电状态 2:抽水状态 3:空闲状态
|
|
|
unsigned char bfault; // 主变事故状态:0-正常 1-事故状态
|
|
|
}ST_BYQWORK_STATUS;
|
|
|
|
|
|
// 是否有报警
|
|
|
//bool isWarnning(unsigned char *site_id, unsigned char *sys_code, int state, unsigned int saddr, double val);
|
|
|
bool isWarnning(ST_IECPOINT_TABLE &stPointt, double val);
|
|
|
|
|
|
// 获取系统设定的阈值
|
|
|
double getThresholdValuse(const char *eqm_code, const char *pFiledName, int jobState);
|
|
|
|
|
|
// 根据s_eqm_code获取对应的主变设备编码
|
|
|
bool bGetMasterEqmCodeBySubEqmCode(unsigned char *site_id, unsigned char *s_eqm_code, unsigned char *m_eqm_code);
|
|
|
|
|
|
|
|
|
// 刷新主变设备/GIS/避雷器运行状态
|
|
|
void flushDevWorkState(unsigned char *site_id, unsigned char *m_eqm_code, unsigned char state);
|
|
|
|
|
|
//刷新主变设备机组事故状态 state=false:正常 true:事故
|
|
|
bool flushFaultState(unsigned char *site_id, unsigned char *m_eqm_code, unsigned char state);
|
|
|
|
|
|
// 刷新GIS开关状态
|
|
|
bool flushDevCloseState(unsigned char *site_id, unsigned char *s_eqm_code, unsigned char state);
|
|
|
|
|
|
// 获取GIS的开关状态
|
|
|
unsigned char getGisOpenCloseState(unsigned char *site_id, unsigned char *s_eqm_code);
|
|
|
|
|
|
//从隶属关系map中,获取设备工作状态
|
|
|
//返回0:无效状态-没有找到该设备/设备无关联关系存在
|
|
|
unsigned char cGetCurrentWorkState(/*unsigned char *pszSite_id,*/ unsigned char *pszEqm_code);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*************************************************************************/
|
|
|
// 设置主变工作状态
|
|
|
void vSetByqDeviceState(unsigned char *pszEqm_code, unsigned char state);
|
|
|
|
|
|
// 获取工作状态
|
|
|
unsigned char cGetByqDeviceState(unsigned char *pszEqm_code);
|
|
|
|
|
|
// 设置主变事故状态
|
|
|
void vSetByqDeviceFaultState(unsigned char *pszEqm_code, unsigned char state);
|
|
|
|
|
|
// 获取事故状态
|
|
|
unsigned char cGetByqDeviceFaultState(unsigned char *pszEqm_code);
|
|
|
|
|
|
void SethDevTimeStat(unsigned char *sys_code, unsigned char ws);
|
|
|
time_t GetDevTimeStat(unsigned char *sys_code, unsigned char *ws);
|
|
|
|
|
|
void ResetCachedDeviceData();
|
|
|
std::string BuildSqlForDeviceData(CACHED_DEV_DATA& cachedDev);
|
|
|
|
|
|
bool AssignValueToDeviceData(CACHED_DEV_DATA& cachedDev, const IEC_OBJVAL_NEW& val);
|
|
|
|
|
|
#pragma pack (pop)
|
|
|
#endif // end
|
|
|
|