/************************************************************************
*
* 文件名   ：  dquMaskInit.h
* 版权说明 ：  北京交控科技有限公司 
* 版本号   ：  1.0
* 创建时间 ：  2011.12.27
* 作者     ：  研发中心软件部
* 功能描述 ：   码位初始化定义
* 使用注意 ： 
* 修改记录 ：   由于新增跳跃锁闭相关码位，CI-ZC计轴区段码位字节长度由20变为26，Modified By RenjuWu，20151015  
*
************************************************************************/
#ifndef DQU_MASK_INIT
#define DQU_MASK_INIT
 
#include "dquCIInit.h"

/*****
******CI到LEU码位表解析
********/
/*定义CI-LEU码位表单ID*/
#define CI_LEU_MASK_TYPE       ((UINT32)0xB2)
#define CI_LEU_SWITCH_MASK_ID  ((UINT32)1)       /*CI-ZC道岔码位*/
#define CI_LEU_SWITCH_MASK_LEN		((UINT32)8)      /*CI-ZC道岔码位字节长度--1行长度*/
#define CI_LEU_PSD_MASK_ID			((UINT32)2)       /*CI-LEU屏蔽门码位*/
#define CI_LEU_PSD_MASK_LEN			((UINT32)6)      /*CI-LEU屏蔽门码位字节长度--1行长度*/
#define CI_LEU_ROUTE_MASK_ID		((UINT32)3)       /*CI-LEU进路码位*/
#define CI_LEU_ROUTE_MASK_LEN		((UINT32)6)      /*CI-LEU进路码位字节长度--1行长度*/
#define CI_LEU_OVER_LAP_MASK_ID			((UINT32)4)       /*CI-LEU保护区段码位*/
#define CI_LEU_OVER_LAP_MASK_LEN		((UINT32)6)      /*CI-LEU保护区段码位字节长度--1行长度*/
#define CI_LEU_SIGNAL_MASK_ID			((UINT32)5)      /*CI-LEU信号机码位*/
#define CI_LEU_SIGNAL_MASK_LEN			((UINT32)6)      /*CI-LEU信号机码位字节长度--1行长度*/
/* zt 删除单轨相关代码 2022-02-15 */

/*定义CI-ZC码位表单ID*/
#define CI_ZC_MASK_TYPE       ((UINT32)0xB3)
#define CI_ZC_SWITCH_MASK_ID  ((UINT32)1)       /*CI-ZC道岔码位*/
#define CI_ZC_SWITCH_MASK_LEN ((UINT32)10)      /*CI-ZC道岔码位字节长度--1行长度*/

#define CI_ZC_SIGNAL_MASK_ID  ((UINT32)2)       /*CI-ZC信号机码位*/
#define CI_ZC_SIGNAL_MASK_LEN ((UINT32)16)      /*CI-ZC信号机码位字节长度--1行长度*/

#define CI_ZC_PSD_MASK_ID  ((UINT32)3)       /*CI-ZC屏蔽门码位*/
#define CI_ZC_PSD_MASK_LEN ((UINT32)8)      /*CI-ZC屏蔽门码位字节长度--1行长度*/

#define CI_ZC_ESB_MASK_ID  ((UINT32)4)       /*CI-ZC紧急停车按钮码位*/
#define CI_ZC_ESB_MASK_LEN ((UINT32)6)      /*CI-ZC屏紧急停车按钮码位字节长度--1行长度*/

#define CI_ZC_LOGIC_SGMT_MASK_ID  ((UINT32)6)       /*CI-ZC逻辑区段码位*/
#define CI_ZC_LOGIC_SGMT_MASK_LEN ((UINT32)18)      /*CI-ZC逻辑区段码位字节长度--1行长度*/

#define CI_ZC_ROUTE_MASK_ID  ((UINT32)7)       /*CI-ZC进路码位*/
#define CI_ZC_ROUTE_MASK_LEN ((UINT32)10)      /*CI-ZC进路码位字节长度--1行长度*/

#define CI_ZC_AXLE_SGMT_MASK_ID  ((UINT32)5)       /*CI-ZC计轴区段码位*/
#define CI_ZC_AXLE_SGMT_MASK_LEN ((UINT32)26)      /*CI-ZC计轴区段码位字节长度--1行长度，Modified 20151015*/

