/********************************************************
*
* 文 件 名： InterlockLogicCheck.h
* 版权说明： 北京交控科技有限公司
* 创建时间： 2012-04-10
* 作    者： 联锁组
* 功能描述： 联锁逻辑处理函数头文件
* 函数包括：
* 使用注意：
* 修改记录：
*
********************************************************/

#ifndef _INTERLOCK_LOGIC_CHECK_H_
#define _INTERLOCK_LOGIC_CHECK_H_

#include "../ERROR/ErrorDataManage.h"
#include "../ERROR/ErrorDefine.h"
#include "../Route/RouteDataManage.h"
#include "../Route/RouteConfigDataManage.h"
#include "../ReverseRoute/ReverseRouteConfigDataManage.h"
#include "../Signal/SignalDataManage.h"
#include "../Signal/SignalConfigDataManage.h"
#include "../Switch/SwitchDataManage.h"
#include "../Switch/SwitchConfigDataManage.h"
#include "../Relay/RelayDataManage.h"
#include "../Section/PhysicalSectionDataManage.h"
#include "../2oo2/2oo2InterfaceDataManage.h"
#include "../System/SystemParameterManage.h"
#include "../System/CiSystemDefine.h"
#include "../Overlap/OverlapDataManage.h"
#include "../Overlap/OverlapConfigDataManage.h"
#include "../esb/ESBDataManage.h"
#include "../psd/PSDDataManage.h"
#include "../Section/LogicSectionDataManage.h"
#include "../DataManage/DeviceDataManage.h"
#include "../NonRoute/NonRouteConfigDataManage.h"
#include "../AutoReturn/AutoReturnDataManage.h"
#include "../AutoRoute/AutoRouteDataManage.h"
#include "../ReverseRoute/ReverseRouteConfigDataManage.h"
#include "../AllAutoReturn/AllAutoReturnDataManage.h"
#include "../Garagedoor/GaragedoorDataManage.h"
#include "../WashMachine/WashMachineDataManage.h"
#include "../InvadeSection/InvadeSectionConfigDataManage.h"
#include "../Train/TrainOnAcManage.h"
#include "../DataManage/DeviceConfigDataManage.h"

/*
* 功能描述： 进路信号机封锁状态检查
* 参数说明： UINT16 const routeId, 进路ID
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
UINT8 RouteSignalFLockCheck(UINT16 const routeId, UINT16 *pDevId,UINT8 *pDevState);



/*
* 功能描述： 进路敌对条件无效检查
* 参数说明： UINT16 const routeId, 进路ID
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR   满足敌对
*            CI_SUCCESS 不满足敌对
*/
UINT8 RouteSignalEnemyVainCheck(UINT16 const routeId,UINT16 *pDevId,UINT8 *pDevState);

/*
* 功能描述： 反向进路敌对条件无效检查
* 参数说明： UINT16 const routeId, 进路ID
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR   满足敌对
*            CI_SUCCESS 不满足敌对
*/
UINT8 ReverseRouteSigEnemyVainCheck(UINT16 const routeId,UINT16 *pDevId,UINT8 *pDevState);

/*
* 功能描述： 检查进路终端信号机为非CBTC级别
* 参数说明：
*            UINT16 RouteId,    进路号
*            UINT8 functionId,  调用函数编号
*            UINT8 sendLevel,   故障码发送级别
* 返回值  ： CI_ERROR   
*            CI_SUCCESS 
*/
UINT8 CheckRouteEndSignalNotCbtc(UINT16 routeId,UINT8 functionId,UINT8 sendLevel);

/*
* 功能描述： 进路照查条件满足检查
* 参数说明： UINT16 const routeId,  进路号
*            UINT8 functionId,      调用函数编号
*            UINT8 sendLevel,       故障码发送级别
* 返回值  ： CI_ERROR               失败
*            CI_SUCCESS             成功
*			 RELAY_STATE_WAITE      进路初锁本端照查继电器条件不满足--等待
*			 RES_CHECK_STATE_WAITE  资源检查本端照查继电器条件不满足--等待
*/
UINT8 RouteRelayZhaoChaCheck(UINT16 const routeId, UINT8 functionId, UINT8 sendLevel);

/*
* 功能描述： 进路照查物理区段条件满足检查
* 参数说明： UINT16 const checkRouteId   检查进路段号
*            UINT16 const zcPhySecId  照查物理区段号
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR   
*            CI_SUCCESS 
*/
UINT8 RoutePhySecZhaoChaCheck(UINT16 const checkRouteId ,UINT16 const zcPhySecId,UINT16 *pDevId,UINT8 *pDevState );


/*
* 功能描述： 进路区段全部空闲检查
* 参数说明： UINT16 routeId,    进路号
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR   
*            CI_SUCCESS 
*/
UINT8 RouteAllSecOccuClearCheck(UINT16 const routeId, UINT16 *pDevId,UINT8 *pDevState);



/*
* 功能描述： 进路内逻辑区段和进路道岔关联逻辑区段全部空闲检查
* 参数说明： UINT16 routeId,    进路号
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
* add 20221007 适配进路提前驱动道岔功能
*/
UINT8 RouteAllLogSecOccuClearCheck(UINT16 const routeId, UINT16 *pDevId, UINT8 *pDevState);

/*
* 功能描述： 点式进路逻辑区段锁闭有效性检查
* 参数说明：
*            UINT16 const routeId,    进路号
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
* add 20221007 适配进路提前驱动道岔功能
*/
UINT8 BlockRouteLogSecLockValidCheck(UINT16 const routeId, UINT16 *pDevId, UINT8 *pDevState);

/*
* 功能描述： 点式进路区段锁闭有效性检查
* 参数说明： 
*            UINT16 const routeId,    进路号
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR   
*            CI_SUCCESS 
*/
UINT8 BlockRouteSecLockValidCheck(UINT16 const routeId,UINT16 *pDevId,UINT8 *pDevState);

/*
* 功能描述： 调车进路区段锁闭有效性检查
* 参数说明： 
*            UINT16 const routeId,    进路号
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR   
*            CI_SUCCESS 
*/
UINT8 DTrainRouteSecLockValidCheck(UINT16 const routeId,UINT16 *pDevId,UINT8 *pDevState);

/*
* 功能描述： 反向进路区段锁闭有效性检查
* 参数说明： 
*            UINT16 const routeId,    进路号
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR   
*            CI_SUCCESS 
*/
UINT8 ReverseRouteSecLockValidCheck(UINT16 const routeId,UINT16 *pDevId,UINT8 *pDevState);

/*
* 功能描述： 反向进路逻辑区段锁闭有效性检查
* 参数说明：
*            UINT16 const routeId,    进路号
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
* add 20221008 适配进路提前驱动道岔功能
*/
UINT8 ReverseRouteLogSecLockValCheck(UINT16 const routeId, UINT16 *pDevId, UINT8 *pDevState);



/*
* 功能描述： 进路侵限无效检查
* 参数说明： 
*            UINT16 const routeId,    进路号
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR   侵限
*            CI_SUCCESS 侵限不满足
*/
UINT8 RouteIntruSecVainCheck(UINT16 const routeId,UINT16 *pDevId,UINT8 *pDevState);



/*
* 功能描述： 进路道岔引导总锁状态检查
* 参数说明： UINT16 const routeId,    进路号
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
UINT8 RouteSwitchYLockCheck(UINT16 const routeId,UINT16 *pDevId,UINT8 *pDevState);



/*
* 功能描述： 进路道岔封锁状态检查
* 参数说明： UINT16 const routeId,    进路号
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
UINT8 RouteSwitchFLockCheck(UINT16 const routeId,UINT16 *pDevId,UINT8 *pDevState);



/*
* 功能描述： 进路道岔位置和动作有效性检查
* 参数说明： UINT16 const routeId,    进路号
*            UINT8 sendLevel  报警等级
* 返回值  ： CI_ERROR
*            CI_SUCCESS
* edit cgh 20241204
*/
UINT8 RouteSwitchPosAndMoveValidCheck(UINT16 const routeId, UINT8 sendLevel);

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


/*
* 功能描述： CBTC进路办理区段锁闭有效性检查
* 参数说明： UINT16 const routeId,    进路号
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR   
*            CI_SUCCESS 
*/
UINT8 RouteCbtcSecLockValidCheck(UINT16 const routeId,UINT16 *pDevId,UINT8 *pDevState);

/*
* 功能描述： CBTC进路办理逻辑区段锁闭有效性检查
* 参数说明： UINT16 const routeId,    进路号
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
* add 20221005 适配进路驱动道岔提前扳动功能
*/
UINT8 RouteCbtcLogSecLockValidCheck(UINT16 const routeId, UINT16 *pDevId, UINT8 *pDevState);

/*
* 功能描述： 进路锁闭，进路包含的物理区段的非进路内且非道岔关联的逻辑区段有效性检查
* 参数说明： UINT16 const routeId,    进路号
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
* add 20221008 适配进路驱动道岔提前扳动功能
*/
UINT8 RouteOutLogSecLockValidCheck(UINT16 const routeId, UINT16 *pDevId, UINT8 *pDevState);

/*
* 功能描述： 进路内所有道岔位置正确检查
* 参数说明： UINT16 const routeId,    进路号
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
UINT8 RouteAllSwitchPosCheck(UINT16 const routeId,UINT16 *pDevId,UINT8 *pDevState);

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

/*
* 功能描述： 进路关联防护道岔位置正确检查
* 参数说明： UINT16 const routeId,    进路号
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
UINT8 RouteRelatedProSwitchPosCheck(UINT16 const routeId,UINT16 *pDevId,UINT8 *pDevState);

/*
* 功能描述： 进路关联防护道岔锁闭检查
* 参数说明： UINT16 const routeId,    进路号
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
UINT8 RouteRelatedProSwitchLockCheck(UINT16 const routeId,UINT16 *pDevId,UINT8 *pDevState);

/*
* 功能描述： 进路关联防护道岔引导总锁检查
* 参数说明： UINT16 const routeId,    进路号
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
UINT8 RouteRelatedProSwitchYLockCheck(UINT16 const routeId,UINT16 *pDevId,UINT8 *pDevState );

/*
* 功能描述： 进路关联防护道岔位置和动作有效性检查
* 参数说明： UINT16 const routeId,    进路号
*            UINT8 sendLevel  发送等级
* 返回值  ： CI_ERROR
*            CI_SUCCESS
* edit cgh  20241203
*/
UINT8 RouteRelProSwiPosAndMovValCheck(UINT16 const routeId, UINT8 sendLevel);

/*
* 功能描述： 保护区段所属物理区段锁闭方向检查
* 参数说明： const UINT16 overlapId 保护区段ID
			UINT8 plockDirect 锁闭方向
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR   
*            CI_SUCCESS 
*/
UINT8 OverlapAllSecLockDirectCheck(const UINT16 overlapId, UINT8 plockDirect, UINT16 *pDevId,UINT8 *pDevState);

/*
* 功能描述： Overlap区段空闲检查
* 参数说明： UINT16 const overlapId
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR   
*            CI_SUCCESS 
*/
UINT8 OverlapAllSecOccuClearCheck(UINT16 const overlapId,UINT16 *pDevId,UINT8 *pDevState);

/*
* 功能描述： Overlap区段征用检查
* 参数说明： UINT16 const overlapId
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
*            UINT8* pAlarmType 报警类型（返回）
* 返回值  ： CI_ERROR  0 非全部未征用
*            CI_SUCCESS 1 全部未征用
*            RETURN_WAIT_SWITCH_USING 0x30 等待防护道岔征用
*/
UINT8 OverlapAllSecUsingClearCheck(UINT16 const overlapId, UINT16* pDevId, UINT8* pDevState, UINT8* pAlarmType);


/*
* 功能描述： 保护区段锁闭状态有效性检查
* 参数说明： UINT16 const overlapId,  OverlapID
*            UINT16 const routeId,    进路ID
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR   
*            CI_SUCCESS 
*/
UINT8 OverlapAllSecLockValidCheck(UINT16 const overlapId,UINT16 const routeId,UINT16 *pDevId,UINT8 *pDevState);


/*
* 功能描述： overlap道岔引导总锁状态检查
* 参数说明： UINT16 const overlapId,  OverlapID
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
UINT8 OverlapSwitchYLockCheck(UINT16 const overlapId,UINT16 *pDevId,UINT8 *pDevState);


/*
* 功能描述： overlap关联防护道岔引导总锁状态检查
* 参数说明： UINT16 const overlapId,  OverlapID
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
UINT8 OvlpRelatedProSwitchYLockCheck(UINT16 const overlapId,UINT16 *pDevId,UINT8 *pDevState);


/*
* 功能描述： 保护区段道岔封锁状态检查
* 参数说明： UINT16 const overlapId,  OverlapID
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
UINT8 OverlapSwitchFLockStateCheck(UINT16 const overlapId,UINT16 *pDevId,UINT8 *pDevState);


/*
* 功能描述： 保护区段道岔动作有效性检查检查
* 参数说明： UINT16 const overlapId,  OverlapID
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
UINT8 OverlapSwitchMoveValidCheck(UINT16 const overlapId,UINT16 *pDevId,UINT8 *pDevState);

/*
* 功能描述：保护区段关联防护道岔动作有效性检查检查
* 参数说明：UINT16 const overlapId,  OverlapID
*           UINT16 *pDevId,    设备Id（返回）
*           UINT8 *pDevState,  设备状态（返回）
*           UINT8 *pAlarmType,  报警类型（返回）
* 返 回 值：CI_ERROR 0 失败
*           CI_SUCCESS 1 成功
*           RETURN_WAIT_SWITCH_CHECK 0x31 等待防护道岔检查
*/
UINT8 OvlpRelatedProtSwiMovValCheck(UINT16 const overlapId, UINT16* pDevId, UINT8* pDevState, UINT8* pAlarmType);

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

/*
* 功能描述： 保护区段道岔位置正确检查
* 参数说明： UINT16 const overlapId,  OverlapID
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
UINT8 OverlapSwitchPosCheck(UINT16 const overlapId,UINT16 *pDevId,UINT8 *pDevState);

/*
* 功能描述： 保护区段关联防护道岔位置检查
* 参数说明： UINT16 const overlapId,  OverlapID
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
UINT8 OvlpRelatedProtSwitchPosCheck(UINT16 const overlapId,UINT16 *pDevId,UINT8 *pDevState);

/*
* 功能描述： 保护区段关联防护道岔防护锁闭检查
* 参数说明： UINT16 const routeId,    进路号
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
UINT8 OvlpRelatedProtSwitchLockCheck(UINT16 const overlapId,UINT16 *pDevId,UINT8 *pDevState);

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

/*
* 功能描述： 保护区段折返进路检查
* 参数说明： UINT16 const overlapId,  OverlapID
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
UINT8 OverlapAllReturnRouteCheckup(UINT16 const overlapId,UINT16 *pDevId,UINT8 *pDevState);

/*
功能描述:	保护区段侵限区段及条件道岔检查
输入参数:	UINT16 const overlapId	保护区段ID
输出参数:	UINT16 *pDevId		设备Id
				UINT8 *pDevState		设备状态
返回值: 		CI_SUCCESS			不满足侵限条件
				CI_ERROR			满足侵限条件
*/
UINT8 OverlapInvSecAndConSwiCheckup(UINT16 const overlapId,UINT16 *pDevId,UINT8 *pDevState);


/*
功能描述:	保护区段关联的侵限敌对保护区段检查
输入参数:	UINT16 const overlapId	保护区段ID
输出参数:	UINT16 *pDevId		设备Id
				UINT8 *pDevState		设备状态
返回值: 		CI_SUCCESS			不满足侵限条件
				CI_ERROR			满足侵限条件
*/
UINT8 OverlapInvOppOverlapCheckup(UINT16 const overlapId, UINT16 *pDevId, UINT8 *pDevState);

/*
* 功能描述： 进路内区段锁闭状态检查
* 参数说明： UINT16 const routeId,    进路号
*            UINT8 checkState,  比对值
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR   
*            CI_SUCCESS 
*/
UINT8 RouteAllSecLockStateCheck(UINT16 const routeId,UINT8 checkState,UINT16 *pDevId,UINT8 *pDevState);



/*
* 功能描述： 站台紧急关闭按钮无效检查
* 参数说明： UINT16 const routeId,    进路号
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
UINT8 RouteEsbVainCheck(UINT16 const routeId,UINT16 *pDevId,UINT8 *pDevState);



/*
* 功能描述： s20_站台屏蔽门关闭检查
* 参数说明： UINT16 const routeId,    进路号
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
UINT8 RoutePsdCloseCheck(UINT16 const routeId,UINT16 *pDevId,UINT8 *pDevState);



/*
* 功能描述： 信号机ID数组开放状态检查
* 参数说明： UINT8 *dataIdBuf,    检查数据数组
*            UINT8 checkSum,    检查长度
*            UINT8 checkState,    检查长度
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
UINT8 SignalBufOpenCloseStateCheck(UINT16 *dataIdBuf,UINT8 checkSum,UINT8 checkState,
                             UINT16 *pDevId,UINT8 *pDevState);


/*
* 功能描述： 进路内区段未征用状态检查
* 参数说明： RoutePhysicalSectionStruct *dataIdBuf, 检查数据数组
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR   
*            CI_SUCCESS 
*/
UINT8 RouteAllSecUseVainCheck(UINT16 const routeId,UINT16 *pDevId,UINT8 *pDevState);

/*
* 功能描述： 部分进路内区段未征用状态检查
* 参数说明： UINT16 const routeId
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
UINT8 HalfRouteAllSecUseVainCheck(UINT16 const routeId, UINT16* pDevId, UINT8* pDevState);

/*
*函数功能：检查部分进路防护道岔所在区段的征用
*参数说明：const UINT16 routeId  进路ID
*返回值：0：失败
*        1：成功
*/
UINT8 CheckProSwUseStateInHalfRoute(UINT16 const routeId, UINT16* pDevId, UINT8* pDevState);



/*****************************************车辆段************************************************/

/*
* 功能描述： 检查进路中需要检查的区段是否除列检库的区段都空闲
* 参数说明： UINT16 routeId 进路号
*            UINT8 functionId,  调用函数编号
*            UINT8 sendLevel,   故障码发送级别
*	返回值： CI_ERROR
*            CI_SUCCESS
*/	
UINT8 CheckDTrainRoutePhySecOccupy(const UINT16 routeId,UINT8 functionId,UINT8 sendLevel);

/*
* 功能描述： 检查调车进路信号保持物理区段占用情况
* 参数说明： UINT16 routeId 进路号
*	返回值：1：是
*         0: 否
*/	
UINT8 CheckDTrainKeepSigPhySecOccupy(const UINT16 routeId,UINT8 functionId,UINT8 sendLevel);

/*
* 功能描述： 非进路道岔位置和动作有效性检查
* 参数说明： 
*            UINT8 functionId,  调用函数编号
*            UINT8 sendLevel,   故障码发送级别
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
UINT8 NonRouteSwitchPosMovValCheck(UINT8 nonRouteId,UINT8 functionId,UINT8 sendLevel);

/*
* 功能描述： 非进路关联防护道岔位置和动作有效性检查
* 参数说明： 
*            UINT8 functionId,  调用函数编号
*            UINT8 sendLevel,   故障码发送级别
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
UINT8 NonRouteRelProSwiPosMovValCheck(UINT8 nonRouteId,UINT8 functionId,UINT8 sendLevel);

/*
* 功能描述： 检查进路道岔正确
* 参数说明： 
* 返回值  ： 0:失败
*			 1:成功   
*/
UINT8 CheckRouteSwitchPosRight(const UINT16 routeId);


/*
功能描述:     检查进路带动道岔是否需要被驱动
输入参数:	const UINT16 routeId 进路ID;
输出参数: 	无
返回值:       	0x55:需要被驱动,0xAA:无需被驱动   
*/
UINT8 CheckRoutAssoSwitNeedDriv(const UINT16 routeId);


/*
* 功能描述： 检查非进路中信号机未断丝
* 参数说明： 
* 返回值  ： 0：	有信号机断丝
*            1:   	非进路中信号机均未断丝
*/
UINT8 CheckNonRouteSignalNoBreak(UINT8 nonRouteId,UINT8 functionId, UINT8 sendLevel);

/*
* 功能描述： 检查非进路中是否有信号机被封锁
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0：	有信号机被封锁
*            1:   	进路中信号机均未被封锁
*/
UINT8 CheckNonRouteSignalFengSuo(UINT8 nonRouteId,UINT8 functionId, UINT8 sendLevel);

/*
* 功能描述： 检查非进路中信号机之前驱动开放
* 参数说明： 
* 返回值  ： 0：	有信号机被封锁
*            1:   	进路中信号机均未被封锁
*/
UINT8 CheckNonRouteSignalPreDrvOpen(UINT8 nonRouteId,UINT8 functionId,UINT8 sendLevel);

/*
* 功能描述： 检查非进路中的敌对信号是否成立
* 参数说明： UINT16 routeId 进路号
*	返回值：1：敌对成立
*         0: 敌对不成立
*/				
UINT8 CheckNonRouteEnemySignal(UINT8 nonRouteId,UINT8 functionId,UINT8 sendLevel);

/*
* 功能描述： 检查非进路物理区段征用
* 参数说明： 
*	返回值：1：是
*         0: 否
*/	
UINT8 CheckNonRoutePhySecUsing(UINT8 nonRouteId,UINT8 functionId,UINT8 sendLevel);

/*
* 功能描述： 检查非进路中的是否所有区段都未锁闭
* 参数说明： UINT16 routeId 进路号
*	返回值：1：是
*         0: 否
*/	
UINT8 CheckNonRoutePhySectionUnLock(UINT8 nonRouteId,UINT8 functionId,UINT8 sendLevel);

/*
* 功能描述： 检查非进路中是否有道岔被封锁
* 参数说明： 
* 返回值  ： 0：	有道岔被封锁
*            1:   	进路中道岔均未被封锁
*/
UINT8 CheckNonRouteSwitchFengSuo(UINT8 nonRouteId,UINT8 functionId,UINT8 sendLevel);

/*
* 功能描述： 检查非进路关联防护道岔是否防护锁闭
* 参数说明： 
* 返回值  ： 0：	有防护道岔未防护锁闭
*            1:   	所有防护道岔已防护锁闭
*/
UINT8 CheckNonRouteRelProSwiLockSta(UINT8 nonRouteId,UINT8 functionId,UINT8 sendLevel);

/*
* 功能描述： 检查非进路中是否有道岔引导总锁
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0：	有道岔被封锁
*            1:   	进路中道岔均未引导总锁
*/
UINT8 CheckNonRouteSwitchYinSuo(UINT8 nonRouteId,UINT8 functionId,UINT8 sendLevel);

/*
* 功能描述： 检查非进路关联防护道岔是否引导总锁
* 参数说明： const UINT16 routeId, 进路ID
*			 UINT8 functionId,函数Id
*			 UINT8 sendLevel,发送级别
* 返回值  ： 0：	有道岔被封锁
*            1:   	进路中道岔均未引导总锁
*/
UINT8 CheckNonRouteRelProSwiYinSuo(UINT8 nonRouteId,UINT8 functionId,UINT8 sendLevel);

/*
* 功能描述： 检查非进路中区段占用状态
* 参数说明： 
*	返回值：1：是
*         0: 否
*/	
UINT8 CheckNonRoutePhySectionOccupy(UINT8 nonRouteId,UINT8 functionId,UINT8 sendLevel);

/*
* 功能描述： 检查非进路中的是否所有区段都锁闭
* 参数说明： UINT16 routeId 进路号
*	返回值：1：是
*         0: 否
*/	
UINT8 CheckNonRoutePhySectionLock(UINT8 nonRouteId,UINT8 functionId,UINT8 sendLevel);

/*
* 功能描述： 检查非进路道岔正确
* 参数说明： 
* 返回值  ： 0:失败
*			 1:成功   
*/
UINT8 CheckNonRouteSwitchPosRight(UINT8 nonRouteId,UINT8 functionId,UINT8 sendLevel);

/*
* 功能描述： 检查区故解进路列车已驶出
* 参数说明： UINT16 routeId 进路号
*	返回值：1：是
*         0: 否
*/	
UINT8 CheckPhySecFaultTrainCrossRoute(const UINT16 routeId);

/*
* 功能描述： 非进路侵限无效检查
* 参数说明： 
*            UINT8 functionId,  调用函数编号
*            UINT8 sendLevel,   故障码发送级别
* 返回值  ： CI_ERROR   侵限
*            CI_SUCCESS 侵限不满足
*/
UINT8 NonRouteIntruSecVainCheck(UINT8 nonRouteId,UINT8 functionId,UINT8 sendLevel);

/*
* 功能描述： 自动折返进路是否有抵触自动进路已办理检查
* 参数说明： 
*				UINT16 autoReturnId自动进路ID
*            UINT8 functionId,  调用函数编号
*            UINT8 sendLevel,   故障码发送级别
* 返回值  ： CI_ERROR   抵触
*            CI_SUCCESS 抵触不满足
*/
UINT8 AutoReturnIsOpposedCheck(UINT16 autoReturnId, UINT8 functionID);

/*
* 功能描述： 自动通过进路是否有抵触自动进路已办理检查
* 参数说明： 
*				UINT16 autoReturnId自动进路ID
*            UINT8 functionId,  调用函数编号
*            UINT8 sendLevel,   故障码发送级别
* 返回值  ： CI_ERROR   抵触
*            CI_SUCCESS 抵触不满足
*/
UINT8 AutoRouteIsOpposedCheck(UINT16 autoRouteId, UINT8 functionID);

/*
* 功能描述： 以指定进路的始端信号机作为终端信号机的折返进路是已办理检查
* 参数说明： 
*			 UINT16 *dataIdBuf,    检查数据数组
*            UINT8 checkSum,      检查长度
*            UINT16 *pDevId,      设备Id（返回）
*            UINT8 *pDevState,    设备状态（返回）
* 返回值  ： CI_ERROR   未通过检查
*            CI_SUCCESS 通过检查
*/
UINT8 RtnEndSigAsStartSigRouteCheck(UINT16 *pDataIdBuf,UINT8 checkSum,UINT16 *pDevId,UINT8 *pDevState);

/*
* 功能描述： 进路除最后一个区段外全部空闲检查
* 参数说明： UINT16 routeId,    进路号
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR       物理区段状态检查不通过
*			 CI_ERROR_QXZC  取消照查条件不满足
*            CI_SUCCESS 
*/
UINT8 RouteExceptLastSecOccuClrCheck(UINT16 const routeId);

/*
* 功能描述： 全自动折返进路是否有抵触自动进路已办理检查
* 参数说明： 
*				UINT16 allAutoReturnId

* 返回值  ： CI_ERROR   抵触
*            CI_SUCCESS 抵触不满足
*/
UINT8 AllAutoReturnIsOpposedCheck(UINT16 allAutoReturnId, UINT8 chFunctionId);


/*
* 功能描述： 进路区段封锁检查
* 参数说明： UINT16 routeId,    进路号
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR   
*            CI_SUCCESS 
*/
UINT8 RouteSecFLockCheck(UINT16 const routeId, UINT16 *pDevId,UINT8 *pDevState );


/*
* 功能描述： 保护区段封锁状态有效性检查
* 参数说明： UINT16 const overlapId,  OverlapID
*            UINT16 const routeId,    进路ID
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR   
*            CI_SUCCESS 
*/
UINT8 OverlapAllSecFLockValidCheck(UINT16 const overlapId,UINT16 *pDevId,UINT8 *pDevState);

