/********************************************************
*                                                                                                            
* 文 件 名： CiSystemDefine.h   
* 版权说明： 北京交控科技有限公司 
* 创建时间： 2012-05-18
* 作    者： 联锁组
* 功能描述： 系统参数定义文件  
* 函数包括： 
* 使用注意：
* 修改记录：   
*
********************************************************/ 

#ifndef _CI_SYSTEM_DEFINE_H_
#define _CI_SYSTEM_DEFINE_H_

/*CI站数目最大值*/
#define CI_SUM_MAX      ((UINT16)25)      /*定义CI站数目最大值*/
#define CI_COM_CI_MAX_NUM  ((UINT16)5) 	/*相连联锁通信最大数据*/


/*系统类型*/
#define CI_SYSTEM_TYPE_CI   	  ((UINT8)0x3C)    /*CI*/
#define CI_SYSTEM_TYPE_ZC   	  ((UINT8)0x1E)    /*ZC*/
#define CI_SYSTEM_TYPE_ATS  	  ((UINT8)0x03)    /*ATS*/ 
#define CI_SYSTEM_TYPE_TMC		  ((UINT8)0x2B)    /*TMC*/
#define CI_SYSTEM_TYPE_XIANDI	  ((UINT8)0x4d)    /*现地*/
#define CI_SYSTEM_TYPE_LEU  	  ((UINT8)0x5e)    /*LEU*/
#define CI_SYSTEM_TYPE_VOBC 	  ((UINT8)0x14)    /*VOBC*/
#define CI_SYSTEM_TYPE_VOBC_BACKUP ((UINT8)0x13)	   /*备用通道VOBC*/
#define CI_SYSTEM_TYPE_PLATFORM   ((UINT8)0x9f)    /*PSD*/
#define CI_SYSTEM_TYPE_PSC        ((UINT8)0x61)    /*PSC*/
#define CI_SYSTEM_TYPE_OC		  ((UINT8)0x64)    /*增加设备类型OC*/
#define CI_SYSTEM_TYPE_AXIS		  ((UINT8)0xa0)    /*计轴系统*/
#define CI_SYSTEM_TYPE_ATS_INTERFACE  	  ((UINT8)0x7d)    /*ATS*/ 
#define CI_SYSTEM_TYPE_ITE 	      ((UINT8)0x2F)    /*ITE*/

/*上电锁闭标志*/
#define CI_START_LOCK_YES   ((UINT8)0xAA)     /*上电锁闭*/
#define CI_START_LOCK_NO    ((UINT8)0x55)     /*上电解锁*/
#define CI_START_LOCK_ERROR ((UINT8)0xFF)     /*上电解锁失败*/

/*临时限速取消按钮是否生效标志*/
#define CI_LINSHIXIANSU_CANCEL_BUTTON_VALID      ((UINT8)0xAA) /*临时限速取消按钮生效*/
#define CI_LINSHIXIANSU_CANCEL_BUTTON_INVALID    ((UINT8)0x55) /*临时限速取消按钮无效*/

/*是否进行过人工取消临时限速的标志*/
#define LABOUR_CANCEL_LSXS_DONE_YES      ((UINT8)0xAA) /*进行过人工取消（在与ZC通信故障的情况下）*/
#define LABOUR_CANCEL_LSXS_DONE_NO       ((UINT8)0x55) /*未进行过人工取消（在与ZC通信故障的情况下）*/


/*人工取消临时限速状态迁移*/
#define LINSHIXIANSU_COMM_GOOD_STATE                   ((UINT8)0x00)               /*CI与ZC通信良好状态*/
#define LINSHIXIANSU_COMM_BAD_STATE                    ((UINT8)0x01)               /*CI与ZC通信故障状态*/
#define LINSHIXIANSU_LABOURCANCLE_YES_STATE            ((UINT8)0x02)               /*已进行人工取消状态*/

/*上电全站封锁标志*/
#define CI_START_FLOCK_YES   ((UINT8)0xAA)     /*全站封锁*/
#define CI_START_FLOCK_NO    ((UINT8)0x55)     /*全站解封*/
#define CI_START_FLOCK_ERROR ((UINT8)0xFF)     /*全站解封失败*/

/*全站亮灯标志*/
#define CI_ALL_SIGNAL_BRIGHT_YES   ((UINT8)0xAA)     /*全站亮灯有效*/
#define CI_ALL_SIGNAL_BRIGHT_NO    ((UINT8)0x55)     /*全站亮灯无效*/

/*全站引导总锁标志*/
#define CI_ALL_SWITCH_YLOCK_YES   ((UINT8)0xAA)     /*全站引导总锁有效*/
#define CI_ALL_SWITCH_YLOCK_NO    ((UINT8)0x55)     /*全站引导总锁无效*/

/*计轴总复位标志*/
#define CI_PHYSEC_GENERAL_RESET_YES  ((UINT8)0xAA)     /*计轴总复位标志有效*/
#define CI_PHYSEC_GENERAL_RESET_NO   ((UINT8)0x55)     /*计轴总复位标志无效*/

/* 限速确认标志 */
#define CI_TSR_SURE_YES   ((UINT8)0xAA)     /*已确认*/
#define CI_TSR_SURE_NO    ((UINT8)0x55)     /*未确认*/

/*系统方向*/
#define CI_SYSTEM_DIRECTION_UP      ((UINT8)0x55)    /*上行*/
#define CI_SYSTEM_DIRECTION_DOWN    ((UINT8)0xAA)    /*下行*/
#define CI_SYSTEM_DIRECTION_NONE    ((UINT8)0xFF)   /*无效*/

