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

📄 main.h

📁 工厂环境污染控制数据采集器
💻 H
📖 第 1 页 / 共 2 页
字号:
#ifndef __MAIN_H 
#define __MAIN_H
#include "type.h"
#include <rtl.h>

/////////////污染物存储位置/////////////////
#define P_ADDR_INSTANT	0
#define P_ADDR_MILAGE	1
#define	P_ADDR_PH		2
#define P_ADDR_COD		3
#define P_ADDR_MOTOR	4
#define P_ADDR_NH4		5
#define P_ADDR_CR6		6
#define P_ADDR_TN		7
#define P_ADDR_TP		8

#define P_CODE_INSTANT	"201"
#define P_CODE_MILAGE	"202"
#define	P_CODE_PH		"001"
#define P_CODE_COD		"011"
#define P_CODE_MOTOR	"203"
#define P_CODE_NH4		""
#define P_CODE_CR6		""
#define P_CODE_TN		""
#define P_CODE_TP		""
/////串口访问超时时间2秒//////////////////
#define COMPORT_TIMEOUT	2
///////////////////////////////////////////////////
#define FILE_R  1   //读
#define FILE_W  4   //写
#define FILE_A  8   //添加 或 更改
/********EEPROM 存储定义*************/
#define SYS_INIT_BYTE_ADDR  0x1
#define PASSWORD_ADDRESS    0x10   //0x10~0x15
#define SYS_SUNJIAN_LIULIANG 0x18
#define SYS_LEIJI_LIULIANG  0x1c
#define JIN_SUI_LIU_LIANG_USED_ADDR 0x20
#define SYS_JINSHUI_LEIJI	0x24
#define SYS_CURR_INSTANT_ADDR   0x28
#define SYS_INSTANT_STEP	0x2c
#define SYS_LAST_REBOOT_TIME 0x58
#define SYS_LAST_DAY_REPORT 0x60
#define SYS_LAST_HOUR_REPORT 0x68
#define SYS_LAST_MIN_REPORT  0x70
#define SYS_LAST_INSTANT_REPORT 0x78
#define SYS_LAST_LOG_REPORT   0x80
#define SYS_LAST_REPORTONTTIME 0x88
#define SYS_LAST_ALARMREPORT 0x90
////////////////瞬间值存储开始地址////////////////////
#define SYS_INSTAT_START_ADDR  0x200	//存瞬时值的起始位置
#define SYS_INSTANT_BOTTOM_ADDR 0x14C0  //存瞬时值的结束位置
/************************************/
typedef struct {
	BYTE FLUX_SET;// 0 不使用,1 使用Resien 2 AD需要计算累计值,3 不需要计算累计值			
	BYTE GUTTER_TYPE;// 槽型 0 巴歇尔 1 V型 2 矩形			
	BYTE GUTTER_NO;//   槽号 0~255			
	float GUTTER_HIGH ;//槽高
	BYTE sleeptime;//采样的间隔秒数
} FLUX_PARAM;

typedef struct {
 BYTE port_num;//端口号
 BOOL flgUsed;
 unsigned char p_id[3];//  污染物编号,与该端口绑定的污染物ID
 unsigned int   baud;  
 unsigned int flgChk;//奇偶校验 0-无,1-奇,2-偶
 unsigned int databits;
 unsigned int stopbits;
 unsigned int timeout_ticks;//串口超时计数器
 unsigned int timeout_calflg;
} COM_PORT;	//串口
typedef struct {
 BYTE port_num;//端口号
 BOOL flgUsed;
 unsigned char p_id[3];//与该端口绑定的污染物ID
 float port_maxval;
 float port_minval;	  //芯片提供的是0~5V,实际是1~5V是否需要负数?
 float port_offset;//偏移 
} AD_PORT; //AD

typedef struct {
 BYTE port_num;//端口号
 BOOL flgUsed;
 unsigned int binddevid;//与该端口绑定的设备ID
 unsigned int inval;//输入不敷出1-高电平,0-低
} IO_PORT;