/*
* 功能描述： 其他联锁条件检查
* 参数说明： UINT16 routeId 进路ID
*			 UINT16 const overlapId,  OverlapID
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR   
*            CI_SUCCESS routeId, functionId, sendLevel
*/
UINT8 OtherCiValidCheck(UINT16 const routeId,UINT8 const functionId,UINT8 const sendLevel);

/*
* 功能描述： 驱动车库门开门条件检查
* 参数说明： const UINT16 garageDoorId, 车库门ID
* 返回值  ： CI_ERROR，检查失败   
*            CI_SUCCESS，检查通过
*/
UINT8 DriveGarageDoorOpenCheck(const UINT16 garageDoorId);

/* 功能描述： 驱动车库门关门条件检查
* 参数说明： const UINT16 garageDoorId, 车库门ID
* 返回值  ： CI_ERROR，检查失败   
*            CI_SUCCESS，检查通过
*/
UINT8 DriveGarageDoorCloseCheck(const UINT16 garageDoorId);

/* 功能描述： RC模式下存在占用时，车库门关门条件检查
*  参数说明： const UINT16 garageDoorId, 车库门ID
*           const UINT8 sendLevel   是否向ATS发送对应报警
*  返回值：  CI_ERROR，检查失败
*           CI_SUCCESS，检查通过
*/
UINT8 GarageDoorCloseCheckinRCMode(const UINT16 garageDoorId, const UINT8 sendLevel);

/* 功能描述： 车库门关门相邻计轴条件检查
*  参数说明： const UINT16 garageDoorId, 车库门ID
*           const  UINT8 functionId  调用函数编号
*           const UINT8 sendLevel   故障码发送级别
*  返回值：  CI_ERROR，检查失败
*           CI_SUCCESS，检查通过
*/
UINT8 CheckAdjacentACOfGarageDoor(const UINT16 garageDoorId, const  UINT8 functionId, const UINT8 sendLevel);


/* 功能描述： 车库门最接近列车条件检查
*  参数说明： const UINT16 garageDoorId, 车库门ID
*           const  UINT8 functionId  调用函数编号
*           const UINT8 sendLevel   故障码发送级别
*  返回值：  CI_ERROR，检查失败
*           CI_SUCCESS，检查通过
*/
UINT8 CheckNearestTrainOfGarageDoor(const UINT16 garageDoorId, const  UINT8 functionId, const UINT8 sendLevel);


/* 功能描述： 车库门A库轨条件检查
*  参数说明： const UINT16 garageDoorId, 车库门ID
*           const  UINT8 functionId  调用函数编号
*           const UINT8 sendLevel   故障码发送级别
*  返回值：  CI_ERROR，检查失败
*           CI_SUCCESS，检查通过
*/
UINT8 CheckAkuPhysecOfGarageDoor(const UINT16 garageDoorId, const  UINT8 functionId, const UINT8 sendLevel);



/* L12_点式进路信号开放其他信号联锁条件检查 */
/*
* 功能描述： 点式进路信号开放其他信号联锁条件检查
* 参数说明：
*            UINT16 RouteId,    进路号
*            UINT8 functionId,  调用函数编号
*            UINT8 sendLevel,   故障码发送级别
* 返回值  ： CI_ERROR   
*            CI_SUCCESS 
*			 OpenBlocRouteOtherSignalCheck
*/
UINT8 OpenBlocRouteOtherSignalCheck(UINT16 routeId,UINT8 functionId,UINT8 sendLevel);

/* L14_点式进路信号保持其他信号联锁条件检查 */
/*
* 功能描述： 点式进路信号保持其他信号联锁条件检查
* 参数说明：
*            UINT16 RouteId,    进路号
*            UINT8 functionId,  调用函数编号
*            UINT8 sendLevel,   故障码发送级别
* 返回值  ： CI_ERROR   
*            CI_SUCCESS 
*/
UINT8 KeepBlocRouteOtherSignalCheck(UINT16 routeId,UINT8 functionId,UINT8 sendLevel);

/*
* 功能描述： 进路内区段跳跃锁闭状态检查
* 参数说明： UINT16 const routeId,    进路号
*            UINT8 checkState,  比对值
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： 失败返回CI_ERROR   
*            成功返回CI_SUCCESS 
*/
UINT8 RouteAllSecJumpLockStateCheck(UINT16 const routeId,UINT16 *pDevId,UINT8 *pDevState);

/*
* 功能描述： 进路信号保持道岔联锁条件检查
* 参数说明：
*            UINT16 RouteId,    进路号
*            UINT8 functionId,  调用函数编号
*            UINT8 sendLevel,   故障码发送级别
* 返回值  ： CI_ERROR   
*            CI_SUCCESS 
*/
UINT8 KeepRouteSwitchCheck(UINT16 routeId,UINT8 functionId,UINT8 sendLevel);
/*
* 功能描述： 保持列车进路信号机联锁条件检查
* 参数说明：
*            UINT16 RouteId,    进路号
*            UINT8 functionId,  调用函数编号
*            UINT8 sendLevel,   故障码发送级别
* 返回值  ： CI_ERROR   
*            CI_SUCCESS 
*/
UINT8 KeepLTrainRouteSignalCheck(UINT16 routeId,UINT8 functionId,UINT8 sendLevel);


/* L07_点式进路锁闭道岔联锁条件检查 */
/*
* 功能描述： 点式进路锁闭道岔联锁条件检查
* 参数说明：
*            UINT16 RouteId,    进路号
*            UINT8 functionId,  调用函数编号
*            UINT8 sendLevel,   故障码发送级别
* 返回值  ： CI_ERROR   
*            CI_SUCCESS 
*/
UINT8 LockBlocRouteSwitchCheck(UINT16 routeId,UINT8 functionId,UINT8 sendLevel);

/*
* 功能描述： 锁闭点式进路区段联锁条件检查
* 参数说明：
*            UINT16 RouteId,    进路号
*            UINT8 functionId,  调用函数编号
*            UINT8 sendLevel,   故障码发送级别
* 返回值  ： CI_ERROR
*            CI_SUCCESS
* add 20221008 适配进路驱动道岔提前扳动功能
*/
UINT8 LockBlocRouteSectionCheck(UINT16 routeId, UINT8 functionId, UINT8 sendLevel);

/*
* 功能描述： 锁闭CBTC列车进路区段联锁条件检查
* 参数说明：
*            UINT16 RouteId,    进路号
*            UINT8 functionId,  调用函数编号
*            UINT8 sendLevel,   故障码发送级别
* 返回值  ： CI_ERROR
*            CI_SUCCESS
* add 20221008 适配进路驱动道岔提前扳动功能
*/
UINT8 LockCBTCRouteSectionCheck(UINT16 routeId, UINT8 functionId, UINT8 sendLevel);

/*
* 功能描述： 检查进路内是否有道岔驱动超时
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： UINT8   
             CI_SUCCESS:进路内无道岔驱动超时
			 CI_ERROR:进路内有道岔驱动超时
*/
UINT8 ChekRoutSwitDrivOvtmStat(const UINT16 routeId);

/*
* 功能描述： 区段故障解锁
* 参数说明： UINT16 const phySectionId
* 返回值  ： CI_ERROR
*            CI_SUCCESS
* 故障编码： EFUNC_UNLOCK_FAULT_SECTION
*/
UINT8 PhySecFaultUnlockLogicProcess(const UINT16 phySectionId);

/*
* 功能描述： 检查进路总人解的可行性。只要进路有一个区段可以直接解锁或变绿光带都认为总人解可行。
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： UINT8
CI_SUCCESS:总人解可执行
CI_ERROR:总人解不可执行
*/
UINT8 CheckRouteZongRenJieFeasibility(const UINT16 routeId);


/*
锁闭本联锁保护区段条件检查
UINT16 const overlapId 保护区段ID
UINT8 PLockDirect 锁闭方向

CI_SUCCESS 成功
CI_ERROR 失败

*/
UINT8 LockLocalOvlpCheckHlht(const UINT16 overlapId, UINT8 PLockDirect);

/*
解锁本联锁保护区段条件检查
UINT16 overlapId 保护区段ID

CI_SUCCESS 成功
CI_ERROR 失败

*/
UINT8 UnlockLocalOvlpCheckHlht(UINT16 overlapId);

/*
* 功能描述： 锁闭进路overlap逻辑处理,进路属于自家CI，但是保护区段属于互联互通的邻线
* 参数说明： const UINT16 routeId, const UINT16 overlapId
* 返回值  ： CI_ERROR
*            CI_SUCCESS
* 故障编码： EFUNC_LOCK_OVER_LAP
*/
UINT8 LockOthCiOvlpCheckHlht(const UINT16 routeId, const UINT16 overlapId);

/*
* 功能描述： 其他联锁条件设备状态检查
* 参数说明： UINT16 routeId 进路ID
*			 RouteOhterCheckStruct *pOtherDevInfo
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR   
*            CI_SUCCESS 
*/
UINT8 OtherCiDevStatusCheck(UINT16 const routeId, const RouteOtherCheckStruct *pOtherDevInfo,UINT16 *pDevId, UINT8 *pDevState);

/*
功能描述:	进路终端信号机保护区段有效性检查
输入参数:	UINT16 const routeId	进路ID
输出参数:	UINT16 *pDevId		设备Id
UINT8 *pDevState		设备状态
返回值: 		CI_SUCCESS			不满足侵限条件
CI_ERROR			满足侵限条件
*/
UINT8 SignalOverlapValidCheck(UINT16 const routeId, UINT16 *pDevId, UINT8 *pDevState);

/*
* 功能描述： 点式进路开放信号联锁条件检查
* 参数说明：
*            UINT16 RouteId,    进路号
*            UINT8 functionId,  调用函数编号
*            UINT8 sendLevel,   故障码发送级别
* 返回值  ： CI_ERROR   
*            CI_SUCCESS 
*/
UINT8 OpenBlocRouteSignalCheck(UINT16 routeId,UINT8 functionId,UINT8 sendLevel);

/*
* 功能描述： 开放进路道岔联锁条件检查
* 参数说明：
*            UINT16 RouteId,    进路号
*            UINT8 functionId,  调用函数编号
*            UINT8 sendLevel,   故障码发送级别
* 返回值  ： CI_ERROR   
*            CI_SUCCESS 
*/
UINT8 OpenLTrainRouteSwitchCheck(UINT16 routeId,UINT8 functionId,UINT8 sendLevel);

/* 点式折返进路信号保持信号联锁条件检查 */
/*
* 功能描述： 点式折返进路信号保持信号联锁条件检查
* 参数说明：
*            UINT16 RouteId,    进路号
*            UINT8 functionId,  调用函数编号
*            UINT8 sendLevel,   故障码发送级别
* 返回值  ： CI_ERROR   
*            CI_SUCCESS 
*/
UINT8 KeepBlocReturnSignalCheck(UINT16 routeId,UINT8 functionId,UINT8 sendLevel);

/* L01_点式办理进路信号机联锁条件检查 */
/*
* 功能描述： 点式进路信号机联锁条件检查
* 参数说明：
*            UINT16 RouteId,    进路号
*            UINT8 functionId,  调用函数编号
*            UINT8 sendLevel,   故障码发送级别
* 返回值  ： CI_ERROR   
*            CI_SUCCESS 
*/
UINT8 SetBlocRouteSignalCheck( UINT16 routeId,UINT8 functionId,UINT8 sendLevel);

/* L11_点式进路开放信号站台联锁条件检查 */
/*
* 功能描述： 点式进路开放信号站台联锁条件检查
* 参数说明：
*            UINT16 RouteId,    进路号
*            UINT8 functionId,  调用函数编号
*            UINT8 sendLevel,   故障码发送级别
* 返回值  ： CI_ERROR   
*            CI_SUCCESS 
*/
UINT8 OpenRoutePlatformCheck(UINT16 routeId,UINT8 functionId,UINT8 sendLevel);

/*
* 功能描述： 引导进路全站引导总锁检查
* 参数说明：
*            UINT16 RouteId,    进路号
*            UINT8 functionId,  调用函数编号
*            UINT8 sendLevel,   故障码发送级别
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
UINT8 LeadzLockCheck(UINT16 routeId, UINT8 functionId, UINT8 sendLevel);

/*
* 功能描述： 开放列车进路信号机联锁条件检查
* 参数说明：
*            UINT16 RouteId,    进路号
*            UINT8 functionId,  调用函数编号
*            UINT8 sendLevel,   故障码发送级别
* 返回值  ： CI_ERROR   
*            CI_SUCCESS 
*/
UINT8 OpenLTrainRouteSignalCheck(UINT16 routeId,UINT8 functionId,UINT8 sendLevel);

/* L09_点式进路开放信号道岔联锁条件检查 */
/*
* 功能描述： 点式进路开放信号道岔联锁条件检查
* 参数说明：
*            UINT16 RouteId,    进路号
*            UINT8 functionId,  调用函数编号
*            UINT8 sendLevel,   故障码发送级别
* 返回值  ： CI_ERROR   
*            CI_SUCCESS 
*/
UINT8 OpenBlocRouteSwitchCheck(UINT16 routeId,UINT8 functionId,UINT8 sendLevel);

/* L10_点式进路开放信号保护区段联锁条件检查 */
/*
* 功能描述： 点式进路开放信号保护区段联锁条件检查
* 参数说明：
*            UINT16 RouteId,    进路号
*            UINT8 functionId,  调用函数编号
*            UINT8 sendLevel,   故障码发送级别
* 返回值  ： CI_ERROR   
*            CI_SUCCESS 
*/
UINT8 OpenBlocRouteOverlapCheck(UINT16 routeId,UINT8 functionId,UINT8 sendLevel);

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

/*检查道岔上一次的有效驱动是否在持续
* 参数说明：
*            const UINT16 switchId,  道岔ID
*            const UINT8 swtCurPos,  道岔位置
*返回值： CI_ERROR 仍在持续，道岔不可动
*          CI_SUCCESS 没有持续，道岔可动作
*/
UINT8 checkSwtLastValDrvPosStayorNot(const UINT16 switchId,const UINT8 swtCurPos);


	/*
* 功能描述： 锁闭保护区段检查道岔驱动超时
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： UINT8   
             CI_SUCCESS:无道岔驱动超时
			 CI_ERROR:有道岔驱动超时
*/
UINT8 ChekSwitDrivOvtm(const UINT16 overlapId);