/*设备类型*/
#define CI_DEVICE_TYPE_SWITCH         ((UINT8)0x01)     /*道岔*/
#define CI_DEVICE_TYPE_SIGNAL         ((UINT8)0x02)     /*信号机*/
#define CI_DEVICE_TYPE_PHYSEC         ((UINT8)0x03)     /*物理区段*/
#define CI_DEVICE_TYPE_LOGICSEC       ((UINT8)0x04)     /*逻辑区段*/
#define CI_DEVICE_TYPE_OVERLAP        ((UINT8)0x05)     /*保护区段*/
#define CI_DEVICE_TYPE_ROUTE          ((UINT8)0x06)     /*进路*/
#define CI_DEVICE_TYPE_PLATFORM       ((UINT8)0x07)     /*站台*/
#define CI_DEVICE_TYPE_AXISSEC        ((UINT8)0x08)     /*计轴区段*/
#define CI_DEVICE_TYPE_ESB            ((UINT8)0x09)     /*站台紧急关闭按钮*/
#define CI_DEVICE_TYPE_PSD_EXCEPT_OPEN  ((UINT8)0x0A)   /*站台屏蔽门（异常打开）*/
#define CI_DEVICE_TYPE_PSD            ((UINT8)0x10)     /*站台屏蔽门*/
#define CI_DEVICE_TYPE_STOP           ((UINT8)0x11)     /*列车停稳信息*/
#define CI_DEVICE_TYPE_RELAY          ((UINT8)0x12)     /*继电器*/
#define CI_DEVICE_TYPE_GROUP_AUTO_ROUTE ((UINT8)0x13)     /*组合自动进路*/
#define CI_DEVICE_TYPE_CONNECT_SWITCH ((UINT8)0x14)    /*联络线道岔*/
#define CI_DEVICE_TYPE_NONROUTE       ((UINT8)0xA1)     /*非进路*/
#define CI_DEVICE_TYPE_AUTORETURN     ((UINT8)0xA2)     /*自动折返*/
#define CI_DEVICE_TYPE_AUTOROUTE      ((UINT8)0xA3)     /*自动通过*/
#define CI_DEVICE_TYPE_LONGROUTE      ((UINT8)0xA4)     /*长调进路*/
#define CI_DEVICE_TYPE_SPKS		      ((UINT8)0xA5)	   /* SPKS按钮 */
#define CI_DEVICE_TYPE_GARAGEDOOR     ((UINT8)0xA6)     /*车库门*/
#define CI_DEVICE_TYPE_WASHMACHINE    ((UINT8)0xA7)	   /* 洗车机 */
#define CI_DEVICE_TYPE_ALLAUTORETURN  ((UINT8)0xA8)     /*全自动折返*/
#define CI_DEVICE_TYPE_OTHER_CI	      ((UINT8)0xA9)	   /* 其他联锁条件 */
#define CI_DEVICE_TYPE_FLOODGATE      ((UINT8)0xB0)     /*防淹门*/
#define CI_DEVICE_TYPE_LEU			  ((UINT8)0xB1)     /*LEU*/
#define CI_DEVICE_TYPE_COMM_VOBC	  ((UINT8)0xB2)	/*与VOBC通信*/
#define CI_DEVICE_TYPE_WASH_LINE	  ((UINT8)0xB3)	/*洗车线*/
#define	CI_DEVICE_TYPE_TAJ			  ((UINT8)0xB4)	/*调车同意按钮继电器*/
#define CI_DEVICE_TYPE_CMDRPLY_VOBC	  ((UINT8)0xB5)	/*VOBC 命令回复*/
#define CI_DEVICE_TYPE_TSR_VOBC		  ((UINT8)0xB6)	/*VOBC 临时限速*/
#define CI_DEVICE_TYPE_SLEEP_VOBC	  ((UINT8)0xB7)	/*VOBC 睡眠列车*/
#define CI_DEVICE_TYPE_FAULT_VOBC	  ((UINT8)0xB8)	/*VOBC 故障列车*/
#define CI_DEVICE_TYPE_CUTOFF_POINT	  ((UINT8)0xB9)	/*分界点*/
#define	CI_DEVICE_TYPE_OC_BOARD		  ((UINT8)0xBA)	/*OC 板卡*/
#define	CI_DEVICE_TYPE_RES_ALIGNMENT  ((UINT8)0xBB)	/*资源对顶点*/
#define	CI_DEVICE_TYPE_WASH_ALLOW_PASS ((UINT8)0xBC)	/*洗车同意通过*/
#define CI_DEVICE_TYPE_TRAIN_VOBC	  ((UINT8)0xBD)	/*VOBC 列车*/
#define CI_DEVICE_TYPE_BACKUP_VOBC	  ((UINT8)0xBE)	/*后备VOBC列车*/
#define CI_DEVICE_TYPE_ZHAOCHA		  ((UINT8)0xC0)		/*照查*/


#define CI_DEVICE_TYPE_CMD				((UINT8)0x0B)	/*命令*/

/*联锁类型*/
#define CI_TYPE_ZX                ((UINT8)0x01)      /*正线联锁*/
#define CI_TYPE_CLD               ((UINT8)0x04)      /*车辆段联锁*/
#define CI_TYPE_SCX				  ((UINT8)0x02)		/* 试车线 */
#define CI_TYPE_TCC 			  ((UINT8)0x03)		/* 停车场 */
/*时间参数*/
#define CI_TIME_NO                ((UINT8)0x01)      /*未计时*/
#define CI_TIME_IN                ((UINT8)0x02)      /*未超时*/ 
#define CI_TIME_OUT               ((UINT8)0x03)      /*超时*/

/*宕机标志*/
#define CI_OVER_NO                ((UINT8)0x55)      /*未宕机*/
#define CI_OVER_YES               ((UINT8)0xaa)      /*宕机*/

/* TIOC免筛区域有效性 */
#define TIOC_WLSCTEEN_VALID		  ((UINT8)0xAA)		/* 有效 */
#define TIOC_WLSCTEEN_UNVALID 	  ((UINT8)0x55)		/* 无效 */

/*****返回值定义*****/

