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

#ifndef _ROUTE_DATA_MANAGE_H_
#define _ROUTE_DATA_MANAGE_H_

#include "RouteDefine.h"
#include "RouteConfigDataManage.h"
#include "CommonTypes.h"
#include "../2oo2/2oo2InterfaceDataManage.h"
#include "../System/CiSystemDefine.h"
#include "../ReverseRoute/ReverseRouteConfigDataManage.h"
#include "../Train/TrainDefine.h"

#ifdef __cplusplus
extern "C" {
#endif


/*进路动态数据结构体*/
typedef struct S_HalfRouteDataStruct
{
	UINT8 HalfRouteSwitchMoveValid;											/*半截锁闭是否可动道岔*/
	UINT8 RouteLockLgcSecNum;												/*半截锁闭逻辑区段数量*/
	UINT16 RouteLockLgcSecIdBuf[MAX_ROUTE_IN_LT_NUM];						/*半截锁闭逻辑区段ID数组*/
	UINT16 HalfResReqTrainId;												/*发送资源请求的列车ID*/
	UINT8 TrainLocLgcSecNum;												/*列车所处逻辑区段数量*/
	UINT16 TrainLocLgcSecIdBuf[ROUTE_TRAIN_LOC_MAX_LGC_SUM];				/*列车所处逻辑区段ID数组*/
}HalfRouteDataStruct;


/*进路动态数据结构体*/
typedef struct S_RouteDataStruct
{
    UINT16 RouteId;															/*进路ID (初始化字段)*/
    UINT8 RouteState;														/*进路状态 (动态字段)*/
	UINT8 RoutePreState;													/* 前一个进路状态 */
	UINT8 RoutePreLevel;													/*进路之间监督级别(点式/CBTC) (动态字段)*/
    UINT8 RouteLevel;														/*进路监督级别(点式/CBTC) (动态字段)*/
	UINT32 RouteLevelChangeCyc;												/*进路监督级别发生变化起始周期号*/
    UINT16 AutoRouteId;														/*自动进路Id(未设置/设置) (动态字段)*/
    UINT16 AutoReturnId;													/*自动折返进路Id(未设置/设置) (动态字段)*/
    UINT32 XuanPaiStartCycNum;												/*选排起始周期号 (动态字段)*/
    UINT32 RouteLockStartCycNum;											/*进路锁闭起始周期号 (动态字段)*/
    UINT32 OverlapLockStartCycNum;											/*保护区段锁闭起始周期号 (动态字段)*/
    UINT32 RouteOpenSigStatrtCycNum;										/*进路信号开放起始周期号 (动态字段)*/
    UINT32 DelayUnlockStartCycNum;											/*进路延时解锁起始周期号 (动态字段)*/
    UINT32 LeadFaultOpenStartCycNum;										/*信号内方第一区段故障引导信号开放起始周期号 (动态字段)*/
    UINT16 OverlapLockedId;													/*当前进路Overlap锁闭过OverlapId*/
    UINT8 ZongQuXiaoFlag;													/*总取消标志(未设置/设置) (动态字段)*/
    UINT8 ZongRenJieFlag;													/*总人解标志(未设置/设置) (动态字段)*/
    UINT8 RepeatOpenFlag;													/*信号重开标志(未设置/设置) (动态字段)*/
    UINT8 StopCheckFlag;													/*停止检查标志(未设置/设置) (动态字段)*/
	UINT8 StopKeepCheckFlag;												/* 保持时候用 */
	UINT8 AutoSigPropertyLoseEfficacyFlag;									/*自动信号属性失效标志（未设置/设置）（动态字段）*/
    UINT16 BelongLongRouteId;												/*所属长调车进路ID (动态字段)*/
    UINT16 ThroughRouteId;												    /*通过进路ID(0未设置/设置) (初始化字段)*/
	UINT16 AllAutoReturnId;												    /*全自动折返进路Id(未设置/设置) (动态字段)*/
	UINT8 StopensureFlag;												    /*停车保证标志(未设置/设置) (动态字段)*/
	UINT8 ResourcecancelFlag;												/*资源取消标志(不允许/允许) (动态字段)*/
    UINT8 SPKSToRouteCloseFlag;											    /*由SPKS导致进路始端信号机关闭标志（动态字段）*/
    UINT8 RouteAssoSwitSingOperStat;									    /*进路带动道岔单操状态*/
	UINT8 RouteInnerSwitDrivState;										    /*进路内道岔驱动状态*/
	UINT8 RouteAssocSwitDrivState;											/*进路带动道岔驱动状态*/
	UINT8 RouteStateFlag;													/*进路状态标志（1：表示有效；0：表示无效）*/
	UINT8 TrainEnterFlag;													/*列车驶入标志*/
	UINT8 ZongRenJieDelayType;												/*总人解延时类型，分为：倒计时结束后立刻全部区段解锁，第一个占压的物理区段前变异常锁闭，所有的物理区段变异常锁闭*/
	UINT8 RecoverOpenState;													/*进路需要重开状态，用于处理PSD、SPKS、扣车恢复重开信号*/
	UINT8 TrainEnterRouteFlag;												/*列车驶入进路标志，用于车辆段中途折返使用*/
	UINT16 atsExptLkOverlapId;												/*ATS或现地期望锁闭的OverlapId*/
	UINT16 OtherCIRouteOvlpUTUnlockCount;								/*其它联锁进路UT保护区段UT解锁周期数*/
	UINT16 OtherCIRouteOvlpCTUnlockCount;								/*其它联锁进路CT保护区段CT解锁周期数*/
	UINT8 NeedOpenNotTrueRepeatFlag;										/*需开放不满足时，重开标志*/
	UINT32 NeedOpenNotTrueRepeatStartCount;									/*需开放不满足时，重开起始周期*/
	UINT8 DCQState;															/*调车请求状态*/
	UINT8 DCTYState;														/*调车同意状态*/
	UINT32 dwDcAgreeBtnPressCycNum;                                         /*调车同意按钮按下起始周期*/
	UINT8 chDcAgreeButtonErrState;                                          /*调车同意按钮故障状态*/
	UINT8 DCTYNotSatisfySignalReOpenFlag;									/*调车同意不满足-信号重开标志*/
	UINT32 DCTYNotSatisfyStartCount;										/*调车同意不满足-起始周期*/
	UINT8 CancleDelayflag;													/*取消进路延时标志*/
	UINT8 CancelResDelayflag;												/*资源取消申请标志位*/
	UINT32 RouteKeepSignalTolerateCycNum;									/*点式进路处于信号开放状态下，终端信号机亮灯状态检查不通过，信号保持容忍开放状态开始周期*/
	UINT8 AutoSigCancleState;												/*其他联锁自动信号进路取消状态*/
	UINT8 CancleAutoSigCmd;													/*相邻联锁自动信号取消命令标志*/

	UINT8 OverlapNeedCIlockFlag;											 /*保护区段需要由联锁自行锁闭标志*/
	UINT8 OverlapLockProcFlag;												 /*进路的保护区段在锁闭过程中*/
	UINT8 GroupRouteCmdFlag;												/*进路是否具有组合进路命令标志。终端下发后，在各进路锁闭状态下设置，空闲后清除*/
	UINT8 AutoTriggerFlag;													/*进路是否设置了自动触发*/

	UINT16 wStopEnsureTrainId;												/*进路停车保证列车ID*/
	UINT32 dwStopEnsureCyc;													/* 停车保证询问周期号 */

	UINT16 wResourceCancelTrainId;												/*进路资源取消列车ID*/
	UINT32 dwResourceCancelCyc;													/* 资源取消询问周期号 */

	UINT16 wZhefanjiesuoTrainId;												/*进路最接近的车，需要考虑列车中途折返解锁的车ID*/
	UINT32 dwRouteZhefanjiesuoCyc;												/*进路最接近的车，需要考虑列车中途折返解锁的周期号*/

	UINT8 cResReqOtherCIId;													/*发送资源请求的其他联锁ID*/
	UINT8 chResReqTrainSum;
	UINT16 wszResReqTrainId[ROUTE_APPLY_RECD_TRAIN_SUM_MAX];				/*发送资源请求的列车ID*/
	UINT8 ITSRouteApplyTrainIdSum;											/*ITS申请路径命令的列车ID记录的总数量*/
	UINT16 ITSRouteApplyTrainIdBuf[ROUTE_APPLY_RECD_TRAIN_SUM_MAX];			/*通过ITS申请路径命令记录的列车ID数组*/
	UINT8 chShareOverlapCiId;													/*公共保护区段ID*/
	UINT8 chRouteXiansuConfirm;												/*进路限速确认状态*/
	HalfRouteDataStruct HalfRouteDataSt;									/*进路半截锁闭状态*/
	UINT16 wBelongDrId;														/*所属动态进路ID*/
	UINT32 dwFirstElockStartCycNum;						                    /*进路第一个锁闭的逻辑区段延时设置区段故障起始周期号*/
	UINT8 cRelZuHeRouteSGBJDelayFlag;                                       /*关联组合进路需延时开放标志*/
	UINT32 dwDelayOpenStartCycNum;                                          /*声光报警进路延时开放延时起始周期*/
	UINT8 cRouteNeedDriveSGBJFlag;                                          /*进路需驱动声光报警标志：0x55 无效；0xAA 有效*/
	UINT8 cRouteDrivedSGBJFlag;                                             /*进路驱动过声光报警标志：0x55 未驱动过；0xAA 已驱动过*/
	UINT8 chRouteNearSecSearchState;                                        /*进路接近区段状态*/
	UINT8 chRouteApplySwitchCheckFlag;                                      /*进路办理相邻控区道岔检查标志*/
	UINT16 OtherCiRecordDevID;											/*其他联锁检查失败设备ID*/
	UINT8 OtherCiRecordDevType;											/*其他联锁检查失败设备类型*/
	UINT8 OtherCiRecordDevState;											/*其他联锁检查失败设备状态*/
	UINT8 OtherCiRecordErrorType;									/*其他联锁检查失败报警类型*/
	UINT8 cRouteToLeadFlag;                                      /*普通进路转引导进路标志：0x55-无效，0xAA-有效（当周期清除，无需打印日志）*/
} RouteDataStruct;


extern RouteDataStruct RouteDataStru[ROUTE_SUM_MAX];   /*定义进路数据结构体*/
/*
* 功能描述： 获取指定ID进路数据
* 参数说明：   
* 返回值  ： 
            RouteDataStruct *
*/
RouteDataStruct *GetRouteData(void);

/*
* 功能描述： 获取指定ID进路状态
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*           >0: 进路状态
*/
UINT8 GetRouteState(const UINT16 routeId);

/*
* 功能描述： 获取指定ID进路前一个状态
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*           >0: 进路状态
*/
UINT8 GetRoutePreState(const UINT16 routeId);

/*
* 功能描述： 设置指定ID进路状态
* 参数说明： const UINT16 routeId, 进路ID
*            const UINT8 routeState, 进路状态
* 返回值  ： CI_ERROR
*            CI_SUCCESS
* edit cgh 20250224
*/
UINT8 SetRouteState(const UINT16 routeId, const UINT8 routeState);

/*
* 功能描述： 获取指定ID进路监督级别变化周期号
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*           >0: 监督级别变化周期号
* by cgh 20240325
*/
UINT32 GetRouteLevelChangeCyc(const UINT16 routeId);

/*
* 功能描述： 获取指定ID进路监督级别
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*           >0: 进路监督级别
*/
UINT8 GetRouteLevel(const UINT16 routeId);

/*
* 功能描述： 设置指定ID进路监督级别
* 参数说明： const UINT16 routeId, 进路ID
*            const UINT8 routeLevel, 进路级别
* 返回值  ： 无
*             
*/
void SetRouteLevel(const UINT16 routeId, const UINT8 routeLevel);

/*
* 功能描述： 获取指定ID进路自动折返进路设置状态
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*           >0: 自动进路设置状态
*/
UINT16 GetRouteAutoReturnId(const UINT16 routeId);

/*
* 功能描述： 设置指定ID进路自动折返进路Id
* 参数说明： const UINT16 routeId, 进路ID
*            const UINT8 autoRouteState, 自动进路设置状态
* 返回值  ： CI_ERROR: 设置数据失败
*            CI_SUCCESS: 设置数据成功
*/
UINT8 SetRouteAutoReturnId(const UINT16 routeId, const UINT16 autoDataId);


/*
* 功能描述： 获取指定ID进路自动信号属性失效设置状态
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*           >0: 自动信号属性失效设置状态
*/
UINT8 GetRouteAutoSigLoseEfficacyFlag(const UINT16 routeId);

/*
* 功能描述： 设置指定ID进路自动信号属性失效标志
* 参数说明： const UINT16 routeId, 进路ID
*            const UINT8 autoSigPropertyLoseEfficacyFlag, 进路自动信号属性失效设置标志
* 返回值  ： 0: 设置数据失败
*            1: 设置数据成功
*/
UINT8 SetRouteAutoSigLoseEfficacyFlag(const UINT16 routeId, const UINT8 autoSigPropertyLoseEfficacyFlag);

/*
* 功能描述： 获取指定ID进路对应的自动进路ID
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*           >0: 自动进路ID
*/
UINT16 GetRouteAutoRouteId(const UINT16 routeId);

/*
* 功能描述： 设置指定ID进路自动进路Id
* 参数说明： const UINT16 routeId, 进路ID
*            const UINT8 autoRouteState, 自动进路设置状态
* 返回值  ： CI_ERROR: 设置数据失败
*            CI_SUCCESS: 设置数据成功
*/
UINT8 SetRouteAutoRouteId(const UINT16 routeId, const UINT16 autoDataId);


/*
* 功能描述： 获取指定ID进路自动进路设置状态
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ：  ROUTE_AUTOROUTE_NONE      0x01    无自动属性
              ROUTE_AUTOROUTE_NORMAL    0x02    普通自动进路
              ROUTE_AUTOROUTE_RETURN    0x03    自动折返进路
              ROUTE_AUTOROUTE_ERROR     0xFF    错误自动属性
*/
UINT8 GetRouteAutoRouteSetState(const UINT16 routeId);

/*
* 功能描述： 获取指定ID进路自动信号设置状态
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ：  ROUTE_AUTOSIGROUTE_YES   0xaa    进路是自动信号进路
              ROUTE_AUTOSIGROUTE_NO    0x55    进路不是自动信号进路
*/
UINT8 GetRouteAutoSigSetState(const UINT16 routeId);


/*
* 功能描述： 获取指定ID进路选排起始周期号
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*           >0: 选排起始周期号
*/
UINT32 GetRouteXuanPaiStartCycNum(const UINT16 routeId);

/*
* 功能描述： 获取指定ID进路信号开放起始周期号
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*           >0: 选排起始周期号
*/
UINT32 GetRouteOpenSigStatrtCycNum(const UINT16 routeId);

/*
* 功能描述： 设定指定ID进路信号开放起始周期号
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 无
*           
*/
void SetRouteOpenSigStartCycNum(const UINT16 routeId, const UINT32 signalOpenStartCycNum);

/*
* 功能描述： 获取指定ID进路延时解锁起始周期号
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*           >0: 点式延时解锁起始周期号
*/
UINT32 GetRouteDelayUnlockStartCycNum(const UINT16 routeId);

/*
* 功能描述： 获取指定ID进路引导进路内方故障信号开放起始周期号
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*           >0: 引导进路内方故障信号开放起始周期号
*/
UINT32 GetRouteLeadFaultOpenStartCyc(const UINT16 routeId);

/*
* 功能描述： 设置指定ID进路引导进路内方故障信号开放起始周期号
* 参数说明： const UINT16 routeId, 进路ID
*            const UINT32 faultOpenStartCycNum, 引导进路内方故障信号开放起始周期号
* 返回值  ： 无
*             
*/
void SetRouteLeadFaultOpenStartCyc(const UINT16 routeId, const UINT32 faultOpenStartCycNum);

/*
* 功能描述： 获取指定ID进路锁闭起始周期号
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*           >0: 锁闭起始周期号
*/
UINT32 GetRouteLockStartCycNum(const UINT16 routeId);


/*
* 功能描述： 获取进路Overlap锁闭起始周期
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*           >0: 锁闭起始周期号
*/
UINT32 GetOverlapLockStartCycNum(const UINT16 routeId);

/*
* 功能描述： 设置进路Overlap锁闭起始周期
* 参数说明： const UINT16 routeId, 进路ID
*            const UINT8 lockFlag, 锁闭标志
* 返回值  ： 0: 设置数据失败
*            1: 设置数据成功
*/
UINT8 SetOverlapLockStartCycNum(const UINT16 routeId, const UINT32 startCycNum);

/*
* 功能描述： 获取进路Overlap锁闭标志
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 
            ROUTE_OVERLAP_SET_NO                0x55	未设置
            ROUTE_OVERLAP_SET_YES               0xaa	设置
            ROUTE_OVERLAP_SET_NULL              0xff	无保护区段
*/
UINT8 GetRouteOverlapLockFlag(const UINT16 routeId);

/*
* 功能描述： 获取进路Overlap锁闭ID
* 参数说明： const UINT16 routeId, 进路ID
*            const UINT8 lockFlag, 锁闭标志
* 返回值  ： 0: 设置数据失败
*            1: 设置数据成功
*/
UINT16 GetRouteOverlapLockedId(const UINT16 routeId);

/*
* 功能描述： 设置进路Overlap锁闭ID
* 参数说明： const UINT16 routeId, 进路ID
*            const UINT8 lockFlag, 锁闭标志
* 返回值  ：void
*/
void SetRouteOverlapLockedId(const UINT16 routeId, const UINT16 OverlapId);

/*
* 功能描述： 获取指定ID进路总取消状态
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*           >0: 总取消状态
*/
UINT8 GetRouteZongQuXiaoFlag(const UINT16 routeId);

/*
* 功能描述： 设置指定ID进路总取消状态
* 参数说明： const UINT16 routeId, 进路ID
*            const UINT8 cancelState, 总取消状态
* 返回值  ： void
*/
void SetRouteZongQuXiaoFlag(const UINT16 routeId, const UINT8 cancelState);

/*
* 功能描述： 获取指定ID进路总人解状态
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*           >0: 总人解状态
*/
UINT8 GetRouteZongRenJieFlag(const UINT16 routeId);

/*
* 功能描述： 设置指定ID进路总人解状态
* 参数说明： const UINT16 routeId, 进路ID
*            const UINT8 cancelState, 总人解状态
* 返回值  ： 0: 设置数据失败
*            1: 设置数据成功
*/
UINT8 SetRouteZongRenJieFlag(const UINT16 routeId, const UINT8 cancelState);

/*
* 功能描述： 获取指定ID进路重开标志
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*           >0: 重开状态
*/
UINT8 GetRouteRepeatOpenFlag(const UINT16 routeId);

/*
* 功能描述： 设置指定ID进路重开标志
* 参数说明： const UINT16 routeId, 进路ID
*            const UINT8 repeatOpenFlag, 重开标志
* 返回值  ： 无
*            
*/
void SetRouteRepeatOpenFlag(const UINT16 routeId, const UINT8 repeatOpenFlag);

/*
* 功能描述： 获取指定ID进路停止检查状态
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*           >0: 停止检查状态
*/
UINT8 GetRouteStopCheckFlag(const UINT16 routeId);

/*
* 功能描述： 设置指定ID进路停止检查状态
* 参数说明： const UINT16 routeId, 进路ID
*            const UINT8 stopCheckState, 停止检查状态
* 返回值  ： 0: 设置数据失败
*            1: 设置数据成功
*/
UINT8 SetRouteStopCheckFlag(const UINT16 routeId, const UINT8 stopCheckState);

/*
* 功能描述： 获取指定ID进路所属长调进路ID
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*           >0: 所属长调进路ID
*/
UINT16 GetRouteBelongLongRouteId(const UINT16 routeId);

/*
* 功能描述： 设置指定ID进路所属长调进路ID
* 参数说明： const UINT16 routeId, 进路ID
*            const UINT16 belongLongRouteId, 所属长调进路ID
* 返回值  ： 无
*             
*/
void SetRouteBelongLongRouteId(const UINT16 routeId, const UINT16 belongLongRouteId);

/*
* 功能描述： 进路状态有效性检查
* 参数说明： const UINT8 routeState, 进路状态
* 返回值  ： 0: 数据无效
*            1: 数据有效
*/
UINT8 RouteStateValidCheck(const UINT8 routeState);
/*
* 功能描述： 设置指定ID进路全自动折返进路Id
* 参数说明： const UINT16 routeId, 进路ID
*            const UINT16 autoDataId, 全自动进路ID
* 返回值  ： CI_ERROR: 设置数据失败
*            CI_SUCCESS: 设置数据成功
*/
UINT8 SetRouteAllAutoReturnId(const UINT16 routeId, const UINT16 autoDataId);
/*
* 功能描述： 获取指定ID通过进路ID
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*           >0: 进路状态
*/
UINT16 GetRouteThroughRouteId(const UINT16 routeId);


/*
* 功能描述： 获取指定ID进路全自动折返进路ID
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*           >0: 全自动进路设置状态
*/
UINT16 GetRouteAllAutoReturnId(const UINT16 routeId);


/*
* 功能描述： 获取指定ID进路停车保证标志
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*            1: 获取数据成功
*/
UINT8 GetRouteStopensureFlag(const UINT16 routeId);

/*
* 功能描述： 设置指定ID进路停车保证标志
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 无
*             
*/
void SetRouteStopensureFlag(const UINT16 routeId, const UINT8 stopensureFlag);

/*
* 功能描述： 获取指定ID进路资源取消标志
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*            1: 获取数据成功
*/
UINT8 GetRouteResourceCancelFlag(const UINT16 routeId);

/*
* 功能描述： 设置指定ID进路资源取消标志
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 无
*
*/
void SetRouteResourceCancelFlag(const UINT16 routeId, const UINT8 resourcecancelFlag);

#if 0
/*
* 功能描述： 获取指定进路始端ID信号机由SPKS关闭标志
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*			>0: 由SPKS导致信号关闭标志      
*/
UINT8 GetSPKSToRouteCloseFlag(const UINT16 routeId);


/*
* 功能描述： 设置指定进路始端ID信号机由SPKS关闭标志
* 参数说明： const UINT16 routeId, 进路ID
			 const UINT8 closeFlag, 由SPKS导致信号关闭标志
* 返回值  ： 0: 获取数据失败
*			>0:  获取成功        
*/
UINT8 SetSPKSToRouteCloseFlag(const UINT16 routeId,const UINT8 closeFlag);
#endif

/*
* 功能描述： 获取指定ID进路停止保持检查状态
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*           >0: 停止保持检查状态
*/
UINT8 GetRouteStopKeepCheckFlag(const UINT16 routeId);

/*
* 功能描述： 设置指定ID进路停止保持检查状态
* 参数说明： const UINT16 routeId, 进路ID
*            const UINT8 stopKeepCheckState, 停止保持检查状态
* 返回值  ： 0: 设置数据失败
*            1: 设置数据成功
*/
UINT8 SetRouteStopKeepCheckFlag(const UINT16 routeId, const UINT8 stopKeepCheckState);

/*
* 功能描述： 获取指定ID进路带动道岔单操状态
* 参数说明： const UINT16 routeId, 进路ID    
*			UINT8 *pRouteAssoSwitSingOperStat 进路带动道岔单操状态
* 返回值  ： 无
*			 
*/
void GetRoutAssoSwitSingOperStat(const UINT16 routeId, UINT8 *pRouteAssoSwitSingOperStat);

/*
* 功能描述： 设置指定ID进路带动道岔单操状态
* 参数说明： const UINT16 routeId, 进路ID
*					UINT8 RouteAssoSwitSingOperStat 带动道岔单操状态
* 返回值  ： 无
*			 
*/
void SetRoutAssoSwitSingOperStat(const UINT16 routeId, UINT8 RouteAssoSwitSingOperStat);

/*
* 功能描述： 获取指定ID进路状态标志
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*           >0: 进路状态标志
*/
UINT8 GetRouteStateFlag(const UINT16 routeId);
/*
* 功能描述： 设置指定ID进路状态标志
* 参数说明： const UINT16 routeId, 进路ID
*            const UINT8 routeLevel, 进路状态标志
* 返回值  ：void
*/
void SetRouteStateFlag(const UINT16 routeId, const UINT8 routeStateFlag);
/*
* 功能描述：设置指定ID进路选排起始周期号
* 参数说明： const UINT16 routeId, 进路ID
*            const UINT32 startCycNum, 起始周期号
* 返回值  ： 0: 设置数据失败
*           >0: 选排起始周期号
*/
UINT8 SetRouteXuanPaiStartCycNum(const UINT16 routeId, const UINT32 startCycNum);

#if 0
/*
* 功能描述： 设置指定进路的SPKS恢复需要重开信号标志
* 参数说明： const UINT16 routeId, 进路ID
*            const UINT32 flag, SPKS恢复需要重开信号标志
* 返回值  ： 0: 设置数据失败
*            1: 设置数据成功
*/
UINT8 SetRouteSpksReOpenSigFlag(const UINT16 routeId, const UINT8 flag);

/*
* 功能描述： 设置指定进路的扣车恢复需要重开信号标志
* 参数说明： const UINT16 routeId, 进路ID
*            const UINT32 flag, 扣车恢复需要重开信号标志
* 返回值  ： 0: 设置数据失败
*            1: 设置数据成功
*/
UINT8 SetRouteDetainReOpenSigFlag(const UINT16 routeId, const UINT8 flag);

/*
* 功能描述： 获取指定进路的SPKS恢复需要重开信号标志
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*           >0: 进路的SPKS恢复需要重开信号标志
*/
UINT8 GetRouteSpksReOpenSigFlag(const UINT16 routeId);

/*
* 功能描述： 获取指定进路的扣车恢复需要重开信号标志
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0:获取数据失败
*           >0:进路的扣车恢复需要重开信号标志
*/
UINT8 GetRouteDetainReOpenSigFlag(const UINT16 routeId);

/*
* 功能描述： 设置指定进路的扣车导致信号关闭标志
* 参数说明： const UINT16 routeId, 进路ID
*            const UINT32 flag, 扣车导致信号关闭标志
* 返回值  ： 0: 设置数据失败
*            1: 设置数据成功
*/
UINT8 SetRouteDetainCloseFlag(const UINT16 routeId, const UINT8 flag);

/*
* 功能描述： 获取指定进路的扣车导致信号关闭标志
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*           >0: 进路的扣车导致信号关闭标志
*/
UINT8 GetRouteDetainToRouteCloseFlag(const UINT16 routeId);
#endif

/*
* 功能描述： 设置指定进路的列车驶入进路标志
* 参数说明： const UINT16 routeId, 进路ID
*            const UINT32 flag, 列车驶入进路标志
* 返回值  ： 无
*            
*/
void SetRouteTrainEnterFlag(const UINT16 routeId, const UINT8 flag);
/*
* 功能描述： 获取指定进路的列车驶入进路标志
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*           >0: 进路的列车驶入进路标志
*/
UINT8 GetRouteTrainEnterFlag(const UINT16 routeId);

/*
* 功能描述： 设置指定进路的总人解延时类型
* 参数说明： const UINT16 routeId, 进路ID
*            const UINT32 delayType, 总人解延时类型
* 返回值  ： 无
*             
*/
void SetRouteZongRenJieDelayType(const UINT16 routeId, const UINT8 delayType);

/*
* 功能描述： 获取指定进路的总人解延时类型
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*           >0: 进路的总人解延时类型
*/
UINT8 GetRouteZongRenJieDelayType(const UINT16 routeId);

/*
* 功能描述： 设置指定进路的SPKS、PSD、扣车恢复重开信号标志
* 参数说明： const UINT16 routeId, 进路ID
*            const UINT32 flag, 总人解延时类型
* 返回值  ： 无
*            
*/
void SetRouteRecoverState(const UINT16 routeId,const UINT8 flag);

/*
* 功能描述： 获取指定进路的SPKS、PSD、扣车恢复重开信号标志
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*           >0: SPKS、PSD、扣车恢复重开信号标志
*/
UINT8 GetRouteRecoverOpenFlag(const UINT16 routeId);

/*
* 功能描述： 设置指定进路的列车是否驶入过该进路标志，该标志用于中途折返
* 参数说明： const UINT16 routeId, 进路ID
*            const UINT8 flag, 列车是否驶入过该进路标志
* 返回值  ： 无
*             
*/
void SetTrainEnterRouteFlag(const UINT16 routeId, const UINT8 flag);

/*
* 功能描述： 获取指定进路的列车是否驶入过该进路标志，该标志用于中途折返
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*           >0: 进路的列车是否驶入过该进路标志
*/
UINT8 GetTrainEnterRouteFlag(const UINT16 routeId);

/*
* 功能描述： 获取指定ID进路期望锁闭保护区段ID
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*           >0: 进路期望锁闭保护区段ID
*/
UINT16 GetRouteAtsExpLkOverlapId(const UINT16 routeId);

/*
* 功能描述： 设置指定ID进路期望锁闭保护区段ID
* 参数说明： const UINT16 routeId, 进路ID
*            const UINT16 expLkOverlapId, ats或现地发送的期望锁闭保护区段Id
* 返回值  ： 无
*             
*/
void SetRouteAtsExpLkOverlapId(const UINT16 routeId, const UINT16 expLkOverlapId);

/*
* 功能描述： 获取其它联锁进路保护区段UT解锁周期数
* 参数说明： const UINT16 routeId,进路ID
* 返回值  ： 0: 设置数据失败
*            其它: 周期数
*/
UINT16 GetOtherCIRouteOvlpUTUnlockCnt(const UINT16 routeId);

/*
* 功能描述： 设置其它联锁进路保护区段UT解锁周期数
* 参数说明： const UINT16 routeId, 进路ID
*            const UINT16 count, 其它联锁进路保护区段解锁周期数
* 返回值  ： 无
*            
*/
void SetOtherCIRouteOvlpUTUnlockCnt(const UINT16 routeId,const UINT16 count);


/*
* 功能描述： 获取其它联锁进路保护区段CT解锁周期数
* 参数说明： const UINT16 routeId,进路ID
* 返回值  ： 0: 设置数据失败
*            其它: 周期数
*/
UINT16 GetOtherCIRouteOverlapCTUnlockCount(const UINT16 routeId);

/*
* 功能描述： 设置其它联锁进路保护区段CT解锁周期数
* 参数说明： const UINT16 routeId, 进路ID
*            const UINT16 count, 其它联锁进路保护区段解锁周期数
* 返回值  ： 无
*            
*/
void SetOtherCIRouteOverlapCTUnlockCount(const UINT16 routeId,const UINT16 count);


/*
* 功能描述： 设置指定进路的需开放不满足时重开信号标志
* 参数说明： const UINT16 routeId, 进路ID
*            const UINT32 flag, 重开信号标志
* 返回值  ： 无
*             
*/
void SetRouteNeedOpenReopenFlag(const UINT16 routeId, const UINT8 flag);


/*
* 功能描述： 获取指定进路的需开放不满足时重开信号标志
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*           >0: 重开信号标志
*/
UINT8 GetRouteNeedOpenReopenFlag(const UINT16 routeId);

/*
* 功能描述： 获取指定ID进路需开放不满足时起始信号机重开起始周期号
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*           >0: 重开起始周期号
*/
UINT32 GetRouteNeedOpenNotTrueSigRepeatOpenStartCycNum(const UINT16 routeId);

/*
* 功能描述： 设定指定ID进路需开放不满足时起始信号机重开起始周期号
* 参数说明： const UINT16 routeId, 进路ID
*			const UINT32 signalOpenStartCycNum， 信号开放起始周期
* 返回值  ：无
*            
*/
void SetRouteNeedOpenNotTrueSigRepeatOpenStartCycNum(const UINT16 routeId, const UINT32 signalOpenStartCycNum);

/*
* 功能描述： 设置指定进路的调车请求状态
* 参数说明： const UINT16 routeId, 进路ID
*            const UINT8 dcqState, 调车请求状态
* 返回值  ： 无
* by cgh 20250523
*/
void SetRouteDCQState(const UINT16 routeId, const UINT8 dcqState);

/*
* 功能描述： 获取指定进路的调车请求状态
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*           >0: 调车请求状态
*/
UINT8 GetRouteDCQState(const UINT16 routeId);

/*
* 功能描述： 设置指定进路的调车同意状态
* 参数说明： const UINT16 routeId, 进路ID
*            const UINT8 dcTyState, 调车请求状态
* 返回值  ： 无
* by cgh 20250523
*/
void SetRouteDCTYState(const UINT16 routeId, const UINT8 dcTyState);

/*
* 功能描述： 获取指定进路的调车同意状态
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*           >0: 调车同意状态
*/
UINT8 GetRouteDCTYState(const UINT16 routeId);

/*
* 功能描述： 获取指定进路的调车同意不满足信号重开标志
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*           >0: 调车同意状态
*/
UINT8 GetRouteDCTYNotSatisfySignalReOpenFlag(const UINT16 routeId);

/*
* 功能描述： 设置指定进路的调车同意不满足信号重开标志
* 参数说明： const UINT16 routeId, 进路ID
*            const UINT32 dcTyState, 调车同意重开标志
* 返回值  ： 无
*             
*/
void SetRouteDCTYNotSatisfySignalReOpenFlag(const UINT16 routeId, const UINT8 dcTyFlag);

/*
* 功能描述： 获取指定进路的调车同意起始周期
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*           >0: 调车同意起始周期
*/
UINT32 GetRouteDCTYNotSatisfyStartCnt(const UINT16 routeId);


/*
* 功能描述： 设置指定进路的调车同意不满足起始周期
* 参数说明： const UINT16 routeId, 进路ID
*            const UINT32 dcTyState, 调车同意起始周期
* 返回值  ： 无
*             
*/
void SetRouteDCTYNotSatisfyStartCnt(const UINT16 routeId, const UINT32 dcTyCount);

/*
* 功能描述： 设置指定点式进路终端信号机亮灯状态检查不通过，信号保持容忍开放状态开始周期
* 参数说明： const UINT16 routeId, 进路ID
*            const UINT32 CycleNum, 周期号
* 返回值  ： 0: 设置数据失败
*            1: 设置数据成功
*/
UINT8 SetRouteKeepSigTolerateCyc(const UINT16 routeId, const UINT32 dwCycleNum);

/*
* 功能描述： 获取指定点式进路终端信号机亮灯状态检查不通过，信号保持容忍开放状态开始周期
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*           >0: 容忍周期数
*/
UINT32 GetRouteKeepSigTolerateCyc(const UINT16 routeId,  UINT32 *pTolerateCycNum);

/*
* 功能描述： 设置指定进路的总取消延时标志
* 参数说明： const UINT16 routeId, 进路ID
*            const UINT32 delayflag, 总取消延时标志
* 返回值  ： 无
*             
*/
void SetRouteZongQuXiaoDelayFlag(const UINT16 routeId, const UINT8 delayflag);


/*
* 功能描述： 获取指定进路的总取消延时标志
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*           >0: 进路的总取消标志
*/
UINT8 GetRouteZongQuXiaoDelayFlag(const UINT16 routeId);

/*
* 功能描述： 设置存在自动信号进路取消标志
* 参数说明： const UINT16 routeId, 进路ID
*            const UINT8 cmdFlag  命令标志
* 返回值  ： 无
*/
void SetCancleAutoSigCmdFlag(const UINT16 routeId,const UINT8 cmdFlag);

/*
* 功能描述： 获取指定进路的取消命令
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*           >0: 进路的取消命令
*/
UINT8 GetCancleAutoSigCmdFlag(const UINT16 routeId);

/*
* 功能描述： 设置自动信号取消状态
* 参数说明： const UINT16 routeId, 进路ID
*            const UINT8 cancleState 进路取消状态
* 返回值  ： 无
*/
void SetAutoSigCancleState(const UINT16 routeId,const UINT8 cancleState);

/*
* 功能描述： 获取指定进路的取消状态
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*           >0: 进路的取消状态
*/
UINT8 GetAutoSigCancleState(const UINT16 routeId);

/*
* 功能描述： 获取指定进路的停车保证申请列车ID
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*           >0: 停车保证申请列车ID
*/
UINT16 GetRouteStopEnassureTrainId(const UINT16 routeId);

/*
* 功能描述： 设置进路需询问停车保证的列车ID号
* 参数说明： const UINT16 routeId, 进路ID
*            const UINT16 wTrainId 列车编号
* 返回值  ： 无
*/
void SetRouteStopEnsureTrainId(const UINT16 routeId, const UINT16 wTrainId);

/*
* 功能描述： 获取指定进路的资源取消允许列车ID
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*           >0: 停车保证申请列车ID
*/
UINT16 GetRouteResourceCancelTrainId(const UINT16 routeId);

/*
* 功能描述： 设置进路需询问资源取消的列车ID号
* 参数说明： const UINT16 routeId, 进路ID
*            const UINT16 wTrainId 列车编号
* 返回值  ： 无
*/
void SetRouteResourceCancelTrainId(const UINT16 routeId, const UINT16 wTrainId);

/*
* 功能描述： 获取指定进路需要折返解锁的列车ID
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*           >0: 停车保证申请列车ID
*/
UINT16 GetRouteZhefanJiesuoTrainId(const UINT16 routeId);

/*
* 功能描述： 设置指定进路需要折返解锁的列车ID号
* 参数说明： const UINT16 routeId, 进路ID
*            const UINT16 wTrainId 列车编号
* 返回值  ： 无
*/
void SetRouteZhefanJiesuoTrainId(const UINT16 routeId, const UINT16 wTrainId);






/*
* 功能描述： 获取进路接近区段上最近的列车
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0u 无车接近
*			 接近列车的边编号
*/
UINT16 GetRouteNearestTrainId(const UINT16 wRouteId);

/*
* 功能描述： 获取进路接近区段上最近的列车，不判列车与进路的方向
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0u 无车接近
*			 接近列车的边编号
*/
UINT16 GetRouteNODirNearestTrainId(const UINT16 wRouteId);

/*
* 功能描述： 进路资源传递保护区段资源
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0u 无车接近
*			 接近列车的边编号
*/
void RouteResourceToOverlap(const UINT16 wRouteId);

/*
* 功能描述： 获取指定ID进路发送资源请求的其他联锁ID
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*           >0: 联锁编号
*/
UINT8 GetRouteResReqOtherCIId(const UINT16 routeId);


/*
* 功能描述： 设置指定ID进路发送资源请求的其他联锁ID
* 参数说明： const UINT16 routeId, 进路ID
*            const UINT8 cOtherCiId, 联锁编号
* 返回值  ： 无
*
*/
void SetRouteResReqOtherCIId(const UINT16 routeId, const UINT8 cOtherCiId);

/*
* 功能描述： 获取指定ID进路发送资源请求的列车
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*           >0: 联锁编号
*/
UINT16 * GetRouteResReqTrainIdBuf(const UINT16 routeId);

/*
* 功能描述： 获取指定进路请求列车数量
* 参数说明： const UINT16 wRouteId, 进路ID
*
* 返回值  ： 数量
*/
UINT8 GetRouteResReqTrainSum(const UINT16 wRouteId);

/*
* 功能描述： 删除指定需请求列车ID
* 参数说明： UINT16 routeId,   进路ID
*			 UINT16 wTrainId   列车ID
* 返回值  ：
*/
void RemoveRouteReqResTrain(UINT16 routeId, UINT16 wTrainId);

/*
* 功能描述： 清理指定ID进路发送资源请求的列车
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 无
*
*/
void ClearRouteResReqTrainBuf(const UINT16 routeId);

/*
* 功能描述： 设置指定ID进路发送资源请求的列车ID
* 参数说明： const UINT16 routeId, 进路ID
*            const UINT8 wTrainId, 列车
* 返回值  ： 无
*
*/
void SetRouteResReqTrainId(const UINT16 routeId, const UINT16 wTrainId);

/* 集成 bug 20220420 wqm 编码规范：删除冗余代码*/


/*
* 功能描述： 获取指定进路的停车保证申请命令的周期号
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 周期号
*/
UINT32 GetRouteStopEnassureCyc(const UINT16 routeId);


/*
* 功能描述： 设置进路需询问停车保证申请命令的周期号
* 参数说明： const UINT16 routeId, 进路ID
*           const UINT32 dwCyc 周期号
* 返回值  ： 无
*/
void SetRouteStopEnsureCyc(const UINT16 routeId, const UINT32 dwCyc);

/*
* 功能描述： 获取指定进路的资源取消允许命令的周期号
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 周期号
*/
UINT32 GetRouteResourceCancelCyc(const UINT16 routeId);

/*
* 功能描述： 设置进路需询问资源取消允许命令的周期号
* 参数说明： const UINT16 routeId, 进路ID
*           const UINT32 dwCyc 周期号
* 返回值  ： 无
*/
void SetRouteResourceCancelCyc(const UINT16 routeId, const UINT32 dwCyc);

/*
* 功能描述： 获取指定进路需要列车折返解锁的周期号
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 周期号
*/
UINT32 GetRouteZhefanJiesuoCyc(const UINT16 routeId);

/*
* 功能描述： 设置指定进路需要列车折返解锁的周期号
* 参数说明： const UINT16 routeId, 进路ID
*           const UINT32 dwCyc 周期号
* 返回值  ： 无
*/
void SetRouteZhefanJiesuoCyc(const UINT16 routeId, const UINT32 dwCyc);


/*
* @brief 设置ITS申请路径命令包含的TrainID
* @details 记录ITS申请路径命令对指定进路的列车ID，以便进路初锁时，逻辑区段资源上可添加该列车ID。
* @param const UINT16 routeId 进路ID
*        const UINT16 trainID 列车ID
* @note 创建 WQM 20220310
*/
void SetITSRouteApplyTrainIDInfo(const UINT16 routeId, const UINT16 trainId);

/*
* @brief 获取指定进路ITS申请路径命令的列车ID记录的总数量
* @param const UINT16 routeId 进路ID
* @return UINT8 retVal 记录的列车ID总数量
* @retval CI_ERROR 默认返回值
*		  记录的列车ID总数量
* @note 创建 WQM 20220310
*/
UINT8 GetITSRouteApplyTrainIdSum(const UINT16 routeId);

/*
* @brief 获取指定进路ITS申请路径命令记录的列车ID数组
* @param const UINT16 routeId 进路ID
* @return UINT16 * retVal 记录的列车ID数组
* @retval NULL 默认返回值
*		  记录的列车ID数组
* @note 创建 WQM 20220310
*/
UINT16 * GetITSRouteApplyTrainIdBuf(const UINT16 routeId);

/*
* @brief 清空指定进路ITS申请路径命令记录的列车ID信息
* @param const UINT16 routeId 进路ID
* @note 创建 WQM 20220310
*/
void ClearITSRouteApplyTrainIDInfo(const UINT16 routeId);

/*
* @brief 设置进路保护区段需置共享资源CIId
* @details 记录CiID，该联锁收到后需置保护区段为共享资源
* @param const UINT16 routeId 进路ID
*        const UINT8 chCiId   CiID
* @return 无
*/
void SetRouteOvlapShrCiId(const UINT16 routeId, const UINT8 chCiId);

/*
* @brief 获取路保护区段需置共享资源CIId
* @param const UINT16 routeId 进路ID
* @return UINT8 retVal 记录的Ci ID
* @retval CI_ERROR 默认返回值
*		  记录的需请求得CiId
*/
UINT8 GetRouteOvlapShrCiId(const UINT16 routeId);

/*
* @brief 获取进路限速确认状态
* @param const UINT16 routeId 进路ID
* @return UINT8 retVal 记录的Ci ID
* @retval CI_ERROR 默认返回值
*		  进路限速确认状态
*/
UINT8 GetRouteXiansuConfirmStt(const UINT16 routeId);
/*
* @brief 设置进路限速确认状态
* @details 设置限速确认后，点式进路不检查限速状态
* @param const UINT16 routeId 进路ID
*        const UINT8 chXianSuRemoveStt   chXianSuRemoveStt
* @return 无
*/
void SetRouteXianSuConfirmStt(const UINT16 routeId, const UINT8 chXianSuConfirmStt);

/*
*功能描述： 设置保护区段需要由联锁锁闭标志
* 参数说明： const UINT16 routeId, 进路ID
* const UINT8 flag 标志
* 返回值  ： 无
* cgh-合并CID-2539-10
*/
void SetRouteOverlapNeedCIlockFlag(const UINT16 routeId, const UINT8 flag);

/*
* 功能描述： 获取保护区段需要由联锁锁闭标志
* 参数说明： const UINT16 routeId, 进路ID
*            const UINT8 flag 标志
* 返回值  ： 无
* cgh-合并CID-2539-10
*/
UINT8 GetRouteOverlapNeedCIlockFlag(const UINT16 routeId);

/*
* 功能描述： 设置保护区段在锁闭过程中标志
* 参数说明： const UINT16 routeId, 进路ID
*            const UINT8 flag 标志
* 返回值  ： 无
* cgh-合并CID-2539-10
*/
void SetRouteOverlapLockProcFlag(const UINT16 routeId, const UINT8 flag);

/*
* 功能描述： 获取保护区段在锁闭过程中标志
* 参数说明： const UINT16 routeId, 进路ID
*
* 返回值  ： >0 保护区段在锁闭过程中标志
*            0 获取失败
* cgh-合并CID-2539-10：
*/
UINT8 GetRouteOverlapLockProcFlag(const UINT16 routeId);
/*
* 功能描述： 设置进路是否具有组合进路命令标志
* 参数说明： const UINT16 routeId, 进路ID
*            const UINT8 flag 标志
* 返回值  ： 无
* cgh-合并CID-2539-10：
*/
void SetRouteGroupRouteCmdFlag(const UINT16 routeId, const UINT8 flag);

/*
* 功能描述： 获取进路是否具有组合进路命令标志
* 参数说明： const UINT16 routeId, 进路ID
*
* 返回值  ： >0 组合进路命令标志
*            0 获取失败
* cgh-合并CID-2539-10：
*/
UINT8 GetRouteGroupRouteCmdFlag(const UINT16 routeId);
/*
* 功能描述： 设置进路的自动触发标志
* 参数说明： UINT16 routeId 需设的自动触发进路
*            UINT8 setFlag  需设置的自动触发标志
* 返回值  ：无
* cgh-合并CID-3037-4：
*/
void SetRouteAutoTriggerFlag(UINT16 routeId, UINT8 setFlag);
/*
* 功能描述： 获取指定进路的自动触标志
* 参数说明： const UINT16 routeId, 进路ID
*
* 返回值  ： >0 组合进路命令标志
*            0 获取失败
* cgh-合并CID-3037-4：
*/
UINT8 GetRouteAutoTriggerFlag(const UINT16 routeId);

/**
* @brief 获取进路当前正常锁闭逻辑区段
* @param[in] const UINT16 wRouteId 进路ID
* @param[out] UINT16 szLgcId[MAX_ROUTE_IN_LT_NUM] 逻辑区段ID
* @return 正常锁闭逻辑区段数量
*/
UINT16 GetRouteLockLgc(const UINT16 wRouteId, UINT16 szLgcId[MAX_ROUTE_IN_LT_NUM]);

/*
* 功能描述： 获取指定ID进路半截锁闭可动道岔标志
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*           >0: 半截锁闭可动道岔标志
*/
UINT8 GetHalfRouteSwitchMoveValid(const UINT16 routeId);

/*
* 功能描述： 设置指定ID进路半截锁闭可动道岔标志
* 参数说明： const UINT16 routeId, 进路ID
*            const UINT8 switchMoveValid, 可动道岔标志
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
void SetHalfRouteSwitchMoveValid(const UINT16 routeId, const UINT8 switchMoveValid);

/*
* 功能描述： 获取指定ID进路半截锁闭资源申请列车ID
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*           >0: 半截锁闭资源申请列车ID
*/
UINT16 GetHalfRouteResReqTrainId(const UINT16 routeId);

/*
* 功能描述： 设置指定ID进路半截锁闭资源申请列车ID
* 参数说明： const UINT16 routeId, 进路ID
*            const UINT8 trainId, 列车ID
* 返回值  ： CI_ERROR
*            CI_SUCCESS
*/
void SetHalfRouteResReqTrainId(const UINT16 routeId, const UINT16 trainId);


/*
* 功能描述： 获取指定ID进路半截锁闭逻辑区段数量
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*           >0: 进路半截锁闭逻辑区段数量
*/
UINT8 GetHalfRouteLockLgcSecSum(const UINT16 routeId);

/*
* 功能描述： 获取指定ID进路半截锁闭逻辑区段ID数组
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： NULL: 获取数据失败
*           !NULL: 锁闭逻辑区段ID数组
*/
UINT16 * GetHalfRouteLockLgcSecIdBuf(const UINT16 routeId);

/*
* 功能描述： 设置指定ID进路半截锁闭逻辑区段数据
* 参数说明： const UINT16 routeId, 进路ID
*            const UINT8 lgcSecNum, 逻辑区段数量
*			 const UINT16 *pLgcSecIdBuf 逻辑区段ID数组
* 返回值  ： 无
*
*/
void SetHalfRouteLockLgcSec(const UINT16 routeId, const UINT8 lgcSecNum, const UINT16 *pLgcSecIdBuf);

/*
* 功能描述： 获取指定ID进路列车脚下逻辑区段数量
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*           >0: 进路列车脚下逻辑区段数量
*/
UINT8 GetHalfRouteTrainLocLgcSecNum(const UINT16 routeId);

/*
* 功能描述： 获取指定ID进路半截锁闭列车脚下逻辑区段ID数组
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： NULL: 获取数据失败
*           !NULL: 锁闭列车脚下逻辑区段ID数组
*/
UINT16 * GetHalfRouteTrainLocLgcSecIdBuf(const UINT16 routeId);

/*
* 功能描述： 设置指定ID进路半截锁闭列车脚下逻辑区段信息
* 参数说明： const UINT16 routeId, 进路ID
*            const UINT8 lgcSecNum, 逻辑区段数量
*			 const UINT16 *pLgcSecIdBuf 逻辑区段ID数组
* 返回值  ： 无
*
*/
void SetHalfRouteTrainLocLgcSec(const UINT16 routeId, const UINT8 lgcSecNum, const UINT16 *pLgcSecIdBuf);


/*
* 功能描述： 设置指定ID进路半截锁闭列车脚下逻辑区段信息
* 参数说明： const UINT16 routeId, 进路ID
*            OUT UINT16 szRouteHalfPhySecData[ROUTE_PHYSICALSECTION_SUM_MAX] 输出物理区段ID数组
*
* 返回值  ： 0失败 >0物理区段数量
*
*/
UINT8 GetRouteHalfPhysicalSecData(const UINT16 routeId, OUT UINT16 szRouteHalfPhySecData[ROUTE_PHYSICALSECTION_SUM_MAX]);

/*
* 功能描述： 设置指定ID进路半截锁闭列车脚下逻辑区段信息
* 参数说明： const UINT16 routeId, 进路ID
*            OUT UINT16 szRouteHalfPhySecData[ROUTE_PHYSICALSECTION_SUM_MAX] 输出物理区段ID数组
*
* 返回值  ： 0失败 >0物理区段数量
*
*/
UINT8 GetRouteTrainLocPhySecData(const UINT16 routeId, OUT UINT16 szRouteTrainLocPhySecData[ROUTE_PHYSICALSECTION_SUM_MAX]);

/*
* 功能描述： 设置指定ID进路半截锁闭防护道岔信息
* 参数说明： const UINT16 routeId, 进路ID
*            OUT RouteProtectSwitchStruct szRouteProtectSwitchStruct[ROUTE_PROTECTSWI_SUM_MAX] 输出物理区段ID数组
*
* 返回值  ： 0失败 >0物理区段数量
*
*/
UINT8 GetRouteHalfProSwData(const UINT16 routeId, OUT RouteProtectSwitchStruct szRouteProSwitchStruct[ROUTE_PROTECTSWI_SUM_MAX]);

/*
* 功能描述： 获取指定ID进路列车脚下资源是否包含该逻辑区段
* 参数说明： const UINT16 routeId, 进路ID
*			 const UINT16 lgcSecId
* 返回值  ： CI_SUCCESS: 不在列车脚下资源中
*            CI_ERROR: 在列车脚下资源中
*/
UINT8  CheckLgcSecNotInTrainLoc(const UINT16 routeId, const UINT16 lgcSecId);

/*
* 功能描述： 获取指定ID进路所属动态进路ID
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*           >0: 所属动态进路ID
*/
UINT16 GetRouteBelongDrId(const UINT16 routeId);

/*
* 功能描述： 设置指定ID进路所属动态进路ID
* 参数说明： const UINT16 routeId, 进路ID
*            const UINT16 belongDrId, 所属动态进路ID
* 返回值  ： 无
*
*/
void SetRouteBelongDrId(const UINT16 routeId, const UINT16 belongDrId);
/*
* 功能描述： 获取指定ID进路第一个锁闭的逻辑区段延时设置区段故障起始周期号
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*           >0: 锁闭起始周期号
*/
UINT32 GetRouFirstElockStaCycNum(const UINT16 routeId);
/*
* 功能描述：设置指定ID进路第一个锁闭的逻辑区段延时设置区段故障起始周期号
* 参数说明： const UINT16 routeId, 进路ID
*            const UINT32 startCycNum, 起始周期号
* 返回值  ： 0: 设置数据失败
*           >0: 设置数据成功
*/
UINT8 SetRouFirstElockStaCycNum(const UINT16 routeId, const UINT32 startCycNum);


/*
* 功能描述： 获取指定ID进路列车脚下资源包含该逻辑区段
* 参数说明： const UINT16 routeId, 进路ID
*			 const UINT16 lgcSecId
* 返回值  ： CI_SUCCESS: 不在列车脚下资源中
*            CI_ERROR: 在列车脚下资源中
*/
UINT8  CheckLgcSecHaveTrainLoc(const UINT16 routeId, const UINT16 lgcSecId);

/*
* 功能描述： 获取指定ID进路列车脚下资源包含该逻辑区段
* 参数说明： const UINT16 routeId, 进路ID
*			 const UINT16 lgcSecId
* 返回值  ： CI_SUCCESS: 在半截预锁闭中
*            CI_ERROR: 不在半截预锁闭中
*/
UINT8  CheckLgcSecInHalfRoute(const UINT16 routeId, const UINT16 lgcSecId);

/*
* 功能描述： 设置列车脚下所属进路为halfunlock
* 参数说明： const UINT16 routeId, 进路ID
*
* 返回值  ： 无
*
*/
void  SetTrainLocRouteHalfUnlock(const UINT16 routeId);

/*
* 功能描述：删除进路内列车资源
* 参数说明： const UINT16 routeId, 进路ID
*            const UINT16 trainId, 列车ID
* 返回值  ：无
*/
void RemoveRouteInCiRes(const UINT16 routeId, const UINT16 trainId);

/*
* 功能描述： 设置指定进路资源取消申请的延时标志
* 参数说明： const UINT16 routeId, 进路ID
*            const UINT32 delayflag, 资源取消申请延时标志
* 返回值  ： 无
*
*/
void SetRouteResCancelDelayFlag(const UINT16 routeId, const UINT8 delayflag);

/*
* 功能描述： 获取指定进路资源取消申请的延时标志
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*           >0: 进路的资源取消申请延时标志
*/
UINT8 GetRouteResCancelDelayFlag(const UINT16 routeId);


/*
* 功能描述： 获取进路接近区段是否有可疑列车
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： CI_ERROR 接近区段有可疑列车
*			 CI_SUCCESS 接近区段无可疑列车
* edit cgh 20241128
*/
UINT8 GetRouteSuspiciousInNearSec(const UINT16 routeId);
/*
* 功能描述： 获取进路接近区段符合道岔位置
* 参数说明： const UINT16 nearSecIndex,接近区段下标
* 返回值  ： CI_ERROR 不符合道岔位置
*			 CI_SUCCESS 符合道岔位置
*/
UINT8 GetRouteNearSecFitSwIndex(const UINT16 routeId, const UINT8 nearSecIndex);

/*
* 功能描述：设置指定进路声光报警延时开放起始周期号
* 参数说明：const UINT16 routeId, 进路ID
*           const UINT32 dwCyc 周期号
* 返回值  ：无
*/
void SetRouteDelayOpenStartCyc(const UINT16 routeId, const UINT32 dwCyc);

/*
* 功能描述： 获取指定进路声光报警延时开放起始周期号
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*           >0: 延时开放起始周期号
*/
UINT32 GetRouteDelayOpenStartCyc(const UINT16 routeId);

/*
* 功能描述：设置进路需要驱动声光报警标志
* 参数说明：UINT16 routeId 需设置的进路ID
*           UINT8 setFlag  需设置标志
* 返回值  ：无
*/
void SetRouteDriveSGBJFlag(UINT16 routeId, UINT8 setFlag);

/*
* 功能描述： 获取指定进路需要驱动声光报警标志
* 参数说明： const UINT16 routeId 进路ID
* 返回值  ： >0 声光报警标志
*             0 获取失败
*/
UINT8 GetRouteDriveSGBJFlag(const UINT16 routeId);

/*
* 功能描述：设置指定进路关联组合进路声光报警延时标志
* 参数说明：UINT16 routeId 需设置的进路ID
*           UINT8 setFlag  需设置标志
* 返回值  ：无
*/
void SetRelZuHeRouteSGBJDelayFlag(UINT16 routeId, UINT8 setFlag);

/*
* 功能描述： 获取指定进路关联组合进路声光报警延时标志
* 参数说明： const UINT16 routeId 进路ID
* 返回值  ： >0 声光报警标志
*             0 获取失败
*/
UINT8 GetRelZuHeRouteSGBJDelayFlag(const UINT16 routeId);


/* 功能描述： 检查进路是否处于已办理状态（车库门关门防护使用）
*  参数说明： const UINT16 routeId    进路ID
*  返回值：  CI_ERROR，入参失败
*					ROUTE_TRANSACT_YES      进路已办理
*					ROUTE_TRANSACT_NO        进路未办理
*/
UINT8 CheckRouteTransactState(const UINT16 routeId);

/* 功能描述： 获取进路内的的CT占压逻辑区段（存在UT占压返回失败）
*  参数说明： const UINT16 garageDoorId   车库门
*            logSecId[MAX_ROUTE_IN_LT_NUM]   逻辑区段ID
*            UINT8 logSecNum   逻辑区段数量
*  返回值：  CI_ERROR，查询失败
*           CI_SUCCESS 查询成功
*/
UINT8 GetCTLogSecOfRoute(const UINT16 routeId, OUT UINT16 logSecId[MAX_ROUTE_IN_LT_NUM], OUT UINT8 logSecNum);

/*
* 功能描述： 获取指定ID进路之前监督级别
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 0: 获取数据失败
*           >0: 进路之前监督级别
*/
UINT8 GetRoutePreLevel(const UINT16 routeId);

/*
* 功能描述：设置进路驱动过声光报警标志
* 参数说明：UINT16 routeId 需设置的进路ID
*           UINT8 setFlag  需设置标志
* 返 回 值：无
* Created By LQ 2024.08.19
*/
void SetRouteHasDrivedSGBJFlag(UINT16 routeId, UINT8 setFlag);

/*
* 功能描述： 获取指定进路需要驱动声光报警标志
* 参数说明： const UINT16 routeId 进路ID
* 返 回 值： 0x55 未驱动过
*            0xAA 驱动过
* Created By LQ 2024.08.19
*/
UINT8 GetRouteHasDrivedSGBJFlag(const UINT16 routeId);

/*
* 功能描述：设置进路接近区段状态查询结果
* 参数说明：UINT16 routeId 需设置的进路ID
*           UINT8 setFlag  需设置标志
* 返 回 值：无
* by cgh 20241128
*/
void SetRouteNearSecSearchState(UINT16 routeId, UINT8 setFlag);

/*
* 功能描述： 获取指定进路接近区段状态查询结果
* 参数说明： const UINT16 routeId 进路ID
* 返 回 值： ROUTE_NEAR_SEC_HAVE_UT 接近区段有故障车
*	         ROUTE_NEAR_SEC_NOT_HAVE_UT 接近区段无故障车
* by cgh 20241128
*/
UINT8 GetRouteNearSecSearchState(const UINT16 routeId);

/*
* 功能描述： 获取进路其他控区接近区段是否有可疑列车
* 参数说明： const UINT16 routeId, 进路ID
*            UINT8* chOtherCiId 其它联锁ID
* 返回值  ： CI_ERROR 接近区段有可疑列车
*			 CI_SUCCESS 接近区段无可疑列车
* edit cgh 20241128
*/
UINT8 GetRouteOtherCiNearSecState(const UINT16 routeId);

/*
* 功能描述：设置指定进路办理相邻控区道岔检查标志
* 参数说明：UINT16 routeId 需设置的进路ID
*           UINT8 setFlag  需设置标志
* 返 回 值：无
* by cgh 20241202
*/
void SetRouteApplySwitchCheckFlag(UINT16 routeId, UINT8 setFlag);

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

/*
* 功能描述： 设置指定进路的调车同意按钮故障状态
* 参数说明： const UINT16 routeId, 进路ID
*            const UINT8 chDcAgreeButtonErrState, 调车同意按钮故障状态
* 返回值  ：无
* by cgh 20250523
*/
void SetRouteDcAgreeButtonErrState(const UINT16 routeId, const UINT8 chDcAgreeButtonErrState);

/*
* 功能描述： 获取指定进路的调车同意按钮故障状态
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 调车同意按钮故障状态
* by cgh 20250523
*/
UINT8 GetRouteDcAgreeButtonErrState(const UINT16 routeId);

/*
* 功能描述： 设置指定进路的调车同意按钮按下起始周期
* 参数说明： const UINT16 routeId, 进路ID
*            const UINT32 dwDcAgreeBtnPressCycNum, 调车同意按钮按下起始周期
* 返回值  ：无
* by cgh 20250523
*/
void SetRouteDcAgreeBtnPressCycNum(const UINT16 routeId, const UINT32 dwDcAgreeBtnPressCycNum);

/*
* 功能描述： 获取指定进路的调车同意按钮按下起始周期
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： 调车同意按钮按下起始周期
* by cgh 20250523
*/
UINT32 GetRouteDcAgreeBtnPressCycNum(const UINT16 routeId);

/*
* 功能描述：设置指定进路转引导进路标志
* 参数说明：UINT16 routeId 需设置的进路ID
*           UINT8 setFlag  需设置标志
* 返 回 值：无
* Created By LQ 2025.08.04
*/
void SetRouteToLeadFlag(UINT16 routeId, UINT8 setFlag);

/*
* 功能描述：获取指定进路转引导进路标志
* 参数说明：const UINT16 routeId 进路ID
* 返 回 值：0x55 无效
*           0xAA 有效
* Created By LQ 2025.08.04
*/
UINT8 GetRouteToLeadFlag(const UINT16 routeId);

/*
* 功能描述：设置指定进路办理相邻控区检查错误记录
* 参数说明：UINT16 routeId 需设置的进路ID
*           UINT16 devID  设备ID UINT8 devType 设备类型，UINT8 devState 设备状态,UINT8 errorType 错误类型
* 返 回 值：无
* by fan 20250922
*/
void SetRouteApplySwitchCheckErrorData(UINT16 routeId, UINT16 devID, UINT8 devType, UINT8 devState, UINT8 errorType);

/*
* 功能描述：获取指定进路办理相邻控区检查错误记录
* 参数说明：UINT16 routeId 进路ID
* 返 回 值：UINT16 设备ID
* 输出参数 UINT8 *devType设备类型, UINT8* devState设备状态，UINT8* errorType 错误类型
* by fan 20250922
*/
UINT16 GetRouteApplySwitchCheckErrorData(UINT16 routeId, UINT8 *devType, UINT8* devState, UINT8* errorType);


#ifdef __cplusplus
}
#endif

#endif