/*
* 功能描述： 检查自动通过进路内方信号机道岔区段的封锁情况
* 参数说明： const UINT16 autoRouteId, 自动通过进路ID
* 返回值  ： UINT8   
             CI_SUCCESS:无封锁
			 CI_ERROR:有封锁
*/
UINT8 ChekAutoRouteFlockState(const UINT16 autoRouteId);

/*
* 功能描述： 检查自动折返进路内方信号机道岔区段的封锁情况
* 参数说明： const UINT16 autoReturnId, 自动通过进路ID
* 返回值  ： UINT8   
             CI_SUCCESS:无封锁
			 CI_ERROR:有封锁
*/
UINT8 ChekAutoReturnFlockState(const UINT16 autoReturnId);

/*
* 功能描述： 检查全自动折返进路内方信号机道岔区段的封锁情况
* 参数说明： const UINT16 allAutoReturnId,全自动折返进路ID
* 返回值  ： UINT8   
             CI_SUCCESS:无封锁
			 CI_ERROR:有封锁
*/
UINT8 ChekAllAutoReturnFlockState(const UINT16 allAutoReturnId);
/*
* 功能描述： 检查自动触发进路内方信号机道岔区段的封锁情况
* 参数说明：
* 返回值  ： UINT8
			 CI_SUCCESS:无封锁
			 CI_ERROR:有封锁
*cgh-合并CID-3037-4：
*/
UINT8 ChekAutoTriggerRouteFlockState(UINT16 routeId);
/*
* 功能描述： 检查进路内方信号机道岔区段的封锁情况
* 参数说明： const UINT16 autoRouteId, 进路ID
*            const UINT8 functionId, 功能ID
* 返回值  ： UINT8   
             CI_SUCCESS:无封锁
			 CI_ERROR:有封锁
*/
UINT8 ChekRouteFlockState(const UINT16 routeId, const UINT8 functionId);
/*
* 功能描述： 保护区段内区段跳跃锁闭状态检查
* 参数说明： UINT16 const overlapId,    保护区段ID
*            UINT8 checkState,  比对值
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： 失败返回CI_ERROR   
*            成功返回CI_SUCCESS 
*/
UINT8 OverlapAllSecJumpLockStateCheck(UINT16 const overlapId,UINT16 *pDevId,UINT8 *pDevState);

/*
* 功能描述： 检查防淹门关联物理区段占用检查
* 参数说明：
*            UINT16 floodGateId,    防淹门Id
*            UINT16 *pDevId,    设备id指针，取物理区段id
*            UINT8 *pDevState,  设备id状态指针，取物理区段状态
* 返回值  ： CI_ERROR   
*            CI_SUCCESS 
*/
UINT8 FloodGateAccessPhysecAcCheck(UINT16 floodGateId,UINT16 *pDevId,UINT8 *pDevState);

/*
* 功能描述： 检查防淹门防护区域物理区段占用检查
* 参数说明：
*            UINT16 floodGateId,    防淹门Id
*            UINT16 *pDevId,    设备id指针，取物理区段id
*            UINT8 *pDevState,  设备id状态指针，取物理区段状态
* 返回值  ： CI_ERROR   
*            CI_SUCCESS 
*/
UINT8 FloodGateProtPhysecOccuCheck(UINT16 floodGateId,UINT16 *pDevId,UINT8 *pDevState);

/*
* 功能描述： 保护区段关联防淹门状态检查
* 参数说明： UINT16 const overlapId,    保护区段ID
*            UINT8 checkState,  比对值
*            UINT16 *pDevId,    设备Id（返回）
*			 UINT8 *pDevStateType,设备状态类型（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： 失败返回CI_ERROR   
*            成功返回CI_SUCCESS 
*/
UINT8 OverlapFloodGateStateCheck(UINT16 const overlapId,UINT16 *pDevId,UINT8 *pDevStateType,UINT8 *pDevState);

/*
* 功能描述： 检查自动通过进路内防淹门状态
* 参数说明： const UINT16 autoRouteId, 自动通过进路ID
* 返回值  ： UINT8   
             CI_SUCCESS:检查成功
			 CI_ERROR:检查失败
*/
UINT8 AutoRouteFloodStateCheck(const UINT16 autoRouteId);

/*
* 功能描述： 检查自动折返进路内防淹门状态
* 参数说明： const UINT16 autoReturnId, 自动折返进路ID
* 返回值  ： UINT8   
             CI_SUCCESS:检查成功
			 CI_ERROR:检查失败
*/
UINT8 AutoReturnFloodStateCheck(const UINT16 autoReturnId);

/*
* 功能描述： 检查全自动折返进路内防淹门状态
* 参数说明： const UINT16 allAutoReturnId, 全自动折返进路ID
* 返回值  ： UINT8   
             CI_SUCCESS:检查成功
			 CI_ERROR:检查失败
*/
UINT8 AllAutoReturnFloodStateCheck(const UINT16 allAutoReturnId);


/*
* 功能描述： 进路关联防护道岔封锁状态检查
* 参数说明： UINT16 const routeId,    进路号
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
UINT8 RouteReltProtSwitchFLockCheck(UINT16 const routeId,UINT16 *pDevId,UINT8 *pDevState);


/*
* 功能描述： 保护区段关联防护道岔封锁状态检查
* 参数说明： UINT16 const overlapId,  OverlapID
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
UINT8 OvlpRelProtSwiFLockStaCheck(UINT16 const overlapId,UINT16 *pDevId,UINT8 *pDevState);


/*
* 功能描述： 检查非进路防护道岔是否有道岔封锁
* 参数说明： 
* 返回值  ： 0：	有道岔被封锁
*            1:   	进路中道岔均未被封锁
*/
UINT8 CheckNonRouteRelProSwiFengSuo(UINT8 nonRouteId,UINT8 functionId,UINT8 sendLevel);

/*
* 功能描述： 进路关联防护道岔道岔区段封锁状态检查
* 参数说明： UINT16 const routeId,    进路号
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
UINT8 RouteRelProtSwitchSecFLockCheck(UINT16 const routeId,UINT16 *pDevId,UINT8 *pDevState);


/*
* 功能描述： 保护区段关联防护道岔区段封锁状态检查
* 参数说明： UINT16 const overlapId,  OverlapID
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
UINT8 OvlpRelProSwiSecFLockStaCheck(UINT16 const overlapId,UINT16 *pDevId,UINT8 *pDevState);

/*
* 功能描述： 检查非进路防护道岔所在区段是否有区段封锁
* 参数说明： 
* 返回值  ： 0：	有区段被封锁
*            1:   	检查成功，没有被封锁
*/
UINT8 CheckNonRouteRelProSwitSecFLock(UINT8 nonRouteId,UINT8 functionId,UINT8 sendLevel);

/*
* 功能描述： 检查自动触发进路内方防淹门的状态
* 参数说明： 
* 返回值  ： UINT8   
             CI_SUCCESS:无封锁
			 CI_ERROR:有封锁
*/
UINT8 ChekAutoTrigRouteFloodGateState(UINT16 routeId);


/*
* 功能描述： 检查非进路中是否有区段被封锁
* 参数说明： 
* 返回值  ： 0：	有道岔被封锁
*            1:   	进路中道岔均未被封锁
*/
UINT8 CheckNonRoutePhysecFengSuo(UINT8 nonRouteId,UINT8 functionId,UINT8 sendLevel);

/*
* 功能描述： 检查进路终端信号机断丝
* 参数说明：
*            UINT16 RouteId,    进路号
*            UINT8 functionId,  调用函数编号
*            UINT8 sendLevel,   故障码发送级别
* 返回值  ： CI_ERROR   
*            CI_SUCCESS 
*/
UINT8 CheckRouteEndSignalDS(UINT16 routeId,UINT8 functionId,UINT8 sendLevel);

/*
* 功能描述： 防淹门状态检查
* 参数说明：
*            UINT16 floodGateId,    防淹门编号
*            UINT8 functionId,  调用函数编号
*            UINT8 sendLevel,   故障码发送级别
* 返回值  ： CI_ERROR   
*            CI_SUCCESS 
*			 RETURN_OPEN_ERR_SIGOPEN
*/
UINT8 FloodGateStateCheck(UINT16 floodGateId,UINT8 functionId,UINT8 sendLevel);

/*
* 功能描述： 检查计轴区段跳跃锁闭是否有道岔驱动超时
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： UINT8   
             CI_SUCCESS:计轴区段内无道岔驱动超时
			 CI_ERROR:计轴区段内有道岔驱动超时
*/
UINT8 ChekJumpLockSwitDrivOvtmStat(const UINT16 axisSecId);

/*
* 功能描述： 跳跃锁闭区段检查
* 参数说明： const UINT16 axisSecId, 计轴区段ID
* 返回值  ： UINT8   
             CI_SUCCESS:检查通过
			 CI_ERROR:检查失败
*/
UINT8 JumpLockSecStateCheck(const UINT16 axisSectionId,UINT8 funcId,UINT8 sendLevel);



/*
* 功能描述： 跳跃锁闭道岔检查
* 参数说明： const UINT16 axisSecId, 计轴区段ID
* 返回值  ： UINT8   
             CI_SUCCESS:检查通过
			 CI_ERROR:检查失败
*/
UINT8 JumpLockSwitchCheck(const UINT16 axisSecId,UINT8 funcId,UINT8 sendLevel);


/*
* 功能描述： 计轴区段道岔引导总锁状态检查
* 参数说明： UINT16 const axisSecId,    计轴区段编号
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
UINT8 AxisSecSwitchYZLockCheck(UINT16 const axisSecId,UINT16 *pDevId,UINT8 *pDevState);

/*
* 功能描述： 计轴区段道岔封锁状态检查
* 参数说明： UINT16 const axisSecId,    计轴区段编号
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
UINT8 AxisSecSwitchFLockCheck(UINT16 const axisSecId,UINT16 *pDevId,UINT8 *pDevState);

/*
* 功能描述： 计轴区段道岔位置和动作有效性检查
* 参数说明： UINT16 const axisSecId,    计轴区段编号
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
UINT8 AxisSecSwitchPosMoveValCheck(UINT16 const axisSecId,UINT16 *pDevId,UINT8 *pDevState,UINT8 funcId,UINT8 sendLevel);

/*
* 功能描述： 计轴区段内所有道岔位置正确检查
* 参数说明： UINT16 const axisSecId,    计轴区段编号
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
UINT8 AxisSecAllSwitchPosCheck(UINT16 const axisSecId,UINT16 *pDevId,UINT8 *pDevState);
/*
* 功能描述： 指定进路信号机外方第一物理区段道岔位置检查
* 参数说明： UINT16 const routeId,    进路编号
* 返回值  ： CI_ERROR
*            CI_SUCCESS
* qw.liu	修改 进路外方第一区段道岔位置检查不使用接近区段，改为直接查逻辑区段
*/
UINT8 RouteOutfirstPhySecSwiPosCheck(UINT16 const routeId);
/*
* 功能描述： 指条件接近道岔与道岔当前位置检查
* 参数说明： RouteNearPhySectionStruct* pRouteNearPSSecStru,    进路接近区段结构体
*           UINT16 outPhySecId 信号机外方第一区段ID
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
UINT8 BlocNearConditionSwitchPosCheck(RouteNearPhySectionStruct* pRouteNearPSSecStru,UINT16 outPhySecId);

/*
* 功能描述： 车辆段列车进路区段锁闭有效性检查
* 参数说明： 
*            UINT16 const routeId,    进路号
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR   
*            CI_SUCCESS 
*/
UINT8 TradLTrainRouteSecLockValCheck(UINT16 const routeId,UINT16 *pDevId,UINT8 *pDevState);

/*
*函数功能：检查自动组合进路包含的自动进路是否满足条件
*参数说明：const UINT16 autoRouteId 自动进路ID
*返回值：无
*/
UINT8 GroupInAutoRouteConditionCheck(UINT16 autoRouteId);

/*
*函数功能：保护区段内道岔、防护道岔是否征用检查
*参数说明：const UINT16 overlapId保护区段ID 
*返回值：CI_ERROR:保护区段相关道岔未征用
*        CI_SUCCESS：保护区段相关道岔征用
*/
UINT8 OvlpIncludeAndProtSwitchCheck(const UINT16 overlapId);
/*
*函数功能：区段处于防护征用时，是否可以办理检查
*参数说明：const UINT16 devId 物理区段ID 
*          const UINT16 routeId 已经征用或要征用该区段的进路
*返回值：0：失败
*        1：成功
*/
UINT8 CheckPhysecUseState(const UINT16 devId,const UINT16 routeId);
/*
*函数功能：保护区段区段处于征用时，是否可以办理检查
*参数说明：const UINT16 devId 物理区段ID 
*          const UINT16 overlapId 保护区段ID
*返回值：0：失败
*        1：成功
*/
UINT8 CheckOverlapPhysecUseState(const UINT16 devId,const UINT16 overlapId);
/*
*函数功能：道岔征用检查
* 输入参数：const UINT16 overlapId 保护区段ID
*           UINT16 *pDevId  设备ID
*返回值：CI_ERROR 0 检查失败
*        CI_SUCCESS 1 检查通过
*        RETURN_WAIT_SWITCH_USING 0x30 等待防护道岔征用
*/
UINT8 CheckOverlapSwitchUseState(const UINT16 overlapId, UINT16* pDevId);

/*
* 功能描述： Overlap区段列车数量检查
* 参数说明： UINT16 const overlapId
*            UINT16 *pTrainId,    列车编号（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
UINT8 OverlapLogicSectionTrainCheck(UINT16 const overlapId, UINT16 *pTrainId);

/*
* 功能描述： 保护区段可用性逻辑检查
* 参数说明： UINT16 const routeId, UINT16 const overlapId
* 返回值  ： CI_ERROR 检查不通过
*            CI_SUCCESS 检查通过
*/
UINT8 OverlapUsableCheck(UINT16 const wOverlapId);