/*----------Common----------*/
#define CI_ERROR               ((UINT8)0x00)	    /*函数返回失败*/
#define CI_SUCCESS             ((UINT8)0x01)	    /*函数返回成功*/
#define CI_ROUTE_RECOVER_ERR	((UINT8)0x03)    /*联锁条件检查失败，但是错误均是恢复可重开的联锁条件，目前只有三种，PSD、SPKS、扣车*/
#define CI_UNLOCK_OVERLAP_REQURE	((UINT8)0x02)  /*CT车倒计时结束后，向车申请保护区段解锁*/
#define CI_CHECK_LEN_ERROR		((UINT8)0x4)		/*长度校验错误*/
#define CI_ERROR_QXZC           ((UINT8)0x05)    /*总人解引导进路时，由于取消照查继电器落下导致的RouteExceptLastSecOccuClearCheck函数检查失败*/
#define CI_OVERLAP_OCC_UNLOCK	((UINT8)0x06)  /*保护区段占用执行特殊解锁*/

/*----------Common----------*/
#define CI_TRUE               ((UINT8)0x55)	    /*函数返回成功*/
#define CI_FALSE             ((UINT8)0xAA)	    /*函数返回失败*/

/*游标递增值*/
#define CURSOR_INCREACING_2	   ((UINT8)0x02)		/*递增2*/
#define CURSOR_INCREACING_4	   ((UINT8)0x04)		/*递增4*/

/*----------Manage----------*/
/*函数 LockxxxRouteProc, LockxxxRouteLogicProcess*/
#define RETURN_LOCK_ERR_SWITPOS               ((UINT8)0x22)	    /*进路选排道岔位置错误*/

#define RETURN_LOCK_ERR_WAIT_SWCHECK          ((UINT8)0x2f)	    /*进路选排等待相邻联锁反馈道岔检查结果*/

/*函数 PhySecDelayUnlockLogicProcess*/
#define RETURN_DELAYUNLOCK_ERR_TIMECOUNT       ((UINT8)0x23)	    /*进路需关闭信号未关闭*/

/*函数 OpenxxxRouteLogicProcess*/
#define RETURN_OPEN_ERR_SIGOPEN                ((UINT8)0x24)	    /*进路需关闭信号未关闭*/

#define RETURN_OPEN_ERR_NEEDOPEN				((UINT8)0x2d)	/*进路需开放，未开放........*/

#define RETURN_DCTY_NOT_SATISIFY				((UINT8)0x2e)	/*调车同意不满足........*/

#define RETURN_AUTOLOCK_ERR_EXCEPT             ((UINT8)0x25)	    /*进路区段未开始解锁*/

#define RETURN_LEADKEEP_SUCC_SETTIME           ((UINT8)0x26)	    /*引导信号开放设置故障延时*/

#define RETURN_FIRSTXUANPAI_ERR_WAIT           ((UINT8)0x27)	    /*进路征用等待*/

#define RETURN_AUTOSIGNAL_THRSEC_CLEAR         ((UINT8)0x28)    /*自动信号触发轨未占用*/

#define RELAY_STATE_WAITE                      ((UINT8)0x29)     /*继电器需落下为落下*/

#define RETURN_FIRSTXUANPAI_QUXIAOAUTOSIG_WAIT ((UINT8)0x2a)     /*进路选排等待取消自动信号进路*/
#define RETURN_GRGDOOR_CLSCHK_WAITALLOW		   ((UINT8)0x2b)		/* 存在关联区段占用，等待ZC或IVOC回复允许关门命令 */
#define ROUTE_DELAY_UNLOCK 		               ((UINT8)0x2c)		/* 总人解引导进路后无驶入标志且进路内方最后一个区段空闲，设置延时解锁 */
#define RES_CHECK_STATE_WAITE                  ((UINT8)0x2d)        /*资源检查，本端继电器落下等待*/
#define RETURN_WAIT_SWITCH_USING               ((UINT8)0x30)	    /*等待道岔征用*/
#define RETURN_WAIT_SWITCH_CHECK               ((UINT8)0x31)	    /*等待道岔检查*/

#define RETURN_GRARAGEDOOR_WAIT_IVOC           ((UINT8)0x55)		/* 车库门关闭检查：未收到IVOC车库门关闭确认信息 */

/*打印日志缓冲最大值*/
#define RECORD_BUF_MAX 10000U

/*UDP传输日志单包最大值最大值*/
#define UDPSEND_BUF_MAX 10000

/*发送ATS、现地应用数据帧类型*/
#define CI_ATS_STATION_FRAME        ((UINT8)0x71)   /*联锁发送站场状态帧*/
#define CI_ATS_DEVICE_STATE_FRAME   ((UINT8)0x72)   /*联锁发送设备状态帧*/

/* 站控模式 */
#define CI_MODE_ATS				((UINT8)0xaa)	/* 中控 */
#define CI_MODE_CONSTRA_LOCAL	((UINT8)0x55)	/* 强制站控 */
#define CI_MODE_CONSOLE			((UINT8)0x71)	/* 控制台 */
#define CI_MODE_CI_LOCAL		((UINT8)0xff)	/* 联锁控模式 */
#define CI_MODE_APPLAY_LOCAL	((UINT8)0xBB)	/* 申请站控 */

/* 权限临时限速 */
#define CI_ALL_TSR_VALID				((UINT8)0x55)	/* 有效 */
#define CI_ALL_TSR_UNVALID				((UINT8)0xAA)	/* 无效 */

/*全线雨雪模式命令*/
#define CI_ALL_SNOW_VALID		((UINT8)0x55) /*全线雨雪模式命令有效*/
#define CI_ALL_SNOW_UNVALID		((UINT8)0xAA) /*全线雨雪模式命令无效*/

/*湿轨模式等级*/
#define CI_SNOW_LEVEL_DEFAULT		((UINT8)0x00) /*默认值（非湿轨/雨雪模式或为雨雪模式）*/
#define CI_SNOW_LEVEL_ONE		    ((UINT8)0x01) /*湿轨一级*/
#define CI_SNOW_LEVEL_TWO		    ((UINT8)0x02) /*湿轨二级*/

/*全线雨雪模式命令*/
#define CI_ITE_LINE_CUT_VALID		((UINT8)0x55) /*切除ITE*/
#define CI_ITE_LINE_CUT_INVALID		((UINT8)0xAA) /*使用ITE*/
#define CI_ITE_LINE_CUT_DEFAULT		((UINT8)0xFF) /*默认值*/

/*全线临时限速*/
#define CI_ALL_LINE_TSR_VALID	((UINT8)0x55) /*全线临时限速有效*/
#define CI_ALL_LINE_TSR_UNVALID	((UINT8)0xAA) /*全线临时限速无效*/

/* 试车线状态 */
#define CI_TRAIN_TEST_OFF		((UINT8)0xFF)	/* 非试车中 ,试车结束后采集到,TYSJ */
#define CI_TRAIN_TEST_START		((UINT8)0x01)	/* 按下试车请求按钮 */
#define CI_TRAIN_TEST_ON		((UINT8)0x02)	/* 试车中，即采集到同意试车继电器吸起 */
#define CI_TRAIN_TEST_STOP		((UINT8)0x03)	/* 结束试车，取消试车请求按钮 */

/*试车线与车辆段采用通信接口时试车相关设备ID及状态*/
#define COMM_TRAIN_TEST_SQAJ_SCX	((UINT8)0x01)	/*试车线试车请求设备，输出，对应继电器接口的SQAJ继电器*/
#define COMM_TRAIN_TEST_YSKJ_SCX	((UINT8)0x02)	/*试车线同意试车设备，采集，对应继电器接口的TSKJ继电器*/
#define COMM_TRAIN_TEST_SQJ_CLD		((UINT8)0x03)	/*车辆段试车请求设备，采集，对应继电器接口的SQAJ继电器*/
#define COMM_TRAIN_TEST_TYSJ_CLD	((UINT8)0x04)	/*车辆段同意试车设备，输出，对应继电器接口的TYSJ继电器*/

#define COMM_TRAIN_TEST_DEV_STATE_VALID		((UINT8)0x55)	/*设备状态有效*/
#define COMM_TRAIN_TEST_DEV_STATE_INVALID	((UINT8)0xAA)	/*设备状态无效*/

#define VOBC_SUM_MAX 255U /*由于设备ID为1个字节，最大校验id小于255*/
#define VOBC_BACKUP_SUM_MAX 256U /*目前后备通道VOBC的数量最多255个*/

#define ITE_SUM_MAX              ((UINT8)VOBC_SUM_MAX)   /*线上ITE数量最大值*/
#define VOBC_INC_ITE_SUM_MAX     ((UINT16)2U)             /*VOBC包含的ITE数量最大值*/

#define CI_TRADITION_RAILWAY	((UINT8)0x55)   /*城市轨道交通*/
/* zt 删除单轨相关代码 2022-02-15 */

/*自动触发进路办理标志*/
#define AUTO_TRIGGER_SET_YES	((UINT8)0x55)   /*设置自动触发标志*/
#define AUTO_TRIGGER_SET_NO		((UINT8)0xAA)   /*未设置自动触发标志*/

#define ZC_SUM_MAX				((UINT16)15) /*与CI通信的ZC ID最大值，暂定为15*/
#define TMC_SUM_MAX				((UINT16)15) /*与TIOC通信的TMC ID最大值，暂定为15*/

/*JKJ采集落下之后认为有效的周期数*/
#define JKJ_REYLAY_VALID_CYCLE_NUM                   ((UINT16)10)        /*JKJ采集落下之后认为有效的周期数*/
#define JKJ_REYLAY_INVALID              ((UINT8)0x55)      /*JKJ应急盘无效*/
#define JKJ_REYLAY_VALID                ((UINT8)0xaa)      /*JKJ应急盘有效*/

/*ZFWJ采集吸起之后报警计轴总复位继电器混线有效的周期数*/
#define ZFWJ_REYLAY_VALID_CYCLE_NUM                   ((UINT32)3)        /*ZFWJ采集吸起之后认为有效的周期数*/

#define OC_SUM_MAX ((UINT16)100) /*与CI通信的OC ID最大值*/
#define AXLE_SUM_MAX ((UINT16)100) /*与CI通信的计轴系统 ID最大值*/

#define  TIOCFS_VERSION_LENGTH      4U                /*版本号长度*/

#define OVERLAPCILOCK_YES		    (UINT8)(0xaa)	/*保护区段由联锁锁闭标志设置*/
#define OVERLAPCILOCK_NO			(UINT8)(0x55)	/*保护区段不由联锁锁闭*/

/*中央联锁工作站或现地工作站获取控制权标志；*/
#define CONTRAL_POWER_NO              ((UINT8)0x55)/*无控制权或交权状态*/
#define CONTRAL_POWER_YES             ((UINT8)0xaa)/*有控制权*/

/*联锁与计轴系统通信的最大数量*/
#define CI_TRAINSMIT_AXIS_MAX_NUM                   ((UINT8)3)        /*联锁与计轴系统通信的最大数量*/

/*联锁与联锁系统通信的最大数量*/
#define CI_TRAINSMIT_CI_MAX_NUM                   ((UINT8)6)        /*联锁与联锁系统通信的最大数量*/

/*联锁与OC系统通信的最大数量*/
#define CI_TRAINSMIT_OC_MAX_NUM                   ((UINT8)10)        /*联锁与OC系统通信的最大数量*/

#define OVERLAP_ROUTE_FLAG_YES   0xAAU /*标志存在*/
#define OVERLAP_ROUTE_FLAG_NO    0x55U  /*标志不存在*/

/*LEU向ATS报警的标志*/
#define LEU_TO_ATS_ERRORFLAG_YES	0xAAU	/*当周期收到LEU数据需要向ATS报警*/
#define LEU_TO_ATS_ERRORFLAG_NO		0x55U	/*当周期收到LEU数据无需向ATS报警*/

/*本地雨雪模式命令*/
#define CI_LOCAL_SNOW_UNVALID		((UINT8)0x55) /*本地雨雪模式命令无效*/
#define CI_LOCAL_SNOW_VALID	((UINT8)0xAA) /*本地雨雪模式命令有效*/

#endif
			
