/********************************************************
*                                                                                                            
* 文 件 名： SwitchConfig.h   
* 版权说明： 北京交控科技有限公司 
* 创建时间： 2012-03-19
* 作    者： 联锁组
* 功能描述： 道岔配置数据头文件  
* 函数包括：
* 使用注意：
* 修改记录：   
*
********************************************************/ 

#ifndef _SWITCH_CONFIG_H_
#define _SWITCH_CONFIG_H_



/*道岔数量最大值*/
#define SWITCH_SUM_MAX                  ((UINT16)500)      /*定义道岔数量最大值*/
#define SWITCH_PHYSECID_SUM_MAX			((UINT16)5)		 /*道岔物理区段数量最大值*/

/*道岔类型*/
#define SWITCH_TYPE_SINGLE              ((UINT8)0x55)    /*单动道岔*/
#define SWITCH_TYPE_DOUBLE              ((UINT8)0xaa)    /*双动道岔*/


/*道岔引导总锁状态*/
#define SWITCH_LOCK_YINZONG_NO          ((UINT8)0x55)    /*未引导总锁*/
#define SWITCH_LOCK_YINZONG_YES         ((UINT8)0xaa)    /*引导总锁*/

/*道岔锁闭状态*/
#define SWITCH_LOCK_STATUS_NO			((UINT8)0x55)    /*未锁闭*/
#define SWITCH_LOCK_STATUS_DANSUO	    ((UINT8)0x5a)    /*单锁*/
#define SWITCH_LOCK_STATUS_PROTECT	    ((UINT8)0xa5)    /*防护锁闭*/
#define SWITCH_LOCK_STATUS_DAP	        ((UINT8)0xaa)    /*单锁且防护锁闭*/
#define SWITCH_PLOCKTYPE_AXISSEC	    ((UINT8)0x7)    /*被计轴区段防护锁闭*/
/*道岔锁闭逻辑状态(仅用于反馈)*/
#define SWITCH_LOCK_STATUS_DANSUO_NO	((UINT8)0x01)    /*未单锁*/
#define SWITCH_LOCK_STATUS_PROTECT_NO   ((UINT8)0x10)    /*未防护锁闭*/

/*道岔锁闭命令*/
#define SWITCH_LOCK_DANSUO_SET			((UINT8)0x01)    /*设置单锁*/
#define SWITCH_LOCK_DANSUO_CANCEL	    ((UINT8)0x02)    /*取消单锁*/
#define SWITCH_LOCK_PROTECT_SET	        ((UINT8)0x04)    /*设置防护锁闭*/
#define SWITCH_LOCK_PROTECT_CANCEL	    ((UINT8)0x08)    /*取消防护锁闭*/


/*道岔封锁状态*/
#define SWITCH_LOCK_FENGSUO_NO			((UINT8)0x55)    /*未封锁*/
#define SWITCH_LOCK_FENGSUO_YES			((UINT8)0xaa)    /*封锁*/

/*道岔位置状态*/
#define SWITCH_POSITION_DINGWEI			((UINT8)0x01)    /*道岔定位*/
#define SWITCH_POSITION_FANWEI			((UINT8)0x02)    /*道岔反位*/
#define SWITCH_POSITION_SIKAI	    	((UINT8)0x04)    /*道岔四开*/
#define SWITCH_POSITION_MOVE			((UINT8)0x08)    /*道岔移动*/
#define SWITCH_POSITION_JICHA			((UINT8)0x10)    /*道岔挤岔*/
#define SWITCH_POSITION_INVALID         ((UINT8)0xFF)    /*道岔位置无效*/
/* zt 删除单轨相关代码 2022-02-15 */
/*道岔驱动位置*/
#define SWITCH_DRIVE_POS_DINGWEI        ((UINT8)0x55)    /*道岔定位*/
#define SWITCH_DRIVE_POS_FANWEI         ((UINT8)0xaa)    /*道岔反位*/
#define SWITCH_DRIVE_POS_INVALID        ((UINT8)0xFF)    /*驱动道岔无效*/
/* zt 删除单轨相关代码 2022-02-15 */

/*OC道岔采集位置*/
#define OC_SWITCH_POSITION_DINGWEI		((UINT8)0x55)	/*oc道岔定位*/
#define OC_SWITCH_POSITION_FANWEI		((UINT8)0xaa)	/*oc道岔反位*/
#define OC_SWITCH_POSITION_SIKAI		((UINT8)0xcc)	/*oc道岔四开*/
#define OC_SWITCH_POSITION_MOVE		    ((UINT8)0x3c)	/*oc道岔移动*/
#define OC_SWITCH_POSITION_UNKNOW		((UINT8)0x33)	/*oc道岔未知*/

/*OC道岔驱动位置*/
#define		OC_SWITCH_DRIVE_POS_DINGWEI	((UINT16)0x5555)	/*道岔驱动定位*/
#define		OC_SWITCH_DRIVE_POS_FANWEI	((UINT16)0xaaaa)	/*道岔驱动反位*/
#define		OC_SWITCH_DRIVE_POS_KEEP	((UINT16)0x55aa)	/*道岔驱动位置保持*/

#define	OC_SWITCH_OTHER_BJ_STATE               ((UINT8)0xf6) /*OC转辙机其他报警（除了封连、开盖）状态（板卡状态）*/
#define	OC_SWITCH_OPEN_CAP_STATE               ((UINT8)0x01) /*OC转辙机开盖状态（板卡状态）*/