/*
* 功能描述： 逻辑区段资源可用性检查
* 参数说明： UINT16 const wLogicSecId
* 返回值  ： CI_ERROR
*            CI_SUCCESS
* 故障编码： EFUNC_LOGIC_RES_APP_CHECK
*/
UINT8 LogicSecResApplicabilityCheck(UINT16 const wLogicSecId);

/*
* 功能描述： 逻辑进路逻辑区段资源可用性检查
* 参数说明： UINT16 const wLogicSecId	逻辑区段ID
*			 UINT16 const wLogRouteId	逻辑进路ID
* 返回值  ： CI_ERROR
*            CI_SUCCESS
* 故障编码： EFUNC_LOGROUTE_LOGIC_RES_APP_CHECK
*/
UINT8 LogRouteLogSecResAppCheck(UINT16 const wLogicSecId, UINT16 const wLogRouteId);

/*
* 功能描述： 逻辑区段资源可用区段联锁条件检查
* 参数说明：
*            UINT16 RouteId,    进路号
*            UINT8 functionId,  调用函数编号
*            UINT8 sendLevel,   故障码发送级别
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
UINT8 LogicSecResSectionCheck(UINT16 wLogicSecId, UINT8 functionId, UINT8 sendLevel);

/*
* 功能描述： 逻辑进路逻辑区段资源可用区段联锁条件检查
* 参数说明：
*            UINT16 wLogRouteId,    逻辑进路号
*			 UINT16 wLogicSecId,	逻辑区段ID
*            UINT8 functionId,  调用函数编号
*            UINT8 sendLevel,   故障码发送级别
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
UINT8 LogRouteLogicSecResSectionCheck(UINT16 wLogicSecId, UINT16 wLogRouteId, UINT8 functionId, UINT8 sendLevel);

/*
* 功能描述： 逻辑区段资源可用性检查
* 参数说明：
*            UINT16 wLogicSecId,    进路号
*            UINT8 functionId,  调用函数编号
*            UINT8 sendLevel,   故障码发送级别
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
UINT8 LogicSecResSwitchCheck(UINT16 wLogicSecId, UINT8 functionId, UINT8 sendLevel);

/*
* 功能描述： 逻辑区段跳跃锁闭状态检查
* 参数说明： UINT16 const routeId, 进路ID
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
* 创建    ： qw.liu 2022-03-02
*/
UINT8 LogicSecJumpLockCheck(UINT16 const wLgcId, UINT16 *pDevId, UINT8 *pDevState);

/*
* 功能描述： 逻辑区段侵限无效检查
* 参数说明：
*            UINT16 const physicalId,    物理区段ID
* 返回值  ： CI_ERROR   侵限
*            CI_SUCCESS 侵限不满足
* 创  建
*/
UINT8 LogicIntruSecVainCheck(UINT16 const wLogicSecId, UINT16 *pDevId, UINT8 *pDevState);

/*
* 功能描述： 进路最后一个逻辑区段的下一相邻逻辑区段锁闭检查
* 参数说明：UINT16 const wLogicSecId,  逻辑区段ID
*           UINT16 *pDevId,     设备Id（返回）
*           UINT8  *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR   检查通过
*            CI_SUCCESS 检查失败
* 创  建
*/
UINT8 LogicNextLogSecLockCheck(UINT16 const wLogicSecId, UINT16* pDevId, UINT8* pDevState);
/*
* 功能描述： 逻辑进路最后一个逻辑区段的下一相邻逻辑区段锁闭检查
* 参数说明：UINT16 const wLogicSecId,  逻辑区段ID
*			UINT16 const wLogRouteId,
*           UINT16 *pDevId,     设备Id（返回）
*           UINT8  *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR   检查失败
*            CI_SUCCESS 检查通过
* 创  建
*/
UINT8 LogRouteNextLogSecLockCheck(UINT16 const wLogicSecId, UINT16 const wLogRouteId, UINT16* pDevId, UINT8* pDevState);

/*
* 功能描述： 逻辑区段所处道岔防护道岔锁闭状态检查(防护锁闭或防护单锁叠加)
* 参数说明： UINT16 const routeId, 进路ID
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
* 创建    ： qw.liu 2022-03-01
*/
UINT8 LogicSecRltvPrtctSwLockCheck(UINT16 const wLgcId, UINT16 *pDevId, UINT8 *pDevState);

/*
* 功能描述： 逻辑区段所处道岔防护道岔未封锁检查
* 参数说明： UINT16 const routeId, 进路ID
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
*            UINT8* pYLockAlarmFlag  引导总锁报警标志（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
* 创建    ： qw.liu 2022-03-01
*/
UINT8 LogicSecRltvPrtctSwFLockCheck(UINT16 const wLgcId, UINT16* pDevId, UINT8* pDevState, UINT8* pYLockAlarmFlag);

/*
* 功能描述： 逻辑区段所处道岔防护道岔位置检查
* 参数说明： UINT16 const routeId, 进路ID
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
* 创建    ： qw.liu 2022-03-01
*/
UINT8 LogicSecRltvPrtctSwPosCheck(UINT16 const wLgcId, UINT16 *pDevId, UINT8 *pDevState);


/*
* 功能描述： 逻辑区段所处道岔未封锁检查
* 参数说明： UINT16 const routeId, 进路ID
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
*            UINT8* pYLockAlarmFlag  引导总锁报警标志（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
* 创建    ： qw.liu 2022-03-01
*/
UINT8 LogicSecRelSwitchFLockCheck(UINT16 const wLgcId, UINT16* pDevId, UINT8* pDevState, UINT8* pYLockAlarmFlag);

/*
* 功能描述： 逻辑区段封锁状态检查
* 参数说明： UINT16 const routeId, 进路ID
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
* 创建    ： qw.liu 2022-03-01
*/
UINT8 LogicSecFLockCheck(UINT16 const wLgcId, UINT16 *pDevId, UINT8 *pDevState);

/*
* 功能描述： 逻辑区段所处道岔位置检查
* 参数说明： UINT16 const routeId, 进路ID
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
* 创建    ： qw.liu 2022-03-01
* 更新    ： 使用逻辑区段关联道岔进行计算
*/
UINT8 LogicSecRelativeSwitchPosCheck(UINT16 const wLgcId, UINT16* pDevId, UINT8* pDevState);

/*
* 功能描述： 进路VBTC条件下第一逻辑区段检查
* 参数说明：
*            UINT16 const routeId,    进路号
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR   检查失败
*            CI_SUCCESS 检查通过
*/
UINT8 RouteCbtcFirstLgcSecCheck(UINT16 const routeId, UINT16 *pDevId, UINT8 *pDevState);

/*
* 功能描述： 折返进路VBTC条件下第一逻辑区段检查
* 参数说明：
*            UINT16 const routeId,    进路号
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR   检查失败
*            CI_SUCCESS 检查通过
*/
UINT8 RouteCbtcReturnFirstLgcSecCheck(UINT16 const routeId, UINT16 *pDevId, UINT8 *pDevState);

/*
* 功能描述： 进路区段全部采集空闲检查
* 参数说明： UINT16 routeId,    进路号
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
UINT8 RouteAllSecColOccuClearCheck(UINT16 const routeId, UINT16 *pDevId, UINT8 *pDevState);

/*
* 功能描述： 进路区段全部采集空闲检查
* 参数说明： UINT16 routeId,    进路号
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
UINT8 RouteFaultOccuCheck(UINT16 const routeId, UINT16 *pDevId, UINT8 *pDevState);

/*
* 功能描述： 进路内限速状态检查
* 参数说明： UINT16 const routeId,    进路号
*            UINT8 checkState,  比对值
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
UINT8 RouteAllLgcSecXianSuCheck(UINT16 const routeId, UINT16 *pDevId, UINT8 *pDevState);

/*
* 功能描述： Overlap区段空闲检查
* 参数说明： UINT16 const overlapId
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
UINT8 OpenBlockOvlpAllSecOccuClrCheck(UINT16 const overlapId, UINT16 *pDevId, UINT8 *pDevState);

/*
* 功能描述： 保持信号开放时进路区段空闲检查
* 参数说明：
*            UINT16 const routeId,    进路号
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR   检查失败
*            CI_SUCCESS 检查通过
*/
UINT8 KeepCbtcReturnRouteSecOccCheck(UINT16 routeId, UINT8 functionId, UINT8 sendLevel);

/*
* 功能描述： CBTC进路，检查列车驶入条件(仅在CBTC下使用)
* 参数说明：
*            UINT16 const routeId,    进路号
* 返回值  ： CI_ERROR   检查失败
*            CI_SUCCESS 检查通过 最后一个列车准备驶入进路导致进路关信号
*/
UINT8 RouteCbtcTiranEnterCheck(UINT16 const routeId);

/*
* 功能描述： 进路锁闭，进路包含的物理区段的非进路内且非道岔关联的逻辑区段未占压
* 参数说明： UINT16 const routeId,    进路号
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
* add 20221008 适配进路驱动道岔提前扳动功能
*/
UINT8 RouteOutLogSecOccClearCheck(UINT16 const routeId, UINT16 *pDevId, UINT8 *pDevState);

/*
* 功能描述： CBTC进路内道岔关联另一逻辑区段未锁闭
* 参数说明： UINT16 const routeId,    进路号
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
* add 20221005 优化进路条件检查，进路办理时，检查道岔另一位置关联逻辑区段未锁闭
*/
UINT8 RouteSwOtherLogLockValidCheck(UINT16 const routeId, UINT16 *pDevId, UINT8 *pDevState);

/*
* 功能描述： 锁闭引导列车进路区段联锁条件检查
* 参数说明：
*            UINT16 RouteId,    进路号
*            UINT8 functionId,  调用函数编号
*            UINT8 sendLevel,   故障码发送级别
* 返回值  ： CI_ERROR
*            CI_SUCCESS
* add 20221008 适配进路驱动道岔提前扳动功能
*/
UINT8 LockLeadRouteSectionCheck(UINT16 routeId, UINT8 functionId, UINT8 sendLevel);

/*
* 功能描述： 逻辑区段侧防道岔条件检查
* 参数说明： UINT16 const routeId, 进路ID
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
* 创建    ：
*/
UINT8 LogicSecSwitchLtrlDfncCheck(UINT16 const wLgcId, UINT16 *pDevId, UINT8 *pDevState);

/*
* 功能描述： 进路区段全部侧防条件满足检查
* 参数说明： UINT16 routeId,    进路号
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
UINT8 RouteAllLtrlDfncSwitchCheck(UINT16 const routeId, UINT16 *pDevId, UINT8 *pDevState);

/*
* 功能描述： 进路区段全部联络线设备条件满足检查
* 参数说明： UINT16 routeId,    进路号
*            UINT8 functionId,  调用函数编号
*            UINT8 sendLevel,   故障码发送级别
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
UINT8 RouteContactLineDevSwitchCheck(UINT16 const routeId, UINT8 functionId, UINT8 sendLevel);

/*
* 功能描述： 点式进路信号开放其他信号联锁条件检查
* 参数说明：
*            UINT16 RouteId,    进路号
*            UINT8 functionId,  调用函数编号
*            UINT8 sendLevel,   故障码发送级别
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*			 RETURN_OPEN_ERR_SIGOPEN
*/
UINT8 OpenCbtcRouteOtherSignalCheck(UINT16 routeId, UINT8 functionId, UINT8 sendLevel);
#if 0
/*
* 功能描述： 点式进路信号保持其他信号联锁条件检查
* 参数说明：
*            UINT16 RouteId,    进路号
*            UINT8 functionId,  调用函数编号
*            UINT8 sendLevel,   故障码发送级别
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
UINT8 KeepCbtcRouteOtherSignalCheck(UINT16 routeId, UINT8 functionId, UINT8 sendLevel);
#endif
/*
* 功能描述： ats锁闭保护区段占用检查
* 参数说明： UINT16 const overlapId
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR   
*            CI_SUCCESS 
*/
UINT8 AtsLockOverlapSecOccupyCheck(UINT16 const overlapId,UINT16 *pDevId,UINT8 *pDevState);
/*
* 功能描述： 检查指定进路外方逻辑区段状态
* 参数说明： const UINT16 signalId, 信号机ID    
* 返回值  ：0：获取失败
           >0:占用状态：占用or空闲   
*/
UINT8 CheckRouteIdOutFirstLogSecState(const UINT16 routeId,UINT16 *logicSecId);
#if 0
/*
* @func： 逻辑区段处于保护锁闭时主进路检查
* @param： UINT16 wLgcSecId, 逻辑区段ID

* @return CI_ERROR   不可用
*		  CI_SUCCESS 可用
*/
UINT8 OverlapLgcResMainRtCheck(UINT16 wLgcSecId);
#endif
/*
* 功能描述： 检查是否是列车真正跨压
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： CI_SUCCESS:未跨压
			 CI_ERROR:跨压
*cgh-合并CID-2341-5：
*/
UINT8 CheckEngineerVehicleNear(const UINT16 routeId);
/*
* 功能描述： 根据物理区段封锁类型设置errorcode
* 参数说明： const UINT16 phySectionId, 物理区段ID
*            const UINT8 functionId  函数ID
*            const UINT8 sendLevel 发送级别
*            const UINT8 devState 设备状态
* 返回值：无
* add by pfq 2022.04.21
*/
void AccToPhySecFlockTypeSetErrcode(const UINT16 phySectionId, const UINT8 functionId, const UINT8 sendLevel, const UINT8 devState);
/*
* 功能描述： CBTC进路信号保持其他信号联锁条件检查
* 参数说明：
*            UINT16 RouteId,    进路号
*            UINT8 functionId,  调用函数编号
*            UINT8 sendLevel,   故障码发送级别
* 返回值  ： CI_ERROR   
*            CI_SUCCESS 
*/
UINT8 KeepCBTCRouteOtherSignalCheck(UINT16 routeId,UINT8 functionId,UINT8 sendLevel);

/*
* 功能描述： 引导进路内区段锁闭状态检查
* 参数说明： UINT16 const routeId,    进路号
*            UINT8 checkState,  比对值
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
UINT8 LeadRouteSecLockStateCheck(UINT16 const routeId, UINT8 checkState, UINT16* pDevId, UINT8* pDevState);
/*
* 功能描述： 检查设置自动折返属性条件是否通过
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ：CI_SUCCESS：自动折返属性条件检通过
			CI_ERROR:自动折返属性条件检失败
			2022.08.03 add by pfq 折返轨有车占用时判断抵触进路为折返进路且进路最后一个物理区段正常锁闭且占用则能设置自动折返属性
*/
UINT8 JudgeSetAutoTriggerFlagIsValid(const UINT16 routeId);

/*
* 功能描述： 引导进路逻辑区段锁闭有效性检查
* 参数说明：
*            UINT16 const routeId,    进路号
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
* add 20221007 适配进路提前驱动道岔功能
*/
UINT8 LeadRouteLogSecLockValidCheck(UINT16 const routeId, UINT16 *pDevId, UINT8 *pDevState);

/*
* 功能描述： 侵限区段对应侵限条件判断
* 参数说明：
*            UINT16 const wInvaSectId,    侵限区段ID
* 返回值  ： CI_ERROR   侵限
*            CI_SUCCESS 侵限不满足
* cgh-20230422创  建
*/
UINT8 IntruSecVainCheck(UINT16 const wInvaSectId);


/*
* 功能描述： 进路锁闭部分区段锁闭条件检查
* 参数说明： UINT16 routeId,    进路号
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
UINT8 RouteHalfSecLockCheck(UINT16 const routeId, UINT16 *pDevId, UINT8 *pDevState);

/*
* 功能描述： 进路锁闭部分区段封锁检查
* 参数说明： UINT16 routeId,    进路号
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
UINT8 RouteHalfSecFLockCheck(UINT16 const routeId, UINT16 *pDevId, UINT8 *pDevState);

/*
* 功能描述： 进路锁闭部分侵限条件检查
* 参数说明： UINT16 routeId,    进路号
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
UINT8 RouteHalfIntruSecCheck(UINT16 const routeId, UINT16 *pDevId, UINT8 *pDevState);

/*
* 功能描述： 逻辑区段所处道岔位置检查
* 参数说明： UINT16 const routeId, 进路ID
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
* 创建    ： qw.liu 2022-03-01
* 更新    ： 使用逻辑区段关联道岔进行计算
*/
UINT8 LogicSwitchMoveValidCheck(UINT16 const wLgcId, UINT8 routeHalfSwitchMoveStt, UINT16 *pDevId, UINT8 *pDevState, UINT8 sendLevel);

/*
* 功能描述： 进路锁闭部分侵限条件检查
* 参数说明： UINT16 routeId,    进路号
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
UINT8 RouteHalfSwitchMoveValidCheck(UINT16 const routeId, UINT16 *pDevId, UINT8 *pDevState);

/*
* 功能描述： 逻辑区段防护道岔位置及可动性检查
* 参数说明： UINT16 const wLgcId, 逻辑区段ID
*			 UINT8 const routeHalfSwitchMoveStt 半截进路是否可动标志
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
* 创建    ： qw.liu 2022-03-01
* 更新    ： 使用逻辑区段关联道岔进行计算
*/
UINT8 LogicProSwitchMoveValidCheck(UINT16 const wLgcId, UINT8 const routeHalfSwitchMoveStt, UINT16 *pDevId, UINT8 *pDevState, UINT8 sendLevel);

/*
* 功能描述： 进路锁闭部分防护道岔条件检查
* 参数说明： UINT16 routeId,    进路号
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
UINT8 RouteHalfProSwitchMoveValCheck(UINT16 const routeId, UINT16 *pDevId, UINT8 *pDevState);

/*
* 功能描述： 进路锁闭部分道岔封锁条件检查
* 参数说明： UINT16 routeId,    进路号
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
*            UINT8* pYLockAlarmFlag  引导总锁报警标志（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
UINT8 RouteHalfSwitchFLockCheck(UINT16 const routeId, UINT16* pDevId, UINT8* pDevState, UINT8* pYLockAlarmFlag);

/*
* 功能描述： 进路锁闭部分道岔位置检查
* 参数说明： UINT16 routeId,    进路号
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
UINT8 RouteHalfSwitchPosCheck(UINT16 const routeId, UINT16 *pDevId, UINT8 *pDevState);

/*
* 功能描述： 进路内部分区段跳跃锁闭状态检查
* 参数说明： UINT16 const routeId,    进路号
*            UINT8 checkState,  比对值
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： 失败返回CI_ERROR
*            成功返回CI_SUCCESS
*/
UINT8 RouteHalfSecJumpLockStateCheck(UINT16 const routeId, UINT16 *pDevId, UINT8 *pDevState);



/*
* 功能描述： 分段进路条件检查
* 参数说明： UINT16 const routeId,    进路号
*            UINT8 functionId,      调用函数编号
*            UINT8 sendLevel,       故障码发送级别
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
UINT8 RouteFenDuanConditionCheck(UINT16 const routeId, UINT8 functionId, UINT8 sendLevel);

/*
* 功能描述： 主进路建立联锁条件检查
* 参数说明： UINT16 const routeId,    进路号
* 返回值  ：  CI_ERROR               不通过
*            CI_SUCCESS             通过
*/
UINT8 MainRouteCheck(UINT16 const routeId);

/*
* 功能描述： 子进路建立联锁条件检查
* 参数说明： UINT16 const routeId,    进路号
* 返回值  ：  CI_ERROR         不通过
*            CI_SUCCESS       通过
*/
UINT8 SubRouteCheck(UINT16 const routeId);
/*
* 功能描述： 进路锁闭部分防护道岔位置条件检查
* 参数说明： UINT16 routeId,    进路号
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
UINT8 RouteHalfProSwitchPosCheck(UINT16 const routeId, UINT16 *pDevId, UINT8 *pDevState);

/*
* 功能描述：检查逻辑区段序列是否连续
* 输入参数：const UINT8 cLogSecSeqDir 逻辑区段序列方向
*           const UINT8 cLogSecSum 逻辑区段数量
*           const UINT16 pLogSecIdBuff[] 逻辑区段序列
* 输出参数：UINT8 pQueryDir[] 每个逻辑区段对应的查询方向
* 返回值  ：CI_ERROR   逻辑区段序列不连续
*           CI_SUCCESS 逻辑区段序列连续
*/
UINT8 LogSecSeqIsContinuousCheck(const UINT8 cLogSecSeqDir, const UINT8 cLogSecSum, const UINT16 pLogSecIdBuff[], UINT8 pQueryDir[]);

/*
* 功能描述：逻辑区段序列与进路匹配检查
* 输入参数：const UINT8 cEndSignalSum 逻辑区段序列关联的终端信号机数量
*           const UINT16 wEndSignalIdBuff[] 逻辑区段序列关联的终端信号机ID
*           const UINT8 cSplitLogSecSumBuff[] 拆分后的逻辑区段序列包含的逻辑区段数量
*           const UINT16 pSplitLogSecIdBuff[][MAX_ROUTE_IN_LT_NUM] 拆分后的逻辑区段序列包含的逻辑区段ID
* 输出参数：UINT16 pMatchedRouteIdBuff[] 与逻辑区段序列匹配的进路ID数组
*           UINT8* pLogicRouteFlag 逻辑进路存在标志
* 返回值  ：CI_ERROR   匹配失败
*           CI_SUCCESS 匹配成功
*/
UINT8 LogSecSeqAndRouteMatchCheck(const UINT8 cEndSignalSum, const UINT16 pEndSignalIdBuff[], const UINT8 pSplitLogSecSumBuff[], const UINT16 pSplitLogSecIdBuff[][MAX_ROUTE_IN_LT_NUM], UINT16 pMatchedRouteIdBuff[], UINT8* pLogicRouteFlag);

/*
* 功能描述：匹配非主进路的列车进路
* 输入参数：const UINT8 cEndSignalSum 逻辑区段序列关联的终端信号机数量
*           const UINT8 szRouteSum[ROUTE_SUBROUTE_SUM_MAX] 每个逻辑区段序列匹配到的可能的进路数量数组
*           const UINT16 szRouteId[ROUTE_SUBROUTE_SUM_MAX][MAX_ROUTE_IN_LT_NUM] 每个逻辑区段序列匹配到的可能的进路ID数组
* 输出参数：UINT16 szMatchedRouteId[ROUTE_SUBROUTE_SUM_MAX] 与逻辑区段序列匹配的进路ID数组
* 返回值  ：CI_ERROR   匹配失败
*           CI_SUCCESS 匹配成功
* Created By LQ 2024.05.07
*/
UINT8 MatchNonMainAndLieCheRoute(const UINT8 cEndSignalSum, const UINT8 szRouteSum[ROUTE_SUBROUTE_SUM_MAX], const UINT16 szRouteId[ROUTE_SUBROUTE_SUM_MAX][MAX_ROUTE_IN_LT_NUM], UINT16 szMatchedRouteId[ROUTE_SUBROUTE_SUM_MAX]);

/*
* 功能描述：逻辑区段序列内隐藏车检查
* 输入参数：const UINT16 wTrainId 列车ID
*           const UINT8 cLogSecSum 序列中的逻辑区段数量
*           const UINT16 pLogSecIdBuff[] 逻辑区段序列
* 输出参数：无
* 返回值  ：CI_ERROR   检查失败
*           CI_SUCCESS 检查成功
*/
UINT8 LogSecSeqIncUTCheck(const UINT16 wTrainId, const UINT8 cLogSecSum, const UINT16 pLogSecIdBuff[]);

/*
* 功能描述： 进路锁闭部分防护道岔封锁条件检查
* 参数说明： UINT16 routeId,    进路号
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
*            UINT8* pYLockAlarmFlag  引导总锁报警标志（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
UINT8 RouteHalfProSwitchFLockCheck(UINT16 const routeId, UINT16* pDevId, UINT8* pDevState, UINT8* pYLockAlarmFlag);

/*
* 功能描述： 进路区段全部侧防条件满足检查
* 参数说明： UINT16 routeId,    进路号
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
UINT8 RouteHalfLtrlDfncSwitchCheck(UINT16 const routeId, UINT16 *pDevId, UINT8 *pDevState);

/*
* 功能描述： 部分进路区段全部联络线设备条件满足检查
* 参数说明： UINT16 routeId,    进路号
*            UINT8 functionId,  调用函数编号
*            UINT8 sendLevel,   故障码发送级别
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
UINT8 RouteHalfContactLineDevCheck(UINT16 const routeId, UINT8 functionId, UINT8 sendLevel);

/*
* 功能描述：进路属于本联锁，内方所有物理区段属于其他联锁检查
* 输入参数：const UINT16 routeId, 进路ID
* 输出参数：无
* 返回值  ：CI_ERROR   进路属于本联锁，内方有物理区段属于本联锁
*           CI_SUCCESS 进路属于本联锁，内方没有物理区段属于本联锁
* cgh:成都27出段进路属于车辆段，区段全部属于正线特殊需求
*/
UINT8 RouteAllPhyBelongCiCheck(const UINT16 routeId);


/*
* 功能描述：判断进路是否完整锁闭
* 输入参数：const UINT16 routeId, 进路ID
* 输出参数：无
* 返回值  ：CI_ERROR   进路不是完整锁闭
*          CI_SUCCESS 进路是完整锁闭
*/
UINT8 RouteAllLockCheck(const UINT16 routeId);

/*
* 功能描述：检查逻辑区段序列是否有匹配的进路
* 输入参数：const UINT8 cLogSecSeqDir 逻辑区段序列方向
*           const UINT8 cLogSecSum 逻辑区段数量
*           const UINT16 pLogSecIdBuff[] 逻辑区段序列
* 输出参数：UINT16* pMatchedRouteId 匹配的进路ID
* 返回值  ：0: 匹配成功
*           1: 匹配失败
*/
UINT8 MatchedRouteCheck(const UINT8 cLogSecSeqDir, const UINT8 cLogSecSum, const UINT16 pLogSecIdBuff[], UINT16* pMatchedRouteId);

/*
* 功能描述：寻找与逻辑区段序列匹配的进路
* 输入参数：UINT16 wEndSignalId 终端信号机ID
*           const UINT8 cLogSecSum 逻辑区段数量
*           const UINT16 pLogSecIdBuff[] 逻辑区段序列
* 输出参数：无
* 返回值  ：0: 未找到匹配的进路
*          >0: 匹配的进路ID
*/
UINT16 SearchMatchedRoute(UINT16 wEndSignalId, const UINT8 cLogSecSum, const UINT16 pLogSecIdBuff[]);

/*
* 功能描述：寻找进路数组中的非主进路
* 输入参数：UINT8 cRouteSum 进路数量
*           UINT16 wRouteIdBuff[] 进路ID数组
* 输出参数：无
* 返回值  ：UINT16 wNonMainRouteId 进路ID
*/
UINT16 SearchNonMainRoute(UINT8 cRouteSum, UINT16 wRouteIdBuff[]);

/*
* 功能描述：检查道岔关联的逻辑区段的临时限速状态
* 输入参数：UINT16 switchId 道岔Id
* 输出参数：UINT16* pLogSecId 存在临时限速的逻辑区段ID
*           UINT8 *pLogState,  逻辑区段临时限速状态
* 返回值  ：CI_SUCCESS: 关联逻辑区段不存在临时限速
*			CI_ERROR: 关联逻辑区段存在临时限速
* modify 20230927 增加进路内道岔关联的逻辑区段临时限速状态检查
*/
UINT8 SwitchRelLogSecLSXSStateCheck(UINT16 switchId, UINT16* pLogSecId, UINT8* pLogState);

