⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 glovar.h

📁 一个串口通信的程序
💻 H
字号:
#ifndef GLOVAR_ZDP
#define GLOVAR_ZDP
#include "stdafx.h"

// ListCtrl 常量
#define COLUMN_NUMBER	4		// 列总数
#define COLUMN_CDNAME	0		// 列 "测点名称" 索引
#define COLUMN_CSNAME	1		// 列 "参数名称" 索引
#define COLUMN_DATA		2		// 列 "数据值"   索引
#define COLUMN_DWMC		3		// 列 "单位" 索引
#define COLUMN_WARN		4		// 列 "警告" 索引
#define READ_NO			1		// 消息未读
#define READ_YES		2		// 消息已读

extern CString SYS_PATH;

extern int GlastLine;
#define DMPcomERR(e) dmpCOMerr(e,__LINE__,__FILE__);
extern void dmpCOMerr( _com_error &e, int line, char *file, bool traceOnly=false );

inline void TESTHR(HRESULT x) {if FAILED(x) _com_issue_error(x);};
#define TRYTESTHR(x) try{TESTHR(x);}catch(_com_error &e){DMPcomERR(e);}
#define TRYCOME(x) try{x;}catch(_com_error &e){DMPcomERR(e);}

#define rsstr(R,X)  (R->EoF?CString(""):(R->Fields->Item[_variant_t(X)]->Value.vt == VT_NULL ? CString(""):CString((char *)(_bstr_t)(R->Fields->Item[_variant_t(X)]->Value))))
#define rsi2(R,X)   (R->EoF?0:(R->Fields->Item[_variant_t(X)]->Value.vt == VT_NULL ? 0:(short)(R->Fields->Item[_variant_t(X)]->Value)))
#define rsi4(R,X)   (R->EoF?0:(R->Fields->Item[_variant_t(X)]->Value.vt == VT_NULL ? 0:(long)(R->Fields->Item[_variant_t(X)]->Value)))
#define rsif(R,X)   (R->EoF?0:(R->Fields->Item[_variant_t(X)]->Value.vt == VT_NULL ? 0:(float)(R->Fields->Item[_variant_t(X)]->Value)))
#define rstime(R,X) (R->EoF?0:(R->Fields->Item[_variant_t(X)]->Value.vt == VT_NULL ? 0:(DATE)(R->Fields->Item[_variant_t(X)]->Value)))
#define TRIM(X) {X.TrimLeft();X.TrimRight();}

extern const TCHAR gcszWindowName[];
extern const TCHAR gcszWindowClass[];

extern BOOL m_bShutDown;	// 本次退出是否因为系统 ShutDown

extern COLORREF grgbArray[16];
extern LPTSTR grgbtextArray[16];
//CStringArray split(CString str,CString delimiter)
//str:source,delimiter:切分符

CStringArray * split(CString str,CString delimiter);
CStringArray * GetLineFromFile(CString filename);

typedef struct
{
	int ybid;			//int 仪表ID
	long ybbaud;		//CString Com波特率
	CString ybname;		//CString 仪表名称
	CString ybtype;		//CString 仪表类型
	CString comport;	//CString 连接COM口
	CString ybaddr;		//CString 仪表地址
	CString AnZDD;		//CString 安装地点
}YB,NEAR * NPYB; 		//现场仪表分布情况
extern CTypedPtrArray < CPtrArray, NPYB > arrYB;

typedef struct
{
	int cdid;			//int 测点ID
	CString cdname;		//CString 测点名称
	int ybid;			//int 仪表ID
	int chanal;			//int 通道号
}CD,NEAR * NPCD;		//现场测点分布情况
extern CTypedPtrArray < CPtrArray, NPCD > arrCD;

typedef struct
{
	int csid;			//参数ID
	CString ybtype;		//CString 仪表类型
	CString csname;		//CString 参数名称
	CString csdz;		//CString 参数地址
	CString cstype;		//CString 参数数据类型
}CS,NEAR * NPCS;		//各种仪表参数名称、地址对照表
extern CTypedPtrArray < CPtrArray, NPCS > arrCS;

typedef struct
{
	int rtid;			//int 信号ID
	int cdid;			//int 测点ID
	int csid;			//int 参数ID
	CString dw;			//CString 信号单位
	bool eanble;		//bool 是否启用
	bool warn_enble;	//bool 是否启用报警
	double warn_low;	//double 报警下限
	double warn_hi;		//double 报警上限
	double range_low;	//double 量程下限
	double range_hi;	//double 量程上限
	bool warn;
	int saving_cycle;	//int 保存周期 0:不保存 1:一分钟 2:五分钟 3:十五分钟 4:一小时 5:六小时 6:十二小时 7:二十四小时
	float hisory[200];	//过去200秒数据
	long hendp;			//当前数据头
	bool view;			//是否显示曲线
}RT,NEAR *NPRT;			//数据实时采集配置表
extern CTypedPtrArray < CPtrArray, NPRT > arrRT;

void deleteyb();
void deletecd();
void deletecs();
void deletert();

void readyb();
void readcd();
void readcs();
void readrt();

void writeyb();
void writecd();
void writecs();
void writert();

typedef struct
{
	long rtid;			//信号ID
	long comport;		//COM口号
	long ybaddr;		//仪表地址
	long ybtype;		//仪表类型	0:XLF
	long csaddr;		//参数地址
	long cstype;		//参数类型  0:long 1:short 2:fval
	char cdmc[50];		//测点名称
	long lval;			//长整数值
	long sval;			//短整数值
	double dval;		//浮点值
	long valuestate;	//数据有效性;0:无效 1:有效 -1:超时   /数据写入是否成功 0:还没写 -1:不成功 1:成功
	long trytimes;		//重试次数
	long readwrite;		//读写 0:读,1:写
	long baud;
}XLFDATA;

extern XLFDATA xlfdata[100];

extern HRESULT PASCAL L_InitPara(long xx);
extern HRESULT PASCAL Init_Active(XLFDATA * xlfdata,long number);
extern HRESULT PASCAL Close_Active(long xx);
extern HRESULT PASCAL ReadWrite_Para(long readnum,long writenum);

extern long RTCount;
bool BeginRT();
bool EndRT();
extern bool canread;

#define WM_SHOWVALUE					( WM_USER + 1001 )
#define WM_INITITEM						( WM_USER + 1002 )

extern int m_autoRun;

#pragma pack(1)
typedef struct 
{
	char flag[2];
	long tail;
	long head;
	COleDateTime begindate;
	COleDateTime enddate;
}HISTORY_FILEHEAD;

typedef struct
{
	char state;
	float value;
}HISTORY_DATA,NEAR * NPHISTORY_DATA;
#pragma pack()

void WriteDataToFile(int rtid,double value,int state);
HISTORY_DATA * ReadDataFromFile(int rtid,COleDateTime &dt1,COleDateTime &dt2,int &count);

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -