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

📄 dbstru.h

📁 ARM得编程实例。很经典。在win ce5.0环境下的编程实例
💻 H
字号:
/****************************************************************************
              
****************************************************************************/

#ifndef DBAREASTRUCT_H
#define DBAREASTRUCT_H

/**************************** 系统参数定义 *********************************/
#define	MAXGROUP   60         /* 最大冗余组编号 */
#define MAXTYPE    20         /* 支持的最大设备类型 */

#define NO_DEVICE_CONFIG   -1       /* 无设备配置 */

enum DeviceType {  /* 设备类型 */
    ICM = 1,    /* TM460 */
    OCM = 2,    /* TM470 */
    TM422 = 3,  /* TM422 */
    TM480 = 4,  /* TM480 */
    TM490 = 5,  /* TM490 */
    /* 扩展:其它模块类型 */
    PEND = 0XFF
};  

enum FrameType{    /* 帧类型定义 */
	NET_INPUT = 1,	/* ICU发送数据(1) */
	NET_OP_ORDER = 2	/* 上位机发送操作命令(2) */
};

/**************************** 配置文件结构 ********************************/

/* 配置文件的版本 */
typedef struct Version {
    INT16U Ver;
} CFGFILEVER;

/* 配置文件的版本结构的长度 */
#define VER_LEN (sizeof(CFGFILEVER))

/* 设备定义结构 */
typedef struct DeviceStruct  {
	INT8U GroupID;      /* 2oo3系统为冗余模块组编号,2oo4系统为站地址 */
	INT8U Type;         /* 类型 */
	INT8U RcvDataLen;   /* 接收数据长度 */
	INT8U SndDataLen;   /* 发送数据长度 */
} DEVSTRUCT;

/* 设备定义结构长度 */
#define DEVSTRUCT_LEN (sizeof(DEVSTRUCT))

/************************** 运行期设备结构 *******************************/

/* 运行期设备参数结构 */
typedef struct devparm {
    LPBYTE pdpprm;         /* 该类型设备从站参数区指针 */
    INT8U  Type;           /* 设备类型 */
    INT8U  nTotal;         /* 已配置该类型设备总数 */
} DEVPARM;

/* IO结构 */
typedef struct IODevStruct {
    INT8U  Addr;           /* 从站地址 */
    INT8U  OnLine;         /* 在线标识: 1-在线, 0-离线 */
    INT16U OffsetIn;       /* 双口RAM输入偏移量 */
    INT16U OffsetOut;      /* 双口RAM输出偏移量 */
    LPBYTE pSlavePrm;      /* 从站配置参数区指针 */
    LPBYTE pDPRIn;         /* 双口RAM输入区指针 */
    LPBYTE pDPROut;        /* 双口RAM输出区指针 */
} IOSTRUCT;

/* 运行期设备结构 */
typedef struct RunTimeDeviceStruct   {
	INT8U  GroupID;      /* 冗余模块组编号 */
    INT8U  Type;         /* 类型 */ 
    INT8U  RcvDataLen;   /* 输入数据长度 */
	INT8U  SndDataLen;   /* 输出数据长度 */
	LPBYTE pStateArea;   /* 运行状态区指针 */
	LPBYTE pInData;      /* 设备输入数据区指针 */
	LPBYTE pOutData;     /* 设备输出数据区指针 */
    IOSTRUCT IOM;       /* 模块结构 */ 
} RunDEVSTRUCT;

/* 运行期设备结构长度 */
#define RunDEVSTRUCT_LEN (sizeof(RunDEVSTRUCT))

/************************** 双口RAM数据结构 *******************************/

#define DPR_SIZE       0x2000   /* 双口RAM数据区大小8K */

typedef struct dualportram DualPortRAM;

struct	dualportram {
	INT8U SndPd[(DPR_SIZE-0x400)/2];
	INT8U RecvPd[(DPR_SIZE-0x400)/2];
	struct
	{
		INT8U Rx;
		INT8U Tx;
		INT8U Ln;
		INT8U Nr;
		INT8U A;
		INT8U F;
		INT8U B;
		INT8U E;
		INT8U D[280];
	} SMsg;

	INT8U Date[4];
	INT8U DeviceNumber[4];
	INT8U SerialNumber[4];
	INT8U Reserved[4];

	INT8U PcOsName0[4];
	INT8U PcOsName1[4];
	INT8U PcOsName2[4];
	INT8U OemIdentifier[4];
	
	struct
	{
		INT8U Rx;
		INT8U Tx;
		INT8U Ln;
		INT8U Nr;
		INT8U A;
		INT8U F;
		INT8U B;
		INT8U E;
		INT8U D[280];
	} RMsg;
	
	INT8U FirmwareName[16];
	INT8U FirmwareVersion[16];
	
	INT8U Task1Parameter[64];
	INT8U Task2Parameter[64];
	
	INT8U Task1States[64];

	INT8U bGlobalBits;
	INT8U DPM_state;
	
	INT8U bErr_rem_adr;
	INT8U Err_event;

	INT8U usBus_error_cntLow;
	INT8U usBus_error_cntHigh;
	INT8U usTime_out_cntLow;
	INT8U usTime_out_cntHigh;
	INT8U abReserved[8];

	INT8U Sl_cfg[16];
	INT8U Sl_state[16];
	INT8U Sl_diag[16];		

	INT8U Task1Name[8];
	INT8U Task1VersionLow;
	INT8U Task1VersionHigh;
	INT8U Task1State[6];

	INT8U Task2Name[8];
	INT8U Task2VersionLow;
	INT8U Task2VersionHigh;
	INT8U Task2Condition[6];

	INT8U Task3Name[8];
	INT8U Task3VersionLow;
	INT8U Task3VersionHigh;
	INT8U Task3Condition[6];

	INT8U Task4Name[8];
	INT8U Task4VersionLow;
	INT8U Task4VersionHigh;
	INT8U Task4Condition[6];

	INT8U Task5Name[8];
	INT8U Task5VersionLow;
	INT8U Task5VersionHigh;
	INT8U Task5Condition[6];

	INT8U Task6Name[8];
	INT8U Task6VersionLow;
	INT8U Task6VersionHigh;
	INT8U Task6Condition[6];

	INT8U Task7Name[8];
	INT8U Task7VersionLow;
	INT8U Task7VersionHigh;
	INT8U Task7Condition[6];

	INT8U InformationOperatingSystem[3];

	INT8U HostWatchDog;
	INT8U DevWatchDog;
	INT8U SegmentCount;
	INT8U DeviceAddress;
	INT8U DriverType;

	INT8U Others[6];
	INT8U HostFlags;
	INT8U DevFlags;
} ;

#endif /* DBAREASTRUCT_H */

⌨️ 快捷键说明

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