/************************************************************************
*
* 文件名   ：  dquCILSStruInit.h
* 版权说明 ：  北京交控科技有限公司 
* 版本号   ：  1.0
* 创建时间 ：  2011.12.27
* 作者     ：  研发中心软件部
* 功能描述 ：   联锁数据结构体定义
* 使用注意 ： 
* 修改记录 ：  
*
************************************************************************/
#ifndef DQU_CI_LS_STRU_INIT
#define DQU_CI_LS_STRU_INIT

#include "dquCILSStruFrmChar.h"

/*联锁数据结构*/
typedef struct S_LSDataStruct
{
	LS_LongRouteStru* pLSLongRouteStr;       /*长进路表数据结构体*/
	LS_NoRouteDcStru* pLSNoRouteDcStr;       /*非进路调车表数据结构体*/
	LS_AutoRouteStru* pLSAutoRouteStr ;       /*自动进路表数据结构体*/
	LS_AutoRtnRouteStru * pLSAutoRtnRouteStr ;/*自动折返进路表数据结构体*/
	LS_ReverseRouteStru * pLSReverseRouteStr; /*反向进路表数据结构体*/
	LS_RoutePhyAndCheckStateStruct *pLSPhyAndChkStaStr ; /*进路物理区段及检查属性表数据结构体*/
	LS_FHDaoChaStruct * pLSFHDaoChaStr;        /*防护道岔结构体*/
	LS_RouteDrivedSwitchGroupStruct * pLSAssocSwitchGroupStru; /*带动道岔结构体*/
	LS_DDXHStruct * pLSDDXHStr;                /*敌对信号构体*/
	LS_DDXHZStruct* pLSDDXHZStru;              /*敌对信号组*/
	LS_SignalStruct *pLSSignalStr;             /*信号机组构体*/
	LS_IntrudePhySectionStruct * pLSIntruPhySecStr;/*侵限区段及条件道岔表数据结构体*/
	LS_OtherCIStruct* pLSOterCiStr;         /*其他联锁表数据结构体*/
	LS_RouteStruct*   pLSRouteStr;             /*联锁表-进路数据结构体*/
	LS_AllAutoRtnRouteStru * pLSAllAutoRtnRouteStr ;/*全自动折返进路表数据结构体*/
	LS_OveralpLockCondStru * pLSOverlapLockCondStru;/*保护区段锁闭条件表数据结构体*/
	LS_RouteMonoRailSwitStru * pLSRouteMonoRailSwitStru;/*联锁表-进路包含单轨道岔数据结构体*/
	LS_PhySectionIntrudeStruct * pLSPhyIntruPhySecStru;/*物理区段侵限区段及条件道岔表数据结构体*/
	LS_ProSwitchHostSwitchMapStruct *pLSProSwitchHostSwitchMapStru;/*CI-联锁表防护道岔与主体道岔对应关系表*/
	LS_GroupAutoRouteStru *pLSGroupAutoRouteStru;  /*CI-联锁表组合自动进路对应关系表*/
	LS_LgcSectionIntrudeStruct *pLSLgcIntruSecStru;/*逻辑区段条件侵限表*/
	LS_LgcSecLrtlDfncStruct *pLSLgcLrtlDfncStru;	/*逻辑区段侧防条件*/
	LS_SGBJStruct* pLSSGBJStru;	/*声光报警结构体*/
	LS_ContactLineStruct* pLSContactLineStr;		/*逻辑区段关联联络线设备检查条件结构体*/
	LS_EachLgcIntrudeStruct* pLSLgcInvEachStru;/*逻辑区段互相侵限表*/
	LS_TransRouteZFSigStruct* pLSTransRouteZFSigStru; /*转换轨折返信号机结构体*/
	LS_AirShaftStruct* pLSAirShaftRouteStru;	/*风井进路检查表*/
}LSDataStruct;
/*联锁数据结构*/
typedef struct S_LSDataStructLen
{
	UINT16 LSLongRouteStrLen;    /*长进路表数据结构体数目*/
	UINT16 LSNoRouteDcStrLen;    /*非进路调车表数据结构体数目*/
	UINT16 LSAutoRouteStrLen;    /*自动进路表数据结构体数目*/
	UINT16 LSAutoRtnRouteStrLen; /*自动折返进路表数据结构体数目*/
	UINT16 LSReverseRouteStrLen; /*反向进路表数据结构体数目*/
	UINT16 LSPhyAndChkStaStrLen; /*进路物理区段及检查属性表数据结构体数目*/
	UINT16 LSFHDaoChaStrLen;     /*防护道岔结构体数目*/
	UINT16 LSAssocSwitchGroupStruLen;/*带动道岔结构体数目*/
	UINT16 LSDDXHStrLen;         /*敌对信号构体数目*/
	UINT16 LSDDXHZStrLen;        /*敌对信号组数目*/
	UINT16 LSSignalStrLen;       /*信号机组构体数目*/
	UINT16 LSIntruPhySecStrLen;  /*侵限区段及条件道岔表数据结构体数目*/
	UINT16 LSOterCiStrLen;        /*其他联锁表数据结构体*/
	UINT16 LSRouteStrLen;    /*联锁表-进路数据结构体*/
	UINT16 LSAllAutoRtnRouteStrLen; /*全自动折返进路表数据结构体*/
	UINT16 LSOverlapLockCondStruLen; /*保护区段锁闭条件表数据结构体*/
	UINT16 LSRouteMonoRailSwitStruLen;/*进路包含单轨道岔数据结构体*/
	UINT16 LS_PhySectionIntrudeStruLen;/*物理区段侵限区段及条件道岔表数据结构体*/
	UINT16 LS_FloodGateStruLen;	/*CI-联锁表防淹门数量*/
	UINT16 LS_ProSwitchHostSwitchMapStruLen;/*CI-联锁表防护道岔与主体道岔对应关系表长度*/
	UINT16 LSGroupAutoRouteStruLen;     /*组合自动进路表长度*/
	UINT16 LSLgcSecIntruStruLen;	/*逻辑区段侵限条件表长度*/
	UINT16 LSLgcSecLtrlDfncStruLen;	/*逻辑区段侧防条件表长度*/
	UINT16 LSSGBJStruLen;  /*声光报警器表长度*/
	UINT16 LSContactStruLen;		/*逻辑区段关联联络线设备检查条件表长度*/
	UINT16 LSLgcInvEachLen;	/*逻辑区段互相侵限条件表长度*/
	UINT16 LSTransRouteZFSigStruLen; /*转换轨折返信号机表长度*/
	UINT16 LSAirShaftRouteStruLen; /*风井进路检查表长度*/
}LSDataStructLen;

/*********定义全局的联锁信息数据变量*******/
extern LSDataStruct LSData;
extern LSDataStructLen LSDataLen;
/***************************/

/*********************************************
*函数功能：填充长进路表数据结构体数组
*参数说明：LSDataName指针          
*返回值：0，失败；1，成功
*********************************************/
UINT8 InitLS_LongRouteStru(CHAR* LSDataName);
/*********************************************
*函数功能：填充自动进路表数据结构体数组
*参数说明：LSDataName指针          
*返回值：0，失败；1，成功
*********************************************/
UINT8 InitLS_AutoRouteStru(CHAR* LSDataName);
/*********************************************
*函数功能：填充反向进路表数据结构体数组
*参数说明：LSDataName指针          
*返回值：0，失败；1，成功
*********************************************/
UINT8 InitLS_ReverseRouteStru(CHAR* LSDataName);
/*********************************************
*函数功能：填充非进路调车数据结构体数组
*参数说明：LSDataName指针          
*返回值：0，失败；1，成功
*********************************************/
UINT8 InitLS_NoRouteDcStru(CHAR* LSDataName);
/*********************************************
*函数功能：填充自动折返进路表数据结构体数组
*参数说明：LSDataName指针          
*返回值：0，失败；1，成功
*********************************************/
UINT8 InitLS_AutoRtnRouteStru(CHAR* LSDataName);

/*********************************************
*函数功能：填充物理区段及检查类型表数据结构体数组
*参数说明：LSDataName指针          
*返回值：0，失败；1，成功
*********************************************/
UINT8 InitLS_RoutePhyAndCheckStaStru(CHAR* LSDataName);

/*********************************************
*函数功能：填充防护道岔表数据结构体数组
*参数说明：LSDataName指针          
*返回值：0，失败；1，成功
*********************************************/
UINT8 InitLS_FHDaoChaStru(CHAR* LSDataName);
/*********************************************
*函数功能：填充敌对信号表数据结构体数组
*参数说明：LSDataName指针          
*返回值：0，失败；1，成功
*********************************************/
UINT8 InitLS_DDXHStru(CHAR* LSDataName);
/*********************************************
*函数功能：填充信号机组表数据结构体数组
*参数说明：LSDataName指针          
*返回值：0，失败；1，成功
*********************************************/
UINT8 InitLS_SignalStruct(CHAR* LSDataName);
/*********************************************
*函数功能：填充侵限区段及条件道岔表数据结构体数组
*参数说明：LSDataName指针          
*返回值：0，失败；1，成功
*********************************************/
UINT8 InitLS_IntrudePhySectionStruct(CHAR* LSDataName);

/*********************************************
*函数功能：采用互相侵限表填充侵限区段及条件道岔表数据结构体数组
*参数说明：LSDataName指针
*返回值：0，失败；1，成功
*********************************************/
UINT8 InitLS_InvEachPhySectionStruct(UINT16 logSecSum, DSU_LOGIC_SGMT_STRU* pLogicSgmt);


/*********************************************
*函数功能：填充其他联锁据结构体数组
*参数说明：LSDataName指针          
*返回值：0，失败；1，成功
*********************************************/
UINT8 InitLS_OtherCIStruct(CHAR* LSDataName);

/*********************************************
*函数功能：填充联锁表-进路数据结构体数组
*参数说明：LSDataName指针          
*返回值：0，失败；1，成功
*********************************************/
UINT8 InitLS_RouteStruct(CHAR* LSDataName);
/*********************************************
*函数功能：填充联锁敌对信号机组数据
*参数说明：LSDataName指针          
*返回值：0，失败；1，成功
*********************************************/
UINT8 InitLS_DDXHZStru(CHAR* LSDataName);

/*********************************************
*函数功能：填充全自动折返进路表数据结构体数组
*参数说明：LSDataName指针          
*返回值：0，失败；1，成功
*********************************************/
UINT8 InitLS_AllAutoRtnRouteStru(CHAR *LSDataName);


/*********************************************
*函数功能：填充保护区段锁闭条件表数据结构体数组
*参数说明：LSDataName指针          
*返回值：0，失败；1，成功
*********************************************/
UINT8 InitLS_OverlapLockCondStru(CHAR *LSDataName);

/*********************************************
*函数功能：填充带动道岔组表数据结构体数组
*参数说明：LSDataName指针          
*返回值：0，失败；1，成功
*********************************************/
UINT8 InitLS_DrivedSwitchGroupStru(CHAR* LSDataName);

/* zt 删除单轨相关代码 2022-02-15 */
/*********************************************
*函数功能：物理区段侵限区段及条件道岔表数据结构体数组
*参数说明：LSDataName指针          
*返回值：0，失败；1，成功
*********************************************/
UINT8 InitLS_PhySectionIntrudeStru(CHAR* LSDataName);

/*********************************************
*函数功能：填充联锁表-防护道岔与主体道岔对应关系表结构体数组
*参数说明：LSDataName指针          
*返回值：0，失败；1，成功
*********************************************/
UINT8 InitLS_ProSwitchHostMapStru(CHAR* LSDataName);

/*********************************************
*函数功能：填充组合自动进路表数据结构体数组
*参数说明：LSDataName指针          
*返回值：0，失败；1，成功
*********************************************/
UINT8 InitLS_GroupAutoRouteStru(CHAR* LSDataName);

/*********************************************
*函数功能：填充逻辑区段侵限数据结构体数组
*参数说明：LSDataName指针
*返回值：0，失败；1，成功
*********************************************/
UINT8 InitLS_LogicSecIntruStru(CHAR* LSDataName);


/*********************************************
*函数功能：填充逻辑区段互相侵限数据结构体数组
*参数说明：LSDataName指针
*返回值：0，失败；1，成功
*********************************************/
UINT8 InitLS_LogSecIntruStru_Each(CHAR* LSDataName);

/*********************************************
*函数功能：填充逻辑区段侧防数据结构体数组
*参数说明：LSDataName指针
*返回值：0，失败；1，成功
*********************************************/
UINT8 InitLS_LogicLtrlDfncStru(CHAR* LSDataName);

/*********************************************
* 函数功能：填充声光报警器数据结构体数组
* 参数说明：LSDataName指针
* 返回值：0，失败；1，成功
* 成都三线新需求：增加声光报警器——2023.09.22 by LQ
*********************************************/
UINT8 InitLS_SGBJStru(CHAR* LSDataName);

/*********************************************
*函数功能：填充逻辑区段关联联络线设备条件检查结构体数组
*参数说明：LSDataName指针
*返回值：0，失败；1，成功
*********************************************/
UINT8 InitLS_ContactConfigDataStruct(CHAR* LSDataName);

/*********************************************
* 函数功能：转换轨进路折返信号机id结构体数组
* 参数说明：LSDataName指针
* 返回值：0，失败；1，成功
* 处理折返信号机外方区段无岔且解锁场景  创建：2024.07.25 by fan
*********************************************/
UINT8 InitLS_TransRouteRtnDataStruct(CHAR* LSDataName);

/*********************************************
*函数功能：填充风井进路进路检查表数据结构体数组
*参数说明：LSDataName指针
*返回值：0，失败；1，成功
* 创建：2026.03.04 by yx
*********************************************/
UINT8 InitLS_AirShaftRouteStru(CHAR* LSDataName);
#endif