/*道岔驱动高峰期*/
#define SWIT_DRIV_PEAK_TIME_TRUE				((UINT8)0x55)		/*集中站有道岔处于道岔驱动高峰期*/
#define SWIT_DRIV_PEAK_TIME_FALSE				((UINT8)0xAA)		/*集中站没有道岔处于道岔驱动高峰期*/

/*道岔驱动状态*/
#define SWIT_DRIV_IDLE_TIME				((UINT8)0x01)		/*处于道岔驱动空闲期*/
#define SWIT_DRIV_WAIT_TIME				((UINT8)0x02)		/*处于道岔驱动等待期*/
#define SWIT_DRIV_PEAK_TIME				((UINT8)0x03)		/*处于道岔驱动高峰期*/
#define SWIT_DRIV_FLAT_TIME				((UINT8)0x04)		/*处于道岔驱动平缓期*/
/*道岔故障状态*/
#define SWITCH_FAULT_STATE_YES				((UINT8)0x55)		/*道岔故障*/
#define SWITCH_FAULT_STATE_NO				((UINT8)0xAA)		/*道岔未故障*/

/*道岔可绕状态*/
#define SWITCH_KERAO_STATE_YES      ((UINT8)0x55)		/*道岔不可绕*/
#define SWITCH_KERAO_STATE_NO       ((UINT8)0xAA)		/*道岔可绕*/
/* zt 删除单轨相关代码 2022-02-15 */

#define SWITCH_LAST_DRV_STAY_MAX_NUM ((UINT8)10)			/*道岔最近一次有效驱动位置延续最大周期数*/

#define SWITCH_MOVE_FAIL                (UINT8)0x55     /*道岔移动失败*/
#define SWITCH_USING_NORMAL                  (UINT8)0xaa     /*道岔移动正常*/

#define SWITCH_MAX_PROTECT_LOCKED_NUM				((UINT16)0x4)	/*被锁闭最大次数*/

#define SWITCH_PLOCKTYPE_DANSUO			((UINT8)0x1)	/*单锁*/
#define SWITCH_PLOCKTYPE_ROUTE			((UINT8)0x2)	/*被进路防护锁闭*/
#define SWITCH_PLOCKTYPE_OVERLAP		((UINT8)0x3)	/*被保护区段防护锁闭*/
#define SWITCH_PLOCKTYPE_NONROUTE		((UINT8)0x4)	/*被非进路防护锁闭*/
#define SWITCH_PLOCKTYPE_NOROUTE_NOOVERLAP_NONONROUTE	((UINT8)0x5) /*解除道岔防护锁闭*/
#define SWITCH_PLOCKTYPE_LOGROUTE	    ((UINT8)0x6)    /*被逻辑进路防护锁闭*/

#define SWITCH_OPER_NO_DANCAO			((UINT8)0x55)	/*非单操操作：进路锁闭、保护区段锁闭、非进路锁闭、自动进路办理*/
#define SWITCH_OPER_DANCAO				((UINT8)0xaa)	/*单操操作*/
#define SWITCH_LOG_TRACK_MAX_NUM            ((UINT16)10)      /*道岔关联的逻辑区段最大数量*/

#define	SWITCH_HOST_SWITCH_MAX_NUM			((UINT16)17)		/*防护道岔对应主体道岔最大数量*/
#define	SWITCH_PROTECT_SWITCH_MAX_NUM		((UINT16)17)		/*防护道岔对应主体道岔最大数量*/

#define SWITCH_BYPASS_YES            ((UINT8)0xaa) /*联络线道岔旁路*/
#define SWITCH_BYPASS_NO             ((UINT8)0x55) /*联络线道岔未旁路*/
#define CONNECT_SWITCH_DANSUO_YES            ((UINT8)0xaa) /*联络线道岔单锁*/
#define CONNECT_SWITCH_DANSUO_NO             ((UINT8)0x55) /*联络线道岔未单锁*/

#define CI_ATS_SW_BYPASS_NOCANCEL_YES			((UINT8)0xaa)	/*已经向ATS发送过道岔旁路未及时取消报警*/
#define CI_ATS_SW_BYPASS_NOCANCEL_NO			((UINT8)0x55)	/*未向ATS发送过道岔旁路未及时取消报警*/


#define SWITCH_POSITION_DYNAMIC_JICHA			((UINT8)0x55)    /*道岔动态红闪*/
#define SWITCH_POSITION_SUDDEN_JICHA			((UINT8)0xaa)    /*道岔静态红闪*/

#define SWITCH_DRIVED_FLAG_YES			((UINT8)0x55)    /*道岔驱动过*/
#define SWITCH_DRIVED_FLAG_NO			((UINT8)0xaa)    /*道岔未驱动过*/

/*道岔征用状态*/
#define SWITCH_USING_NO           ((UINT8)0x11)    /*未征用*/
#define SWITCH_USING_YES          ((UINT8)0x22)    /*征用*/
#define SWITCH_USING_APPLY        ((UINT8)0x44)    /*申请征用*/
#define SWITCH_USING_CANCEL       ((UINT8)0x88)    /*申请取消征用*/

#define COLLTOLERATE_CYCNUM    2U   /*采集容忍周期数*/

#define SEND_CIM_COLLTOLERATE_DW   0x55u  /*定位波动*/
#define SEND_CIM_COLLTOLERATE_FW   0xAAu  /*反位波动*/
#define SEND_CIM_COLLTOLERATE_NO   0xffu  /*无波动*/

#endif