typedef struct {
 BYTE port_num;//端口号
 BOOL flgUsed;
 unsigned int binddevid;//与该端口绑定的设备ID
 unsigned int outval;//输出1-高电平,0-低
} OUTPUT_PORT;

typedef struct {
 unsigned char p_id[3];//  污染物编号
 BOOL flgUsed;//使用标志
 unsigned int unit;//[6];//单位,查表获得  
 unsigned int p_name;//查表获得  
 float p_alarmup;//报警上限
 float p_alarmdown;//报警下限
 float p_up;// 上限,超过则为异常
 float p_down;//下限
 } POLLUTANT;

 typedef struct {
 	BOOL flgUsed; 
	unsigned int dev_id;
	BOOL flgCanControl;//是否受控
	unsigned char	support_p_id[3];//支持的污染物
	BYTE interfacetype;//接口类型0-AD,1-COM,2-DI,3-DO
	BYTE portnum;//端口号
 } DEV_INFO;//仪器

typedef struct {
	BYTE bHasFlow;
	BYTE bHasPH;
	BYTE bHasCOD;
	BYTE bHasMotor;
	BYTE bHasNH4;
	BYTE bHasTN;
	BYTE bHasTP;	
	BYTE bHasCR6;
} DEVINFO_SNAP;//仪器使用快照

typedef struct {
	unsigned int  log_no;      //有255种日志
	unsigned int type;//日志类型 0-仪器,1-
	//unsigned char log_desc[60];		//60个字节的日志描述,查表获得
} SYS_LOG_DICT;

typedef struct {
	unsigned char measuretime[8];		//采集时间yymmddhhmmss
	unsigned int  log_no;            //有255种日志
} SYS_LOG;

typedef struct {
 unsigned char p_id[3];//  污染物编号
 unsigned char measuretime[8];	//采集时间
 float val;   //对于开关量则需要转为整数
} MEASUREDATA_UNIT;//测量数据

/*
typedef struct {
 unsigned char measuretime[8];	//采集时间
 float val;   //对于开关量则需要转为整数
} DATA_UNIT;//数据元,用于表格显示和曲线显示
*/

typedef struct {
 unsigned char	 measuretime[8];
 unsigned char uintlen;	 //数组中有效数据
 MEASUREDATA_UNIT measuredata[10];//瞬时,累计,PH,COD,电机状态
 } MEASUREDATA;	//测量数据,针对水,气有不同的定义

typedef struct {
 unsigned char localip[4];
 unsigned char mask[4];
 unsigned char gate[4];
 unsigned char dns1[4];
 unsigned char dns2[4];
 unsigned char arp_addr[6];
 } NET_CFG;

 typedef struct {
 	BOOL flgUsed;
	BYTE REMOTE_COMM_TYPE;// 0 - GPRS透明传输 1 - IP
	BYTE REMOTE_COMM_PROTOCOL;// 0 - 伟创 1 - 国家 2 - 力合韶关 3 - 广西
 	unsigned char CENTER_IP[4];//IP
 } CENTER;
/*系统配置结构*/
/**注意:LPC2300中栈大小为640Byte, 所以把配置结构分为2个结构***/
/*系统配置结构*/
typedef struct {
 //站点信息
 unsigned int site_type;
 //unsigned char site_name[30]; 
 unsigned int area_id;
 unsigned int corp_id;
 unsigned int site_id;
 unsigned int site_timeout;//通信超时长度	
 unsigned int site_timeout_reconnect;//通信超时次数

 //4~20mA端口定义
 AD_PORT ad_port[12];
 //OUTPUT端口定义 
 OUTPUT_PORT out_port[4];
 //IO端口定义 
 IO_PORT io_port[8];
} _SITE_CONF; 

typedef struct {
 //串口定义
 COM_PORT com_port[5];
 //网络接口定义

⌨️ 快捷键说明

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