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

📄 ffpublicdefinefty.h.bak

📁 采用LPC的芯片做的气体排放检测,包括气体成分分析,数据的处理,数据传输给工作站.
💻 BAK
字号:
//FFPublicDefine.h
#ifndef __FF_PUBLIC_DEFINE_FTY_H__
#define __FF_PUBLIC_DEFINE_FTY_H__


////////    协议中所有状态号定义,具体仪器要进行取舍 /////////
#define		STATUS_COLD			(unsigned char)'C'		
#define		STATUS_WARM_UP		(unsigned char)'H'
#define		STATUS_WAIT_CMD		(unsigned char)'S'
#define		STATUS_INIT			(unsigned char)'I'
#define		STATUS_STAND_BY		(unsigned char)'W'
#define		STATUS_TESTING		(unsigned char)'T'
#define		STATUS_DATA_READY	(unsigned char)'D'
#define		STATUS_FINISH_TEST		(unsigned char)'U'
#define		STATUS_CALIBRATE		(unsigned char)'A'
#define		STATUS_SELF_TEST		(unsigned char)'V'
#define		STATUS_TEST_FAIL		(unsigned char)'F'
#define		STATUS_ERROR			(unsigned char)'E'
////////   协议中规定响应上位机状态的指令  /////////
#define		RESPONSE_INIT_DONE			(unsigned char)'I'
#define		RESPONSE_SELF_TEST_DONE		(unsigned char)'V'
#define		RESPONSE_TEST_DONE			(unsigned char)'T'
#define		RESPONSE_UNINIT_DONE		(unsigned char)'U'
#define		RESPONSE_DATA				(unsigned char)'D'
#define		RESPONSE_RTDATA				(unsigned char)'G'
#define		RESPONSE_ACKNOWLEDGE		(unsigned char)'A'
#define		RESPONSE_DO_NOTHING			(unsigned char)'X'
#define		RESPONSE_FRAME_ERROR		(unsigned char)'Z'
#define		RESPONSE_STATUS				(unsigned char)'S'
#define		RESPONSE_MESSAGE			(unsigned char)'M'
////////         子状态号定义        /////////
#define		SUB_STATUS_0		(unsigned char)0
#define		SUB_STATUS_1		(unsigned char)0
#define		SUB_STATUS_2		(unsigned char)0
#define		SUB_STATUS_3		(unsigned char)0
////////    上位机命令号定义        /////////
#define		CMD_PC_GET_STATUS	(unsigned char)'S'
#define		CMD_PC_SELF_TEST	(unsigned char)'V'
#define		CMD_PC_RESET		(unsigned char)'R'
#define		CMD_PC_INIT			(unsigned char)'I'
#define		CMD_PC_START_TEST	(unsigned char)'T'
#define		CMD_PC_GET_DATA		(unsigned char)'D'
#define		CMD_PC_GET_RTDATA	(unsigned char)'G'
#define		CMD_PC_FINISH_TEST	(unsigned char)'U'
////////	判断数值有效时,CO2的限值   ////////
#define STEAD_CO2_MIN	70// CO2 的值只有大于 8.0%才可能认为数据有效
#define	SPEED_SPAN		400
////////数据帧头,帧尾定义/////////////////
#define		FRAME_FRONT_BYTE	(unsigned char)0x02
#define		FRAME_END_BYTE		(unsigned char)0x03
///////  FTY-100 命令定义  ////////////////
#define ERROR_CODE					    0xff //无效命令
#define GET_STATUS						0x01 //取状态
#define GET_TEST_DATA					0x02 //取测量值
#define GET_SAFE_DATA					0x03 //取稳态值
#define GET_SPEEDUP_DATA				0x04 //取加速值
#define REVISE							0x05 //请求线性修正
#define CHANGE_TO_TEST_PAGE				0x06 //请求转换到测量屏
#define CHANGE_TO_SAFE_PAGE				0x07 //请求转换到稳态屏
#define CHANGE_TO_SPEEDUP_PAGE			0x08 //请求转换到加速屏
#define BEGIN_STOP_SAFE_TEST			0x09 //请求开始或停止稳态测量
#define SPEEDUP_TOUCH_OFF				0x0b //请求进行一次加速触发(手动方式)
#define CLEAR_SPEEDUP_DATA				0x0c //请求清除加速数据
#define CHANGE_SPEEDUP_MODE				0x0d //请求切换加速方式(手动方式与自动方式间切换)
#define GET_LAST_MAIN_SPEEDUP_DATA		0x0e //请求取最后一次加速主要数据
#define GET_LAST_SPEEDUP_LINE			0x0f //请求取最近一次加速曲线数据

