📄 corearg.h
字号:
/******************************************************************
* Copyright (c) 2004-2005, 许继日立公司
* All rights reserved.
*
* 文件名称:corearg.h
* 文件标识:
* 摘 要:核心数据参数保存的内存位置
*
* 当前版本:1.0
* 作 者:李龙伟 <lilongwei1@hotmail.com>
* 完成日期:2004年12月05日
*
* 取代版本:1.0
* 原作者 :李龙伟
* 完成日期:2004年12月05日
******************************************************************/
#ifndef _CORE_ARG_H
#define _CORE_ARG_H
#if _MSC_VER>1000
#pragma warning(disable: 4786)
#endif
#include <list>
#include <map>
#include "numdef.h"
#include "ntdef.h"
#include "datadef.h"
using namespace std;
//网络内存数据
class CGloalNet
{
public:
CGloalNet();
~CGloalNet();
public:
enum GateDevStatus m_eState; //装置状态(起初设置的时候置为ACIE_UNKNOW)
GateNetAddr NetAddr; //网络地址
sem_t sem_addr;
sem_t sem_msg;
int InsNetAddr(GateNetAddr addr);
int GetNetAddr(GateNetAddr &addr);
int InsDevStatus(enum GateDevStatus state);
int GetDevStatus(enum GateDevStatus state);
};
//事件内存数据,包括从下层向上层传输的数据;上层向下层发送的命令
class CSoeData
{
public:
CSoeData();
~CSoeData();
list<SOE_STATUS> m_ListSoe; //下层上送的遥信、soe等信息
list<CTRL_VALUE> m_CtrlValue; //103/104到CDT的命令
sem_t sem_soe;
public:
//插入事件信息
int InsSoeData(SOE_STATUS soe_status);
//读取并弹出事件信息
int GetSoeData(enum GateStation eStation, SOE_STATUS &soe_status);
//插入命令信息
int InsCtrlData(CTRL_VALUE ctrl_value);
//读取并弹出命令信息
int GetCtrlData(CTRL_VALUE &ctrl_value);
protected:
private:
//检测事件队列,list最大值超过2000弹出第一个值
void CheckSoeData(void);
//检测命令队列,list最大值超过2000弹出第一个值
void CheckCtrlData(void);
};
//设备内存数据,包括遥测量、遥信量、soe。
class CDevData
{
public:
CDevData();
~CDevData();
//键值为<pair<装置序号,信息号>,数据类型>
map<pair<pair<unsigned int, unsigned int>, enum DATA_TYPE>, DATAGROUP> m_MapData;//Yc, m_MapSoe, m_MapYx;
sem_t sem_dev;
public:
//插入设备数据信息
int InsDevData(DATAGROUP *pData, int count);
//删除设备数据信息
int DelDevData(unsigned int nPortNo, unsigned int *No, enum DATA_TYPE eType, int count);
// 删除全部设备数据信息
int DelAllDevData(unsigned int nPortNo);
//返回指定装置的数据分组信息记录
int CountDevData(unsigned int nPortNo, enum DATA_TYPE eType);
//返回指定装置和序号的指定数据信息记录(根据设备编号/序号找实际值)
int GetFixDevData(unsigned int nPortNo, unsigned int no, enum DATA_TYPE eType, DATAGROUP &pData);
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -