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

📄 gcontrol.h

📁 这是一个潜入式开发的c语言代码
💻 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 + -