#define FBY_NOTFINISHED			0		//现在不能完成操作,请等待一段时间后再试
#define FBY_FAIL				-1   //操作失败
#define ERR_CMD_TIMEOUT			-2	//命令应答超时
#define ERR_ADDR_TIMEOUT		-3	//地址应答超时	
#define ERR_NOT_OPENED			-4	//端口没有打开
#define ERR_ADDR_RESPONSION		-5	//地址应答错误
#define ERR_CMD_RESPONSION		-8	//命令应答错误
#define ERR_REF_ERR				-10	//错误的参数
#define ERR_ADDUP				-16	//累加和校验错误
#define ERR_CMD_ERR				-20	//无效的命令
#define FBY_SUCCESS				 1		//成功
#define ERR_NO_SPEEDUP_DATA		-18  //没有加速值
#define ERR_PROCESS_OF_SPEEDUP  -19  //正在加速
////////	状态码 1 描述		/////////////////
#define		DEV_IN_STATIC_PAGE	(unsigned char)0x01
#define		DEV_IN_WARM_UP_PAGE	(unsigned char)0x02
#define		DEV_IN_TEST_PAGE	(unsigned char)0x04
#define		DEV_IN_ACCELE_PAGE	(unsigned char)0x08
////////  本系统用到的 FTY-100 通讯指令  ////////
enum	EnuFTYCmdCode
{
	enuFTYCmd_GetStatus		=1,
	enuFTYCmd_GetTestData,//=2
	enuFTYCmd_GetAcceleData	=4,
	enuFTYCmd_LinearCalibrate,
	enuFTYCmd_TurnToTest	 ,
	enuFTYCmd_TurnToAccele	=8,
	enuFTYCmd_ClearAccele	=12,
	enuFTYCmd_LastAcceleData=14
};		
enum	EnuMsgCode
{
	enuMsg_ReadyForCalibrate='1',
	enuMsg_Calibrating,			//'2'
	enuMsg_InsertAndKeepIdle,	//'3'
	enuMsg_Accelebrate,			//'4'
	enuMsg_OneTestDone			//'5'	
};
enum	EnuReplyHostCode
{
	enuReplyHost_None,
	enuReplyHost_DoNothing,	//1
	enuReplyHost_CanDo,		//2
	enuReplyHost_FrameError,//3
	enuReplyHost_InitDone,	//4
	enuReplyHost_UninitDone,//5
	enuReplyHost_Status,
	enuReplyHost_Data,
	enuReplyHost_RTData,
	enuReplyHost_Msg,
	enuReplyHost_Unkown
};
//const unsigned char DerectReplyCode[6]={0,'X','A','Z','I','U'};

enum	EnuUpHostCmd
{
	enuUpHostCmd_NoCmd,
	enuUpHostCmd_Init, 
	enuUpHostCmd_Test,
	enuUpHostCmd_FinishTest,
	enuUpHostCmd_Reset,
	enuUpHostCmd_SelfTest
//	enuUpHostCmd_Data,
//	enuUpHostCmd_SelfTest
};
//系统的错误代码
enum	EnumMyErrorCode
{
	enuMyError_NoError,
	enuMyError_ConnetMac,		//仪器通讯错误
	enuMyError_GetTestError,	//取测量值出错
	enuMyError_GetAcceleError,	//取加速值出错
	enuMyError_GetStatusError,
	enuMyError_5
};
//上位机控制系统指令信息
typedef struct tagUpHostCmdInfo	
{
	unsigned char	ucCmdCode;					//指令代码	
	unsigned char	ucRawCmdPara;				//指令参数
	unsigned int	nRecTime;					//接收到指令的时间
}_UP_HOST_CMD_INFO;
//上位机规定的仪器数据格式
typedef	struct tagDevFTY100Data
{
	short	wN;			//
	short 	wK;			//
	unsigned char	ucAcceleNum;
	unsigned char	ucTube_T;
}_DEV_FTY100_DATA;
//怠速数据结构
//半字与字节联合体
typedef union  BYTE_WORD{
		unsigned char Bdata[2];
		unsigned short i;
	}_union_BYTE_WORD;

//#include	"config.h"


#include "StdAfx.h"
#include "FFSerialExport.h"
#include "PortObj.h"
#include "FTY100Manage.h"
#include "UpHostComm.h"


#endif	//__FF_PUBLIC_DEFINE_FTY_H__

⌨️ 快捷键说明

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