#define CI_ZC_OVER_LAP_MASK_ID  ((UINT32)8)       /*CI-ZC保护区段码位*/
#define CI_ZC_OVER_LAP_MASK_LEN ((UINT32)8)      /*CI-ZC保护区段码位字节长度--1行长度*/

#define CI_ZC_RETURN_MASK_ID  ((UINT32)9)       /*CI-ZC无人折返码位*/
#define CI_ZC_RETURN_MASK_LEN ((UINT32)10)      /*CI-ZC无人折返码位字节长度--1行长度*/

#define CI_ZC_COMEGO_MASK_ID  ((UINT32)10)         /*CI_ZC往复进路码位*/
#define CI_ZC_COMEGO_ROUTE_MASK_LEN  ((UINT32)6)   /*CI_ZC往复进路码位字节长度--1行长度*/ 

/*防淹门*/
#define CI_ZC_FLOODGATE_MASK_ID		((UINT32)11)	/*CI_ZC防淹门码位*/
#define CI_ZC_FLOODGATE_MASK_LEN	((UINT32)12)	/*CI_ZC防淹门码位长度-1行长度*/

/*车库门*/
#define CI_ZC_GARAGE_DOOR_MASK_ID  ((UINT32)12)         /*CI_ZC车库门码位*/
#define CI_ZC_GARAGE_DOOR_MASK_LEN  ((UINT32)10)   /*CI_ZC车库门码位字节长度--1行长度*/ 

/*SPKS*/
#define CI_ZC_SPKS_MASK_ID  ((UINT32)13)       /*CI-ZC SPKS开关状态码位*/
#define CI_ZC_SPKS_MASK_LEN ((UINT32)6)      /*CI-ZC SPKS开关状态码位字节长度--1行长度*/

/* zt 删除单轨相关代码 2022-02-15 */
/*定义码位表单ID*/
#define CI_ATS_DATA_ELEMENT_LEN ((UINT32)2)      /*CI-ATS1数据元素长度*/

#define CI_ATS_MASK_TYPE       ((UINT32)0xB1)
#define CI_ATS_SWITCH_MASK_ID  ((UINT32)1)       /*CI-ATS道岔码位*/
#define CI_ATS_SWITCH_MASK_LEN ((UINT32)22)      /*CI-ATS道岔码位字节长度--1行长度*/
#define CI_ATS_SIGNAL_MASK_ID  ((UINT32)2)       /*CI-ATS信号机码位*/
#if 0
#define CI_ATS_SIGNAL_MASK_LEN ((UINT32)26)      /*CI-ATS信号机码位字节长度--1行长度*/
#endif
#define CI_ATS_SIGNAL_MASK_LEN ((UINT32)34)      /*CI-ATS信号机码位字节长度--1行长度,武汉4显示、5显示，CI16.5 data17.5*/

#define CI_ATS_PSD_MASK_ID  ((UINT32)3)       /*CI-ATS屏蔽门码位*/

#if 1
#define CI_ATS_PSD_MASK_LEN ((UINT32)26)      /*CI-ATS屏蔽门码位字节长度--1行长度*/
#else
#define CI_ATS_PSD_MASK_LEN ((UINT32)22)      /*CI-ATS屏蔽门码位字节长度--1行长度*/
#endif
	
#define CI_ATS_ESB_MASK_ID  ((UINT32)4)      /*CI-ATS紧急停车按钮码位*/
#define CI_ATS_ESB_MASK_LEN ((UINT32)6)      /*CI-ATS屏紧急停车按钮码位字节长度--1行长度*/
#define CI_ATS_LOGIC_SGMT_MASK_ID  ((UINT32)5)      /*CI-ATS逻辑区段码位*/
#define CI_ATS_LOGIC_SGMT_MASK_LEN ((UINT32)14)      /*CI-ATS逻辑区段码位字节长度--1行长度*/
#define CI_ATS_ROUTE_MASK_ID  ((UINT32)6)       /*CI-ATS进路码位*/
#define CI_ATS_ROUTE_MASK_LEN ((UINT32)22)      /*CI-ATS进路码位字节长度--1行长度*/
#define CI_ATS_AR_ROUTE_MASK_ID  ((UINT32)7)       /*CI-ATS自动折返进路码位*/
#define CI_ATS_AR_ROUTE_MASK_LEN ((UINT32)6)      /*CI-ATS自动折返进路码位字节长度--1行长度*/
#define CI_ATS_AUTO_ROUTE_MASK_ID  ((UINT32)8)       /*CI-ATS自动通过进路码位*/
#define CI_ATS_AUTO_ROUTE_MASK_LEN ((UINT32)6)      /*CI-ATS自动通过进路码位字节长度--1行长度*/
#define CI_ATS_PHYSEC_MASK_ID  ((UINT32)9)       /*CI-ATS物理区码位*/
#define CI_ATS_PHYSEC_MASK_LEN ((UINT32)14)      /*CI-ATS物理区码位字节长度--1行长度*/

#define CI_ATS_SPKS_MASK_ID  ((UINT32)10)       /*CI-ATS SPKS开关状态码位*/
#define CI_ATS_SPKS_MASK_LEN ((UINT32)8)      /*CI-ATS SPKS开关状态码位字节长度--1行长度；2018.03.19 由6改为8，CI_ATS SPKS开关码位表增加一列开关旁路状态码位*/

#define CI_ATS_WASHMACHINE_MASK_ID  ((UINT32)11)       /*CI-ATS 洗车机就绪状态码位*/
#define CI_ATS_WASHMACHINE_MASK_LEN ((UINT32)8)      /*CI-ATS 洗车机就绪状态码位字节长度--1行长度*/

#define CI_ATS_AAR_ROUTE_MASK_ID  ((UINT32)12)       /*CI-ATS全自动折返进路码位*/
#define CI_ATS_AAR_ROUTE_MASK_LEN  ((UINT32)6)      /*CI-ATS全自动折返进路码位字节长度--1行长度*/

#define CI_ATS_GARAGEDOOR_MASK_ID  ((UINT32)13)       /*CI-ATS 车库门状态码位*/
#define CI_ATS_GARAGEDOOR_MASK_LEN ((UINT32)14)      /*CI-ATS 车库门状态码位字节长度--1行长度*/

#define CI_ATS_FLOODGATE_MASK_ID  ((UINT32)24)       /*CI_ATS防淹门码位*/
#define CI_ATS_FLOODGATE_MASK_LEN ((UINT32)10)      /*CI_ATS防淹门码位字节长度--1行长度*/

/* zt 删除单轨相关代码 2022-02-15 */



extern MaskConfigDataStruct ConfigCiToAtsMaskConfigDataStru[CI_SUM_MAX][CI_TO_ATS_MASK_SUM_MAX];  /*定义各CI站到ATS码位配置数据*/ 
extern UINT16 ConfigCiToAtsMaskCurSum[CI_SUM_MAX] ;  /*定义各CI站到ATS码位当前总数*/
extern UINT16 ConfigCiToAtsMaskIdMax[CI_SUM_MAX] ;     /*定义各CI站到ATS码位最大值*/

extern MaskConfigDataStruct ConfigCiToZcMaskConfigDataStru[CI_SUM_MAX][CI_TO_ZC_MASK_SUM_MAX];  /*定义各CI站到ZC码位配置数据*/
extern UINT16 ConfigCiToZcMaskCurSum[CI_SUM_MAX] ;  /*定义各CI站到ZC码位当前总数*/
extern UINT16 ConfigCiToZcMaskIdMax[CI_SUM_MAX] ;    /*定义各CI站到ZC码位最大值*/

extern MaskConfigDataStruct ConfigZcToCiMaskConfigDataStru[CI_SUM_MAX][ZC_TO_CI_MASK_SUM_MAX];  /*定义各ZC站到CI码位配置数据*/
extern UINT16 ConfigZcToCiMaskCurSum[CI_SUM_MAX] ;  /*定义各CI站接收ZC码位当前总数*/
extern UINT16 ConfigZcToCiMaskIdMax[CI_SUM_MAX] ;    /*定义各CI站接收ZC码位最大值*/

extern MaskConfigDataStruct ConfigCiToLeuMaskConfigDataStru[CI_SUM_MAX][CI_TO_LEU_MASK_SUM_MAX];  /*定义各CI到LEU码位配置数据*/
extern UINT16 ConfigCiToLeuMaskCurSum[CI_SUM_MAX] ;  /*定义各CI站到Leu码位当前总数*/
extern UINT16 ConfigCiToLeuMaskIdMax[CI_SUM_MAX] ;    /*定义各CI站到Leu码位最大值*/

/*****
******CI到ATS码位表解析
********/
/*********************************************
*函数功能：CI到ATS码位表解析
*参数说明：FSDataName件指针
*返回值：0，失败；1，成功
*********************************************/
UINT8  MaskCfgDtStruFrmCIATSSwitchMask(UINT8 * FSDataName);
/* zt 删除单轨相关代码 2022-02-15 */
/*********************************************
*函数功能：CI-ATS信号机码位
*参数说明：FSDataName件指针
*返回值：0，失败；1，成功
*********************************************/
UINT8  MaskCfgDtStruFrmCIATSSignalMask(UINT8 * FSDataName);
/*********************************************
*函数功能：CI-ATS屏蔽门码位
*参数说明：FSDataName件指针
*返回值：0，失败；1，成功
*********************************************/
UINT8  MaskCfgDtStruFrmCIATSPsdMask(UINT8 * FSDataName);
/*********************************************
*函数功能：CI-ATS紧急停车按钮码位
*参数说明：FSDataName件指针
*返回值：0，失败；1，成功
*********************************************/
UINT8  MaskCfgDtStruFrmCIATSEsbMask(UINT8 * FSDataName);
/*********************************************
*函数功能：CI-ATS逻辑区段码位
*参数说明：FSDataName件指针
*返回值：0，失败；1，成功
*********************************************/
UINT8  MaskCfgDtStruFrmCIATSLogSgmt(UINT8 * FSDataName);
/*********************************************
*函数功能：CI-ATS进路码位
*参数说明：FSDataName件指针
*返回值：0，失败；1，成功
*********************************************/
UINT8  MaskCfgDtStruFrmCIATSRouteMask(UINT8 * FSDataName);
/*********************************************
*函数功能：CI-ATS物理区段码位
*参数说明：FSDataName件指针
*返回值：0，失败；1，成功
*********************************************/
UINT8  MaskCfgDtStruFrmCIATSPhySecMask(UINT8 * FSDataName);
/*********************************************
*函数功能：CI-ATS自动通过进路码位
*参数说明：FSDataName件指针
*返回值：0，失败；1，成功
*********************************************/
UINT8  MaskCfgDtStruFrmCIATSARtMask(UINT8 * FSDataName);
/*********************************************
*函数功能：CI-ATS自动折返进路码位
*参数说明：FSDataName件指针
*返回值：0，失败；1，成功
*********************************************/
UINT8  MaskCfgDtStruFrmCIATSARRtMask(UINT8 * FSDataName);
/*********************************************
*函数功能：CI-ATS SPKS开关状态码位
*参数说明：FSDataName件指针
*返回值：0，失败；1，成功
*********************************************/
UINT8  MaskCfgDtStruFrmCIATSSPKSMask(UINT8 * FSDataName);
/*********************************************
*函数功能：CI-ATS 洗车机就绪状态码位
*参数说明：FSDataName件指针
*返回值：0，失败；1，成功
*********************************************/
UINT8  MaskCfgDtStruFrmCIATSWashM(UINT8 * FSDataName);

/*********************************************
*函数功能：CI-ATS 防淹门状态码位
*参数说明：FSDataName文件件指针
*返回值：0，失败；1，成功
*********************************************/
UINT8  MaskCfgDtStruFrmCIATSFloodGate(UINT8 * FSDataName);

/*********************************************
*函数功能：CI-ATS 车库门状态码位
*参数说明：FSDataName件指针
*返回值：0，失败；1，成功
*********************************************/
UINT8  MaskCfgDtStruFrmCIATSGarageDoor(UINT8 * FSDataName);

/*********************************************
*函数功能：CI-ATS全自动折返进路码位
*参数说明：FSDataName件指针
*返回值：0，失败；1，成功
*********************************************/
UINT8  MaskCfgDtStruFrmCIATSAARRtMask(UINT8 *FSDataName);
/*****
******CI到ATS码位表解析完毕
********/

/*****
******CI到ZC码位表解析
********/
/*********************************************
*函数功能：CI-ZC道岔码位
*参数说明：FSDataName件指针
*返回值：0，失败；1，成功
*********************************************/
UINT8  MaskCfgDtStruFrmCIZCSwitchMask(UINT8 * FSDataName);
/* zt 删除单轨相关代码 2022-02-15 */
/*********************************************
*函数功能：CI-ZC信号机码位
*参数说明：FSDataName件指针
*返回值：0，失败；1，成功
*********************************************/
UINT8  MaskCfgDtStruFrmCIZCSignalMask(UINT8 * FSDataName);
/*********************************************
*函数功能：ZC-CI信号机码位
*参数说明：FSDataName件指针
*返回值：0，失败；1，成功
*********************************************/
UINT8  MaskCfgDtStruFrmZCCISignalMask(UINT8 * FSDataName);

/* 20150531-针对数据结构28.0.0.14实现 */
/*********************************************
*函数功能：CI-ZC信号机码位
*参数说明：FSDataName件指针
*返回值：0，失败；1，成功
*********************************************/
UINT8  MaskCfgDtStruFrmCIZCSignalMask2(UINT8 * FSDataName);

/* 20150531-针对数据结构28.0.0.14实现 */
/*********************************************
*函数功能：ZC-CI信号机码位
*参数说明：FSDataName件指针
*返回值：0，失败；1，成功
*********************************************/
UINT8  MaskCfgDtStruFrmZCCISignalMask2(UINT8 * FSDataName);

/*********************************************
*函数功能：CI-ZC屏蔽门码位
*参数说明：FSDataName件指针
*返回值：0，失败；1，成功
*********************************************/
UINT8  MaskCfgDtStruFrmCIZCPsdMask(UINT8 * FSDataName);
/*********************************************
*函数功能：CI-ZC紧急停车按钮码位
*参数说明：FSDataName件指针
*返回值：0，失败；1，成功
*********************************************/
UINT8  MaskCfgDtStruFrmCIZCEsbMask(UINT8 * FSDataName);


/*********************************************
*函数功能：ZC-CI逻辑区段码位
*参数说明：FSDataName件指针
*返回值：0，失败；1，成功
*********************************************/
UINT8  MaskCfgStruFrmZCCILogSgmtMask(UINT8 * FSDataName);


/*********************************************
*函数功能：CI-ZC进路码位
*参数说明：FSName文件指针
*返回值：0，失败；1，成功
*********************************************/
UINT8  MaskCfgStruFrmCIZCRouteMask(UINT8 * FSDataName);


/*********************************************
*函数功能：CI-ZC计轴区段码位
*参数说明：FSName文件指针
*返回值：0，失败；1，成功
*********************************************/
UINT8  MaskCfgStruFrmCIZCAxleSgmtMask(UINT8 * FSDataName);
/*********************************************
*函数功能：ZC-CI计轴区段码位
*参数说明：FSName文件指针
*返回值：0，失败；1，成功
*********************************************/
UINT8  MaskCfgStruFrmZCCIAxleSgmtMask(UINT8 * FSDataName);


/*********************************************
*函数功能：CI-ZC保护区段码位
*参数说明：FSName文件指针
*返回值：0，失败；1，成功
*********************************************/
UINT8  MaskCfgStruFrmCIZCOverLapMask(UINT8 * FSDataName);
/*********************************************
*函数功能：CI-ZC无人折返码位
*参数说明：FSName文件指针
*返回值：0，失败；1，成功
*********************************************/
UINT8  MaskCfgStruFrmCIZCReturnMask(UINT8 * FSDataName);
/*********************************************
*函数功能：ZC-CI无人折返码位
*参数说明：FSName文件指针
*返回值：0，失败；1，成功
*********************************************/
UINT8  MaskCfgStruFrmZCCIRtnMask(UINT8 * FSDataName);

/*********************************************
*函数功能：ZC-CI往复进路码位
*参数说明：FSDataName件指针
*返回值：0，失败；1，成功
*********************************************/
UINT8 MaskCfgStruFrmCIZCComeGoMask(UINT8 * FSDataName) ;
/*********************************************
*函数功能：CI-ZC车库门码位
*参数说明：FSDataName件指针
*返回值：0，失败；1，成功
*********************************************/
UINT8  MaskCfgStruFrmCIZCGaragedoor(UINT8 * FSDataName);
/*********************************************
*函数功能：CI-ZC SPKS开关状态码位
*参数说明：FSDataName件指针
*返回值：0，失败；1，成功
*********************************************/
UINT8  MaskCfgDtStruFrmCIZCSPKSMask(UINT8 * FSDataName);

/*********************************************
*函数功能：CI-ZC 防淹门状态码位
*参数说明：FSDataName件指针
*返回值：0，失败；1，成功
*********************************************/
UINT8 MaskCfgStruFrmCIZCFloodGateMask(UINT8 * FSDataName);


/*********************************************
*函数功能：ZC-CI车库门码位
*参数说明：FSDataName件指针
*返回值：0，失败；1，成功
*********************************************/
UINT8  MaskCfgStruFrmZCCIGaragedoor(UINT8 * FSDataName);
/*****
******CI到ZC码位表解析完毕
********/

/*****
******CI到LEU码位表解析
********/
/*********************************************
*函数功能：CI到LEU码位表解析
*参数说明：FSName文件指针
*返回值：0，失败；1，成功
*********************************************/
UINT8  MaskCfgStruFrmCILEUSwitchMask(UINT8 * FSDataName);
/* zt 删除单轨相关代码 2022-02-15 */
/*********************************************
*函数功能：CI-LEU屏蔽门码位
*参数说明：FSName文件指针
*返回值：0，失败；1，成功
*********************************************/
UINT8  MaskCfgDtStruFrmCILEUPsdMask(UINT8 * FSDataName);
/*********************************************
*函数功能：CI-LEU屏蔽门码位
*参数说明：FSName文件指针
*返回值：0，失败；1，成功
*********************************************/
UINT8  MaskCfgDtStruFrmCILEURouteMask(UINT8 * FSDataName);
/*********************************************
*函数功能：CI-LEU保护区段码位
*参数说明：FSName文件指针
*返回值：0，失败；1，成功
*********************************************/
UINT8  MaskCfgStruFrmCILEUOverLapMask(UINT8 * FSDataName);

/*********************************************
*函数功能：初始化码位
*参数说明：FSName文件指针
*返回值：0，失败；1，成功
*********************************************/
UINT8 MaskInit(UINT8 * FSDataName);

/*********************************************
*函数功能：CI-LEU信号机码位
*参数说明：FSName文件指针
*返回值：0，失败；1，成功
*********************************************/
UINT8 MaskCfgStruFrmCILEUSignalMask(UINT8 * FSDataName);

/*********************************************
*函数功能：CI到ATS码位表解析 适配28.0.0.14
*参数说明：FSDataName件指针
*返回值：0，失败；1，成功
*********************************************/
UINT8  MaskCfgDtStruFrmCIATSSwitchMask2(UINT8 * FSDataName);

/*********************************************
*函数功能：CI-ATS物理区段码位  适配28.0.0.14数据结构
*参数说明：FSDataName件指针
*返回值：0，失败；1，成功
*********************************************/
UINT8  MaskCfgDtStruFrmCIATSPhySecMask2(UINT8 * FSDataName);

/*********************************************
*函数功能：ZC-CI计轴区段码位-面向数据结构28.0.0.14
*参数说明：FSName文件指针
*返回值：0，失败；1，成功
*********************************************/
UINT8  MaskCfgStruFrmZCCIAxleSgmtMask2(UINT8 * FSDataName);
/*********************************************
*函数功能：CI-ZC计轴区段码位 （物理区段）-面向数据结构28.0.0.14
*参数说明：FSName文件指针
*返回值：0，失败；1，成功
*********************************************/
UINT8  MaskCfgStruFrmCIZCAxleSgmtMask2(UINT8 * FSDataName);

#endif