/*
* 功能描述：  进路照查容忍条件满足检查
* 参数说明： UINT16 const routeId,  进路号
* 返回值  ： CI_ERROR 失败
*            CI_SUCCESS 成功
*			 RES_CHECK_STATE_WAITE 等待
* by cgh 20230930
*/
UINT8 KeepSignalRelayZhaoChaCheck(UINT16 const routeId);

/*
* 功能描述： 检查物理区段对应逻辑区段是否存在锁闭所属进路
* 参数说明： const UINT16 phySectionId  物理区段ID
* 返回值  ： 逻辑区段锁闭所属进路
* cgh-20231002创建
*/
UINT16 CheckLogSecLockBelongRoute(const UINT16 phySectionId);

/*
* 功能描述： 逻辑区段故障解锁
* 参数说明： UINT16 const wLogSecId 逻辑区段ID
* 返回值  ： CI_ERROR
*            CI_SUCCESS
* 故障编码： EFUNC_UNLOCK_FAULT_LOGSEC
* by cgh 20231004
*/
UINT8 LogSecFaultUnlockLogicProcess(UINT16 const wLogSecId);

/*
* 功能描述： 物理区段区故解锁闭进路检查
* 参数说明： const UINT16 wPhySectionId  物理区段ID
*			 const UINT8 chVirCIid 虚拟联锁ID
* 返回值  ： CI_ERROR  检查不通过
*			 CI_SUCCESS 检查通过
* cgh-20231011创建
*/
UINT8 PhySecFaultUnlockRouteCheck(const UINT16 wPhySectionId, const UINT8 chVirCIid);

/*
* 功能描述： 检查物理区段对应逻辑区段是否存在锁闭所属逻辑进路
* 参数说明： const UINT16 wPhySectionId  物理区段ID
* 返回值  ： CI_ERROR  不存在
*            CI_SUCCESS  存在
* cgh-20231011创建
*/
UINT8 CheckLogSecLockExistLogRoute(const UINT16 wPhySectionId);

/*
* 功能描述： 检查物理区段对应逻辑区段异常逻辑锁闭状态
* 参数说明： const UINT16 wPhySectionId  物理区段ID
* 返回值  ： CI_ERROR    全部为正常锁闭
*            CI_SUCCESS  有一个为故障锁闭或者无锁闭所属逻辑进路
* cgh-20231011创建
*/
UINT8 CheckPhyAllLogSecExceptLockSta(const UINT16 wPhySectionId);

/*
* 功能描述： 检查拆分的序列数量及其包含逻辑区段数量是否超限
* 参数说明： const UINT8 cSeqNum 序列数量
*            const UINT8 pSeqIncLogSecNum[] 各序列包含的逻辑区段数量
* 返回值  ： CI_ERROR    失败
*            CI_SUCCESS  成功
* Created By LQ 2023/10/12
*/
UINT8 SeqNumAndIncLogSecNumCheck(const UINT8 cSeqNum, const UINT8 pSeqIncLogSecNum[]);

/*
* 功能描述： 校验指定动态进路子进路是否为半截进路
* 参数说明： const UINT8 cIndex 子进路索引
*            const UINT16 pRouteId[] 子进路ID数组
*            const UINT16 pCTOccLogSecNum CT脚下逻辑区段数量
*            const UINT16 pCTOccLogSecId[] CT脚下逻辑区段ID数组
*            const UINT8 cLogicRouteFlag 第一个序列是否为逻辑进路的标志
* 返回值  ： CI_ERROR    非半截进路
*            CI_SUCCESS  半截进路
* Created By LQ 2023/10/12
*/
UINT8 HalfRouteTypeCheck(const UINT8 cIndex, const UINT16 pRouteId[], const UINT16 pCTOccLogSecNum, const UINT16 pCTOccLogSecId[], const UINT8 cLogicRouteFlag);

/*
* 功能描述： 保护区段包含的逻辑区段逻辑锁闭状态有效性检查
* 参数说明： const UINT16 overlapId 保护区段ID
*            const UINT16 routeId 保护区段防护锁闭所属进路ID
*            UINT16 *pDevId 设备Id（返回）
*            UINT8 *pDevState 设备状态（返回）
* 返回值  ： CI_ERROR 失败
*            CI_SUCCESS 成功
* Created By LQ 2023/10/14
*/
UINT8 OverlapLogSecLogicLockCheck(const UINT16 overlapId, const UINT16 routeId, UINT16* pDevId, UINT8* pDevState);

/*
* 功能描述： 进路包含的逻辑区段逻辑锁闭状态检查
* 参数说明： const UINT16 routeId 进路ID
*            UINT16 *pDevId 设备Id（返回）
*            UINT8 *pDevState 设备状态（返回）
* 返回值  ： CI_ERROR 失败
*            CI_SUCCESS 成功
* Created By LQ 2023/10/14
*/
UINT8 RouteIncLogSecLogicLockCheck(const UINT16 routeId, UINT16* pDevId, UINT8* pDevState);

/*
* 功能描述： 获取逻辑区段内所有列车信息
* 参数说明： UINT16 wLogSectionId
* 返回值  ： 列车数量
* By LC 20231116
*/
UINT8 GetLogSecTrainId(const UINT16 wLogSectionId, UINT16 * trainIdbuff);
/*
* 功能描述： 逻辑区段关联联络线设备条件检查
* 参数说明： UINT16 const wLgcId, 逻辑区段ID
*            UINT8 functionId,  调用函数编号
*            UINT8 sendLevel,   故障码发送级别
* 返回值  ： CI_ERROR
*            CI_SUCCESS
* 创建    ：
*/
UINT8 LogicContactLineDevCheck(UINT16 const wLgcId, UINT8 functionId, UINT8 sendLevel);

/*
* 功能描述： 逻辑区段关联联络线道岔条件检查
* 参数说明： UINT16 const wSwitchId, 道岔ID
*			 UINT8 const wState		道岔检查状态
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
* 创建    ：
*/
UINT8 CheckLogContactSwitchState(UINT16 const wSwitchId, UINT8 const wState, UINT16 *pDevId, UINT8 *pDevState);

/*
* 功能描述： 逻辑区段关联联络线区段占压条件检查
* 参数说明： UINT16 const wAxisId,  计轴区段ID
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
* 创建    ：
*/
UINT8 CheckLogContactOccState(UINT16 const wAxisId, UINT16 *pDevId, UINT8 *pDevState);

/*
* 功能描述： 设置防淹门关门请求列车处理
* 参数说明：	UINT16 floodGateId		防淹门ID
* 返回值  ： CI_ERROR   混跑
*            CI_SUCCESS		纯CT车
*/
UINT8 SetFloodGateAcCloseApplyProc(UINT16 floodGateId);

/*
* 功能描述： 获取防淹门关门请求列车回复
* 参数说明：	UINT16 floodGateId		防淹门ID
* 返回值  ： CI_ERROR   不同意关门
*            CI_SUCCESS		同意关门
*/
UINT8 GetFloodGateAccessCloseAskIVOC(UINT16 floodGateId);

/*
* 功能描述： 逻辑区段所在防淹门条件检查
* 参数说明：
*            UINT16 wLogicSecId,   逻辑区段编号
*            UINT8 functionId,  调用函数编号
*            UINT8 sendLevel,   故障码发送级别
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
UINT8 FloodGateCheck(UINT16 wLogicSecId, UINT8 functionId, UINT8 sendLevel);

/*
* 功能描述： 检查逻辑区段及锁闭所属进路的CBTC区域属性
* 参数说明： const UINT16 wLogSecId 逻辑区段ID
*            UINT8* pDevState 设备状态
* 返回值  ： CI_ERROR 0 不具有CBTC属性
*            CI_SUCCESS 1 具有CBTC属性
* Created By LQ 2023.12.08
*/
UINT8 CheckLogSecCbtcProperty(const UINT16 wLogSecId, UINT8* pDevState);

/*
* 功能描述： 检查逻辑进路内逻辑区段的CBTC区域属性
* 参数说明： const UINT8 wLogSecNum 逻辑进路包含的逻辑区段数量
*            const UINT16 pLogSecId[MAX_ROUTE_IN_LT_NUM]  逻辑进路包含的逻辑区段ID
* 返回值  ： CI_ERROR 0 不具有CBTC属性
*            CI_SUCCESS 1 具有CBTC属性
* Created By LQ 2023.12.08
*/
UINT8 CheckLogicRouteCbtcProperty(const UINT8 wLogSecNum, const UINT16 pLogSecId[MAX_ROUTE_IN_LT_NUM]);


/*
* 功能描述： 进路中途折返解锁 进路解锁条件检查
* 参数说明： const UINT16 routeId   进路号
* 返回值  ： CI_ERROR
*            CI_SUCCESS
* 故障编码： EFUNC_CANCLE_ROUTE
* BY LC
*/
UINT8 CheckRouteZhefanJiesuo(UINT16 const routeId);


/*
* 功能描述： 保护区段关联的物理区段包含的非保护区段内的所有逻辑区段锁闭检查
* 参数说明： UINT16 const overlapId,  OverlapID
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR  检查失败
*            CI_SUCCESS 检查通过
* BY LC
*/
UINT8 CheckOverlapPhysecOtherLock(UINT16 const overlapId, UINT16* pDevId, UINT8* pDevState);

/*
* 功能描述：保护区段侧防条件检查
* 参数说明：UINT16 const overlapId,  OverlapID
*           UINT16* pDevId 设备Id（返回）
*           UINT8* pDevState 设备状态（返回）
* 返回值  ：0 检查失败
*           1 检查成功
* Created By LQ 2024.01.05
*/
UINT8 OverlapLateralDfnCheck(UINT16 const overlapId, UINT16* pDevId, UINT8* pDevState);

/*
* 功能描述： 检查保护区段的CBTC区域属性
* 参数说明： const UINT16 wOverlapId 保护区段ID
* 返回值  ： CI_ERROR 0 不具有CBTC属性
*            CI_SUCCESS 1 具有CBTC属性
* Created By LQ 2024.02.20
*/
UINT8 CheckOverlapCbtcProperty(const UINT16 wOverlapId);

#if 0
/*
* 功能描述： 进路是否有区段相同检查
* 参数说明： const UINT16 wSrcRouteId   源进路ID
*			 const UINT16 wSrcRouteId   目标进路ID
*
* 返回值  ： CI_ERROR     没有区段重叠
*            CI_SUCCESS   有区段重叠
* BY CGH 20240320
*/
UINT8 CheckRoutePhySecSame(const UINT16 wSrcRouteId, const UINT16 wDstRouteId);
#endif

/*
* 功能描述： 逻辑区段是否为列车脚下逻辑区段检查
* 参数说明： wLogSecId  逻辑区段ID
*			 const UINT16 wRouteId 进路ID
* 返回值  ： CI_ERROR     不为列车脚下逻辑区段
*            CI_SUCCESS   为列车脚下逻辑区段
* BY CGH 20240325
*/
UINT8 TrainRelateLogSecCheck(const UINT16 wLogSecId, const UINT16 wRouteId);

/*
* 功能描述： 进路第一离去逻辑区段检查
* 参数说明： wLogSecId  第一离去逻辑区段ID
* 返回值  ： CI_ERROR     检查失败
*            CI_SUCCESS   检查通过
* BY LC 20240710
*/
UINT8 RouteLeaveLogSecCheck(const UINT16 wLogSecId);


/*
* 功能描述： 查询包络中列车后备位置是否与逻辑区段相交
* 参数说明： wLogSecId  第一离去逻辑区段ID
*			envolopId  包络ID
* 返回值  ： CI_ERROR     相交
*            CI_SUCCESS   未相交
*/
UINT8 TrainBackPosCrossLogCheck(const UINT16 envolopId, const UINT16 logsecId, const UINT8 functionId);


/*
* 功能描述： 检查进路离去区段的ABL列车条件
* 参数说明： leaveLogicSecId  第一离去逻辑区段ID
*			routeId  进路
* 返回值  ： CI_ERROR     检查不通过
*            CI_SUCCESS   检查通过
*/
UINT8 TrainLeaveLogSecABLTrainCheck(const UINT16 leaveLogicSecId);

/*
* 功能描述： 检查逻辑区段ABL反向进路属性
* 参数说明： const UINT16 wLogSecId 逻辑区段ID
*            const UINT16 wTrainId  列车ID
* 返回值  ： CI_ERROR 0 具有ABL反向进路属性
*            CI_SUCCESS 1 不具有ABL反向进路属性
* Created By CGH 20240726
*/
UINT8 CheckLogSecAblReverseProperty(const UINT16 wLogSecId, const UINT16 wTrainId);

/*
* 功能描述：物理区段被征用后是否满足被另一条进路征用或保护锁闭条件
* 参数说明： UINT16 switchId, 道岔ID
*            UINT8 switchState, 期望道岔位置
* 返回值  ：CI_SUCCESS：征用检查通过
*            CI_ERROR:征用检查失败
*			2023.07.24 add by mpt
*/
UINT8 CheckPhyUseSecCanOtherUse(UINT16 switchId, UINT8 switchState);

/*
* 功能描述：通信车车前端可疑检查
* 输入参数：const UINT16 wTrainId 列车ID
*           const UINT8 cLogSecSeqDir ATS下发的逻辑区段序列方向
*			const UINT16 wLogSecId  逻辑区段ID
* 输出参数：无
* 返回值  ：CI_ERROR   检查失败
*           CI_SUCCESS 检查成功
* by cgh 20240819
*/
UINT8 CtTrainHeadSuspCheck(const UINT16 wTrainId, const UINT8 cLogSecSeqDir, const UINT16 wLogSecId);

/*
* 功能描述：车辆段部分进路的逻辑区段序列和列车位置检查
* 输入参数：const UINT8 cLogSecSum 逻辑区段数量
*           const UINT16* pLogSecIdBuff 逻辑区段序列
*           const UINT16 wTrainId 列车ID
*           const UINT8 cFunctionId 函数ID
*           const UINT8 cSendLevel 报警发送级别
* 输出参数：无
* 返回值  ：CI_ERROR 0 失败
*           CI_SUCCESS 1 成功
* Edit By cgh 2025.10.17
*/
UINT8 LogSecSeqAndTrainPosCheckCLD(const UINT8 cLogSecSum, const UINT16* pLogSecIdBuff, const UINT16 wTrainId, const UINT8 cFunctionId, const UINT8 cSendLevel);

/*
* 功能描述：车辆段部分进路的逻辑区段序列与进路匹配检查
* 输入参数：const UINT8 cLogSecSeqDir 逻辑区段序列方向（运营方向）
*           const UINT16 wLogSecId 逻辑区段ID
* 输出参数：UINT16* pMatchedRouteId 与逻辑区段序列匹配的进路ID
* 返回值  ：CI_ERROR 0 匹配失败
*           CI_SUCCESS 1 匹配成功
* Created By LQ 2024.09.05
*/
UINT8 LogSecSeqAndRouteMatchCheckCLD(const UINT8 cLogSecSeqDir, const UINT16 wLogSecId, UINT16* pMatchedRouteId);

/*
* 功能描述：车辆段部分进路匹配列车进路
* 输入参数：const UINT8 cRouteSum 进路数量
*           const UINT16 szRouteId[MAX_ROUTE_IN_LT_NUM] 进路ID数组
* 输出参数：UINT16* pMatchedRouteId 与逻辑区段匹配的进路ID
* 返回值  ：CI_ERROR 0 匹配失败
*           CI_SUCCESS 1 匹配成功
* Created By LQ 2024.09.05
*/
UINT8 MatchLieCheRouteCLD(const UINT8 cRouteSum, const UINT16 szRouteId[MAX_ROUTE_IN_LT_NUM], UINT16* pMatchedRouteId);

/*
* 功能描述：通信列车前端与后端可疑检查
* 输入参数：const UINT16 wTrainId 列车ID
* 输出参数：无
* 返 回 值：CI_ERROR 0 检查失败
*           CI_SUCCESS 1 检查成功
* Created By LQ 2024.09.05
*/
UINT8 CtTrainSuspCheck(const UINT16 wTrainId);

/*
* 功能描述： 判断进路是否有锁闭的保护区段
* 参数说明：输入参数 const UINT16 routeId, 进路ID
* 返回值  ： CI_ERROR     没有锁闭的保护区段
*            CI_SUCCESS   有锁闭的保护区段
* BY CGH 20240920
*/
UINT8 CheakRouteHaveLockOverlap(const UINT16 routeId);
/*
* 功能描述： 判断待办自动进路中区段未被抵触进路锁闭
* 参数说明：输入参数 const UINT16 checkRouteId 待办进路, const UINT16 opposeRouteId 抵触进路
* 返回值  ： CI_ERROR     被非空闲抵触进路锁闭，检查不通过
*            CI_SUCCESS   检查通过
* BY fan 20241111
*/
UINT8 AutoRouteOpposeSectionCheck(const UINT16 checkRouteId, const UINT16 opposeRouteId);

/*
* 功能描述： 检查道岔位置和动作有效性
* 参数说明： const UINT16 wSwitchId, 道岔ID
* 返回值  ：
* BY CGH 20241203
*/
UINT8 CheckSwitchPosAndMoveValid(const UINT16 wSwitchId, const UINT8 chSwitchPos, UINT8 sendLevel);

/*
* 功能描述： 进路其它联锁道岔位置有效性检查
* 参数说明： UINT16 const routeId,    进路号
* 返回值  ： CI_ERROR
*            CI_SUCCESS
* by cgh 20241204
*/
UINT8 RouteOtherCiSwPosValidCheck(UINT16 const routeId);

/*
* 功能描述：其它控区保护区段关联的防护道岔动作有效性检查
* 参数说明：const UINT16 wOverlapId 保护区段ID
* 返 回 值：CI_ERROR 0 失败
*           CI_SUCCESS 1 成功
* Created By LQ 2024.12.09
*/
UINT8 OtherCiOvlpRelProSwMovValCheck(const UINT16 wOverlapId);

/*
* 功能描述：保护区段防护道岔征用检查
* 参数说明：const UINT16 wOverlapId 保护区段ID
*           UINT16* pDevId 设备ID（返回）
*           UINT8* pDevState 设备状态（返回）
*           UINT8* pAlarmType 报警类型（返回）
* 返 回 值：CI_ERROR  0 失败
*           CI_SUCCESS 1 成功
*           RETURN_WAIT_SWITCH_USING 0x30 等待道岔征用
* Created By LQ 2024.12.10
*/
UINT8 OverlapProSwUsingCheck(const UINT16 wOverlapId, UINT16* pDevId, UINT8* pDevState, UINT8* pAlarmType);

/*
* 功能描述： 获取指定进路办理相邻控区道岔检查标志
* 参数说明： const UINT16 routeId 进路ID
* 返 回 值： 进路办理相邻控区道岔检查标志
* 输出参数：UINT16* switchID道岔ID、UINT8* chSwitchState道岔状态
* by cgh 20241202
*/
UINT8 RouteRelAllSwitchPosCheck(UINT16 const routeId, UINT16* switchID, UINT8* chSwitchState);

/*
*函数功能：保护区段照查继电器检查
*参数说明：const UINT16 wOverlapId保护区段ID
*          UINT8 chSendLevel,       故障码发送级别
*返回值：CI_ERROR               失败
*        CI_SUCCESS             成功
*		 RELAY_STATE_WAITE      本端照查继电器条件不满足--等待
* by cgh 20250617
*/
UINT8 OverlapZhaoChaRelayCheck(const UINT16 wOverlapId, UINT8 chSendLevel);

/*
* 功能描述： 进路区段全部防护锁闭检查
* 参数说明： UINT16 routeId,    进路号
* 返回值  ： CI_ERROR
*            CI_SUCCESS 区段状态均为防护锁闭
* by fan 20250724
*/
UINT8 RouteAllSecProtectLockCheck(UINT16 const routeId);

/*
* 功能描述： 逻辑区段关联计轴无休眠车检查
* 参数说明： UINT16 logSectionId,    逻辑区段ID
* 返回值  ： CI_ERROR 存在休眠车
*            CI_SUCCESS 检查通过
* by fan 20250728
*/
UINT8 LogSecRelateNoSleepTrainCheck(UINT16 const logSectionId);

/*
* 功能描述：校验指定进路是否非场段进路或为场段出库/出段进路
* 参数说明：UINT16 wRouteId 进路ID
* 返 回 值：CI_ERROR 其它进路
*           CI_SUCCESS  非场段进路或为场段出库/出段进路
* Created By LQ 2025.08.05
*/
UINT8 RouteCldAttrCheck(UINT16 wRouteId);

/*
* 功能描述：保护区段占用解锁条件检查
* 参数说明：UINT16 overlapId 保护区段ID
*           UINT8 functionId 函数ID
* 返 回 值：CI_ERROR 0 失败
*           CI_SUCCESS 1 成功
* Created By LQ 2025.08.18
*/
UINT8 OverlapOccuUnlockCheck(UINT16 overlapId, UINT8 functionId);

/*
* 功能描述：列车占用完全在指定区段检查
* 输入参数：const UINT16 wPhySecId 物理区段ID
*           const UINT16 wTrainId  列车ID
* 输出参数：无
* 返回值  ：CI_ERROR 0 不完全在
*           CI_SUCCESS 1 完全在
* by cgh 20251017
*/
UINT8 TrainOccSameSecCheck(const UINT16 wPhySecId, const UINT16 wTrainId);

/*
* 功能描述：占用是否属于同一区段检查
* 输入参数：const UINT16 wBasePhySecId 基准物理区段ID
*           const UINT16 wCheckPhySecId 待检查物理区段ID
* 输出参数：无
* 返回值  ：CI_ERROR 0 不属于
*           CI_SUCCESS 1 属于
* by cgh 20251017
*/
UINT8 OccBelSameSecCheck(const UINT16 wBasePhySecId, const UINT16 wCheckPhySecId);

/*
* 功能描述： 进路风井区段占用检查
* 参数说明： UINT16 routeId,    进路号
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）（占用/空闲）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
* by yx 2026.03.04
*/
UINT8 RouteAirShaftSecOccuCheck(UINT16 const routeId, UINT16* pDevId, UINT8* pDevState);
/*
* 功能描述： 进路风井区段锁闭检查
* 参数说明： UINT16 routeId,    进路号
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
* by yx 2026.03.04
*/
UINT8 RouteAirShaftSecLockCheck(UINT16 const routeId, UINT16* pDevId, UINT8* pDevState);

/*
* 功能描述： 计轴区段所有防护道岔位置正确检查
* 参数说明： UINT16 const axisSecId,    计轴区段编号
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
* add mpt 20260331
*/
UINT8 AxisSecAllProtSwitchPosCheck(UINT16 const axisSecId, UINT16* pDevId, UINT8* pDevState);

/*
* 功能描述： 计轴区段道岔封锁状态检查
* 参数说明： UINT16 const axisSecId,    计轴区段编号
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
* Add by mpt 20260331
*/
UINT8 AxisSecProtSwitchFLockCheck(UINT16 const axisSecId, UINT16* pDevId, UINT8* pDevState);

/*
* 功能描述： 检查计轴区段跳跃锁闭是否有防护道岔驱动超时
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： UINT8
			 CI_SUCCESS:计轴区段防护道岔无道岔驱动超时
			 CI_ERROR:计轴区段防护道岔驱动超时
add by mpt 20260331
*/
UINT8 ChekJumpLockProtectSwitDrivOvtmStat(const UINT16 axisSecId);

/*
* 功能描述： 计轴区段的防护道岔位置和动作有效性检查
* 参数说明： UINT16 const axisSecId,    计轴区段编号
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
* add by mpt 20260331
*/
UINT8 AxisSecPorteSwitchPosMoveCheck(UINT16 const axisSecId, UINT16* pDevId, UINT8* pDevState, UINT8 funcId, UINT8 sendLevel);

/*
* 功能描述： 区段征用、区段防护道岔区段征用、区段内道岔道岔征用检查、区段内防护道岔道岔征用
* 参数说明：const UINT16 axisSecId 计轴区段ID
* 返回值  ： CI_ERROR
*            CI_SUCCESS
* add by mpt 20260331
*/
UINT8 JumpPhySectionUseCheck(const UINT16 axisSecId);
/*
* 功能描述：区段防护道岔区段、防护道岔征用检查
* 参数说明：const UINT16 axisSecId 计轴区段ID
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*  add by mpt 20260331
*/
UINT8 JumpPhySectionPortectUseCheck(const UINT16 axisSecId);

/*
* 功能描述：逻辑区段防护道岔区段征用、道岔征用检查
* 参数说明：const UINT16 axisSecId 计轴区段ID
* 返回值  ： CI_ERROR
*            CI_SUCCESS
* add by mpt 20260331
*/
UINT8 JumpLogicSecPortectUseCheck(const UINT16 wLgcId);

/*
* 功能描述：计轴区段所在道岔道岔征用检查
* 参数说明：const UINT16 axisSecId 计轴区段ID
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*  add by mpt 20260331
*/
UINT8 JumpPhySectionSwitchUseCheck(const UINT16 axisSecId);

/*
* 功能描述：设置跳跃锁闭防护道岔区段征用状态
* 参数说明：const UINT16 axisSecId 计轴区段ID
*           const UINT8 state 状态
* 返回值  ： void
*  add by mpt 20260331
*/
void SetJumpPhySectionPortectSecUse(const UINT16 axisSecId, const UINT8 state);

/*
* 功能描述：设置逻辑区段的防护道岔区段征用
* 参数说明：const UINT16 axisSecId 计轴区段ID
*           const UINT8 state 状态
* 返回值  ： void
* add by mpt 20260331
*/
void SetJumpLogicSecPortectUse(const UINT16 wLgcId, const UINT8 state);

/*
* 功能描述： 设置计轴区段关联防护道岔防护锁闭状态
* 参数说明： const UINT16 axisSecId, 计轴区段ID
*            const UINT8 lockCommand, 锁闭状态
* 返回值  ： void
* add by mpt 20260331
*/
void SetAxisRelProSwitchLockSta(const UINT16 axisSecId, const UINT8 lockCommand);

/*
* 功能描述： 计轴区段关联防护道岔防护锁闭检查
* 参数说明： UINT16 const routeId,    计轴区段号
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR
*            CI_SUCCESS
* add mpt 20260331
*/
UINT8 AxisRelatedProSwitchLockCheck(UINT16 const axisSecId, UINT16* pDevId, UINT8* pDevState);

/*
* 功能描述： 设置逻辑区段关联防护道岔防护锁闭状态
* 参数说明： const UINT16 axisSecId, 计轴区段ID
*            const UINT8 lockCommand, 锁闭状态
* 返回值  ： void
* add by mpt 20260331
*/
void SetLogSecRelProSwitchLockSta(const UINT16 wLgcId, const UINT8 lockCommand);

/*
* 功能描述：计轴区段所有道岔是否全部征用
* 参数说明：const UINT16 axisSecId 计轴区段ID
* 返回值  ： CI_ERROR  未全部征用
*            CI_SUCCESS 全部征用
*  add by mpt 20260403
*/
UINT8 JumpPhySecAllUseCheck(const UINT16 axisSecId);


/*
* 功能描述： 计轴区段防护道岔引导总锁状态检查
* 参数说明： UINT16 const axisSecId,    计轴区段编号
*            UINT16 *pDevId,    设备Id（返回）
*            UINT8 *pDevState,  设备状态（返回）
* 返回值  ： CI_ERROR 0 失败
*            CI_SUCCESS 1 成功
* Add by LQ 20260518
*/
UINT8 AxisSecProtSwtYLockCheck(UINT16 const axisSecId, UINT16* pDevId, UINT8* pDevState);

#endif




