📄 gcontrol.h
字号:
/*#########################################################################
gcontrol.h - definitions/declarations of gather controller.
Copyright (c) 2005-2006, RICHISLAND All rights reserved.
Purpose :
Version :1.00
Author :
Complete Date :
Function List :
History :
_________________________________________________________________________
DATE AUTHOR VERSION DESCRIBE
-------------------------------------------------------------------------
2006-06-14 Ver1.00 Create
#########################################################################*/
#ifndef __F_GCONTROL_H__
#define __F_GCONTROL_H__
#include "stadx.h"
#include "fuart.h"
#include "fmbus.h"
#define GRP_MAX_NUM 20 /* max group number */
#define TAG_MAX_NUM 200 /* max tag number */
#define EQUIP_MAX_NUM 200 /* max equip number */
#define GRP_MAX_TAG 20 /* max tag number of group */
#define GRP_MAX_INSTR 20 /* max instrument num of group */
#define INSTRU_MAX_TAG 20 /* max tag number of instrument */
#define OUTTAG_MAX_NUM 200/* max number of outtag */
#define OUTTAG_MAX_RELATED 10 /* outtag. max number of related tags */
#define F_NAME_SIZE 20
#ifdef __cplusplus
extern "C" {
#endif
/* define tag status*/
#define TAG_STATUS_OK 0x00/* equip status ok */
#define TAG_STATUS_CAL_OK 0x01/* calculate ok */
#define TAG_STATUS_NOTDEFINE 0xFD/* tag not defined */
#define TAG_STATUS_CAL_ERROR 0xFE/* calculate error */
#define TAG_STATUS_ERROR 0xFF/* equip status error */
/* define tag gathering approach */
#define TAG_GATHER_CONSTANT 0x00
#define TAG_GATHER_EQUIP 0x01
#define TAG_GATHER_CALCULATE 0x02
typedef struct tag_FTag
{
UINT32 TagID;
CHAR TagName[F_NAME_SIZE];
INT16 TypeID;
BYTE DType;
DOUBLE RangeMin;
DOUBLE RangeMax;
UINT16 wValue;
DOUBLE Value;
BYTE Status;
BYTE Mode;
/* range transform switch. 0/1 */
BYTE RSW;
} FTag;
/* define relation to tags of outtag */
#define OUTTAG_RELATION_EQUAL 0xA0 /* equal value */
#define OUTTAG_RELATION_SUM 0xA1 /* sum value */
#define OUTTAG_RELATION_AVERAGE 0xA2 /* average value */
typedef struct tag_FOutputTag
{
CHAR TagName[F_NAME_SIZE];
UINT16 wValue;
DOUBLE Value;
BYTE Status;
INT8 RelatedTagNum;
BYTE RelationType;
/* related tags */
FTag* RelatedTag[OUTTAG_MAX_RELATED];
} FOutputTag;
#define INSTRU_TYPE_20A 0x00
#define INSTRU_TYPE_DOUBLE 0x0A
typedef struct tag_FInstrument
{
BYTE Adr;
BYTE Fun;
UINT16 Reg0;
UINT16 RegNum;
UINT16 TagNum;
/* tags to gather */
FTag* Tag [INSTRU_MAX_TAG];
BYTE RegTYPE[INSTRU_MAX_TAG];
UINT32 RegNO[INSTRU_MAX_TAG];
} FInstrument;
/* define group type */
#define GRP_TYPE_TANK 0xA0
#define GRP_TYPE_WEIGHTFLUX 0xA1
#define GRP_TYPE_UNDEFINE 0x00
typedef struct tag_FTagGroup
{
CHAR GrpName[F_NAME_SIZE];
INT32 GroupID;
UINT8 TypeID;
FInstrument Instru[GRP_MAX_INSTR];
FTag* Tag[GRP_MAX_TAG];
FOutputTag* OutTag[GRP_MAX_TAG];
UINT16 InstruNum;
UINT16 TagNum;
UINT16 OutTagNum;
} FTagGroup;
/* Initialize */
Boolean gcol_Init(FUART* uartCfg);
/* wait for inuring*/
Boolean gcol_WaitForInured();
/* Gather data by group */
INT16 gcol_GatherGrp(FTagGroup* group);
/* release bus handing*/
VOID gcol_Halt();
/* free resources */
VOID gcol_Dispose();
/* check tag status */
Boolean gcol_ValidStatus(FTag* tag);
/* ALL TAGS */
extern FTag TAGS[TAG_MAX_NUM];
/* OUTPUT TAGS */
extern FTagGroup OUTTAGS[OUTTAG_MAX_NUM];
/* ALL Groups */
extern FTagGroup GROUPS[GRP_MAX_NUM];
#ifdef __cplusplus
}
#endif
#endif // __F_GCONTROL_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -