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

#ifndef _LOGIC_SECTION_CONFIG_DATA_MANAGE_H_
#define _LOGIC_SECTION_CONFIG_DATA_MANAGE_H_


#include "SectionDefine.h"
#include "CommonTypes.h"
#include "../System/CiSystemDefine.h"
#include "../System/SystemParameterManage.h"


#ifdef __cplusplus
extern "C" {
#endif
	

/*逻辑区段包含道岔结构体*/
typedef struct S_Logsec_Switch
{
	UINT16 SwitchId;   /*道岔ID*/	
	UINT8 SwitchPosition;  /*道岔位置*/	
} LogsecSwitchStruct;

/*逻辑区段关联联络线道岔设备结构体*/
typedef struct S_Logsec_ContactSwitch
{
	UINT16 ContactSwitchId;   /*道岔ID*/
	UINT8 ContactSwitchCheckState;  /*道岔检查状态*/
} LogsecContacSwitchStruct;

typedef struct S_LogicSectionConfigDataStruct
{
    UINT16 LogicSectionId;      /*逻辑区段ID (初始化字段)*/
	UINT8 belongCiId;			/* 逻辑区段所属联锁 */
	UINT8 belongVirCI;			/* 逻辑区段所属虚拟联锁 */
	UINT16 wRelativePhySecId;   /* add by qw.liu 2022-02-22 增加所属物理区段ID*/
	UINT8 chRelativeAxleSum;	/* add 20220919 TIOC5.0 增加所属计轴区段数量*/
	UINT16 wRelativeAxleSecId[LOGSEC_INCLUDE_AXIS_SUM_MAX];	/* add by qw.liu 2022-02-22 增加所属计轴区段ID*//* modify 20220919 TIOC5.0 修改类型为数组*/

	UINT8	chLinkNum;				/*包含link数量*/
	UINT16	szLinkIdBuff[LOGSEC_INCLUDE_LINK_SUM_MAX];		/*包含link编号*/
	UINT8 chSecInvSecAndConSwiSum;													/*区段包含侵限区段及条件道岔总数*/
	UINT16 wszSecInvSecAndConSwiId[LOGSEC_INV_N_CONDSWIT_SUM_MAX];					/*侵限区段及条件道岔数组*/
	UINT8 chSecInvSecLockDir[LOGSEC_INV_N_CONDSWIT_SUM_MAX];								/*侵限区段及条件道岔对应条件方向*/
	UINT16 wOrgnLink;				/* 逻辑区段起点所处link */
	UINT32 dwOrgnOffset;			/* 逻辑区段起点偏移量 */
	UINT16 wTmnlLink;				/* 逻辑区段终点所处link */
	UINT32 dwTmnlOffset;			/* 逻辑区段终点偏移量 */
	UINT8 chLogsecSwitchSum;            /*逻辑区段包含的道岔数量*/
	LogsecSwitchStruct LogsecSwitchIdStru[LOGSEC_INCLUDE_SWITCH_SUM_MAX];       /*逻辑区段包含的道岔ID*/
	UINT8 chLogLtrlDfncSwitchSum;            /*逻辑区段侧防包含的道岔数量*/
	LogsecSwitchStruct LogLtrlDfncSwitchStru[LOGSEC_LTRL_DFNC_SUM_MAX];       /*逻辑区段侧防条件包含的道岔ID*/
	UINT8 szLgcDfncLockDir[LOGSEC_LTRL_DFNC_SUM_MAX];					/*防护UT占压的锁闭方向*/
	UINT8 chBeginLogSecSum;	/* add by cgh 20220408  起点相邻逻辑区段数量*/
	UINT16 wBeginLogSecId[LOGSEC_NEXT_LOGSEC_SUM_MAX];	/* add by cgh 20220408  起点相邻逻辑区段ID数组*/
	UINT8 chEndLogSecSum;	/* add by cgh 20220408  终点相邻逻辑区段数量*/
	UINT16 wEndLogSecId[LOGSEC_NEXT_LOGSEC_SUM_MAX];	/* add by cgh 20220408  终点相邻逻辑区段ID数组*/
	UINT8 chRelateBeginSigSum; /* add by cgh 20220504  逻辑区段关联始端信号机数量*/
	UINT16 wRelateBeginSigId[LOGSEC_RELATE_SIG_SUM_MAX];/* add by cgh 20220504  逻辑区段关联始端信号机ID数组*/
	UINT8 chRelateEndSigSum; /* add by cgh 20220504  逻辑区段关联终端信号机数量*/
	UINT16 wRelateEndSigId[LOGSEC_RELATE_SIG_SUM_MAX];/* add by cgh 20220504  逻辑区段关联终端信号机ID数组*/
	UINT8 chRelateRouteSum; /* add by cgh 20220504  逻辑区段关联进路数量*/
	UINT16 wRelateRouteId[LOGSEC_RELATE_ROUTE_SUM_MAX];/* add by cgh 20220504  逻辑区段关联进路ID数组*/
	UINT8 chRelateProSwSum; /* add by cgh 20220504  逻辑区段关联防护道岔数量*/
	LogsecSwitchStruct wRelateProSwId[LOGSEC_RELATE_PRO_SW_SUM_MAX];/* add by cgh 20220504  逻辑区段关联防护道岔ID数组*/
	UINT8 chRelateContactSwSum; /* add by cgh 20220504  逻辑区段关联联络线道岔数量*/
	UINT16 wRelateContactSwId[LOGSEC_RELATE_CON_SW_SUM_MAX];/* add by cgh 20220504  逻辑区段关联联络线道岔ID数组*/
	UINT8 chSpksNum;				   /*add by cgh 20230919 该逻辑区段对应的spks数量 计算 */
	UINT16 wSpksIdBuff[LOGIC_SECTION_SPKS_MAX_NUM];/*add by cgh 20230919  该逻辑区段对应spksId列表 */
	
	UINT8 chContactLineCheckSum;		/*逻辑区段关联联络线设备检查条件数量（配置字段）*/
	LogsecContacSwitchStruct LogContactSwitchCheckStru[PHY_SEC_CONTACT_CHECK_MAX_NUM];		/*逻辑区段关联联络线道岔设备结构体(配置字段)*/
	UINT16 chContactAxisCheckID[PHY_SEC_CONTACT_CHECK_MAX_NUM];				/*逻辑区段关联联络线道岔所在计轴区段检查ID（配置字段）*/
	UINT8 cCbtcProperty;  /*逻辑区段CBTC区域属性，0x55：CBTC区域，0xaa：非CBTC区域*/

	UINT8 logSecRltPsdSum; /*逻辑区段关联屏蔽门数量*/
	UINT16 logSecRltPsdBuf[LOGSEC_RELATE_PSD_MAX]; /*逻辑区段关联屏蔽门ID数组*/
	UINT8 logSecRltEsbSum;   /*关联紧急按钮数量*/
	UINT16 logSecRltEsbBuf[LOGSEC_RELATE_ESB_MAX]; /*逻辑区段关联紧急按钮ID数组*/

	UINT8 chRelateOverLapSum; /* add by mpt 20260330  逻辑区段关联保护区段数量*/
	UINT16 wRelateOverLapIdBuf[LOGSEC_RELATE_OVERLAP_SUM_MAX];/* add by mpt 20260330  逻辑区段关联保护区段ID数组*/

} LogicSectionConfigDataStruct;

/*******************************全局变量声明*******************************/
extern LogicSectionConfigDataStruct LogicSectionConfigDataStru[LOGIC_SECTION_SUM_MAX];   /*定义逻辑区段配置数据结构体,cgh-合并CID-2539-1：此处声明不进行初始化，统一放到InitAllStaticDataStr函数中进行初始化，为解决生成内核过大得问题*/
extern UINT16 LocalCiLogicSectionIdBuf[LOGIC_SECTION_SUM_MAX];              /*定义本地联锁逻辑区段ID映射数组*/
extern INT16 LogicSectionCurSum; /*逻辑区段当前总数*/
extern UINT16 totalLogicSectionNum;/*本联锁和相邻联锁发送给本联锁逻辑区段总数*/


/*
* 功能描述： 获取逻辑区段当前总数
* 参数说明： void    
* 返回值  ： 0: 获取数据失败
*			>0: 逻辑区段当前总数
*/
UINT16 GetLogicSecCurSum(void);

/*
* 功能描述： 获取指定ID逻辑区段索引号
* 参数说明： const UINT16 logSectionId, 逻辑区段ID
* 返回值  ： LOGIC_SECTION_SUM_MAX: 获取数据失败
*			<LOGIC_SECTION_SUM_MAX: 查找成功
*/
UINT16 GetlogSectionBufIndex(const UINT16 logSectionId);

/*
* 功能描述： 获取指定数组下标对应的逻辑区段ID
* 参数说明： const UINT16 bufIndex, 数组下标    
* 返回值  ： 0: 获取数据失败
*			>0: 逻辑区段ID      
*/
UINT16 GetLogicSecId(const UINT16 bufIndex);

/*
* 功能描述：	整理读入的逻辑区段配置数据
* 参数说明：	无
* 返回值  ：	CI_SUCCESS,整理成功
*				CI_ERROR,整理失败
*/
UINT8 LogicSectionConfigDataManage(void);



/*
* 功能描述： 获取指定ID逻辑区段所属联锁ID
* 参数说明： const UINT16 logicSecId, 逻辑区段ID    
* 返回值  ： 0: 获取数据失败
*			>0: 所属联锁ID      
*/
UINT8 GetLogSecBelongCiId(const UINT16 logicSecId);

/*
* 功能描述：	整理读入的相邻联锁逻辑区段配置数据
* 参数说明：	logSecSum 逻辑区段数量
*				logSecIdBuff 相邻联锁发送给本联锁的逻辑区段ID配置数据
* 返回值  ：	1,整理成功
*				0,整理失败
*/
UINT8 AddExtendLogSecIdDataManage(UINT16 logSecSum,const UINT16 *logSecIdBuff);

/*
* 功能描述： 获取相邻联锁发送给本联锁以及本联锁逻辑区段当前总数
* 参数说明： void    
* 返回值  ： 0: 获取数据失败
*			>0: 逻辑区段当前总数
*/
UINT16 GetTotalLogSecCurNum(void);
/*
* 功能描述： 获取指定ID逻辑区段所属虚拟联锁ID
* 参数说明： const UINT16 logicSecId, 逻辑区段ID    
* 返回值  ： 0: 获取数据失败
*			>0: 所属虚拟联锁ID      
*/
UINT8 GetLogSecBelongVirCiId(const UINT16 logicSecId);

/*
* 功能描述： 获取指定ID逻辑区段关联计轴区段ID
* 参数说明： const UINT16 wLgcId, 物理区段ID
* 返回值  ： 0: 获取数据失败
*			>0: 计轴区段Id
* 创建	  ： qw.liu 2022-03-01
*/
UINT8 GetLgcSecRelativeAxleSecSum(const UINT16 wLgcId);


/*
* 功能描述： 获取指定ID逻辑区段关联计轴区段数组
* 参数说明： const UINT16 wLgcId,逻辑区段ID
* 返回值  ： NULL: 获取数据失败
*			 其他: linkID数组
* 创建	  ： qw.liu 2022-03-01
*/
UINT16* GetLgcSecRltvAxleSecIdBuf(const UINT16 wLgcId);
/*
* 功能描述： 获取指定ID逻辑区段关联物理区段ID
* 参数说明： const UINT16 wLgcId, 物理区段ID
* 返回值  ： 0: 获取数据失败
*			>0: 物理区段Id
* 创建	  ： qw.liu 2022-03-01
*/
UINT16 GetLgcSecRelativePhySecId(const UINT16 wLgcId);

/*
* 功能描述： 获取指定ID逻辑区段侵限区段数组
* 参数说明： const UINT16 phySectionId, 物理区段ID
* 返回值  ： NULL: 获取数据失败
*			!NULL: 侵限物理区段结构指针
* 创建	  :  qw.liu 2022-03-01
*/
UINT16* GetSecIntrudeLgcSectionData(const UINT16 wLgcId);

/*
* 功能描述： 获取指定ID逻辑区段侵限区段侵限方向数组
* 参数说明： const UINT16 phySectionId, 物理区段ID
* 返回值  ： NULL: 获取数据失败
*			!NULL: 侵限物理区段结构指针
* 创建	  :
*/
UINT8* GetSecIntrudeLgcSecDirData(const UINT16 wLgcId);


/*
* 功能描述： 获取指定ID逻辑区段侵限物理区段数目
* 参数说明： const UINT16 phySectionId, 物理区段ID
* 返回值  ： 0: 获取数据失败
*			>0: 侵限物理区段数目
* 创建	  ： qw.liu 2022-03-01
*/
UINT8 GetSecIntrudeLgcSectionSum(const UINT16 wLgcId);

/*
* 功能描述： 获取指定ID逻辑区段的link数量
* 参数说明： const UINT16 wLgcId,逻辑区段ID
* 返回值  ： 0: 获取数据失败
*			>0: LINK数量
* 创建	  ： qw.liu 2022-03-01
*/
UINT8 GetSecIntrudeLinkSum(const UINT16 wLgcId);

/*
* 功能描述： 获取指定ID逻辑区段的linkID数组
* 参数说明： const UINT16 wLgcId,逻辑区段ID
* 返回值  ： NULL: 获取数据失败
*			 其他: linkID数组
* 创建	  ： qw.liu 2022-03-01
*/
UINT16* GetSecIntrudeLinkIdBuf(const UINT16 wLgcId);

/*
* 功能描述： 获取指定ID逻辑区段起点link编号
* 参数说明： const UINT16 wLgcId, 逻辑区段ID
* 返回值  ： 0: 获取数据失败
*			>0: linkId
* 创建	  ： 2022-03-18
*/
UINT16 GetLgcSecOrgnLink(const UINT16 wLgcId);

/*
* 功能描述： 获取指定ID逻辑区段终点link编号
* 参数说明： const UINT16 wLgcId, 逻辑区段ID
* 返回值  ： 0: 获取数据失败
*			>0: linkId
* 创建	  ： 2022-03-18
*/
UINT16 GetLgcSecTmnlLink(const UINT16 wLgcId);

/*
* 功能描述： 获取指定ID逻辑区段起点偏移量
* 参数说明： const UINT16 wLgcId, 逻辑区段ID
* 返回值  ： UINT32_MAX: 获取数据失败
*			非UINT32_MAX: 偏移量
* 创建	  ： 2022-03-18
*/
UINT32 GetLgcSecOrgnOffset(const UINT16 wLgcId);

/*
* 功能描述： 获取指定ID逻辑区段终点偏移量
* 参数说明： const UINT16 wLgcId, 逻辑区段ID
* 返回值  ： UINT32_MAX: 获取数据失败
*			非UINT32_MAX: 偏移量
* 创建	  ： 2022-03-18
*/
UINT32 GetLgcSecTmnlOffset(const UINT16 wLgcId);

/**
* @brief 查询两个逻辑区段的位置关系
* @param UINT16 wLogA
* @param UINT16 wLogB
* @param UINT8 dir
* @return 查询失败：CI_ERROR；共同起点：CI_SUCCESS；A在B前：FLAG_SET；B在A前：FLAG_UNSET
*/
UINT8 dsuJudgeLogAandLogBPosition(UINT16 wLogA, UINT16 wLogB, UINT8 dir);

/**
* @brief 按照方向获取逻辑区段 所处计轴区段的逻辑区段序列
* @param UINT16 wLgcSec
* @return 0u:查询失败  其他：逻辑区段数量
* @note 无
*/
UINT16 GetLgcSecSeqBelongAc(const UINT16 wStartLgcSec, UINT16 wCurrentAxisSecId, const UINT8 chDir, OUT UINT16 wszOutLgcSec[AXIS_INCLUDE_LOG_SUM_MAX]);

/*
* 功能描述： 获取指定ID逻辑区段道岔数目
* 参数说明： const UINT16 axisSectionId, 计轴区段ID
* 返回值  ： 0: 获取数据失败
*			>0: 道岔数目
*/
UINT8 GetLogicSecSwitchSum(const UINT16 wLogicSecId);


/*
* 功能描述： 获取指定ID逻辑区段道岔ID数组
* 参数说明： const UINT16 axisSectionId, 计轴区段ID
* 返回值  ： 0: 获取数据失败
*			>0: 道岔ID数组指针
*/
LogsecSwitchStruct* GetLogicSecSwitchIdStru(const UINT16 wLogicSecId);

/*
* 功能描述： 获取指定ID逻辑区段侧防道岔数目
* 参数说明： const UINT16 axisSectionId, 计轴区段ID
* 返回值  ： 0: 获取数据失败
*			>0: 道岔数目
*/
UINT8 GetLgcSecLtrlDfncSwSum(const UINT16 wLogicSecId);


/*
* 功能描述： 获取指定ID逻辑区段侧防道岔结构体
* 参数说明： const UINT16 axisSectionId, 计轴区段ID
* 返回值  ： 0: 获取数据失败
*			>0: 道岔ID数组指针
*/
LogsecSwitchStruct* GetLgcSecLtrlDfncSwStru(const UINT16 wLogicSecId);

/*
* 功能描述： 获取指定ID逻辑区段侧防道岔锁闭方向数组
* 参数说明： const UINT16 axisSectionId, 计轴区段ID
* 返回值  ： 0: 获取数据失败
*			>0: 侧防道岔锁闭方向数组
*/
UINT8* GetLgcSecLtrlDfncLockDir(const UINT16 wLogicSecId);

/*
* 功能描述： 获取指定ID逻辑区段起点相邻逻辑区段数目
* 参数说明：const UINT16 wLgcId, 逻辑区段ID
* 返回值  ： 0: 获取数据失败
*			>0: 起点相邻逻辑区段数目
* 创建	  ： cgh 2023-05-06
*/
UINT8 GetLogBeginLogSecSum(const UINT16 wLgcId);
/*
* 功能描述： 获取指定ID逻辑区段起点相邻逻辑区段数组
* 参数说明： const UINT16 wLgcId, 逻辑区段ID
* 返回值  ： NULL: 获取数据失败
*			!NULL: 起点相邻逻辑区段结构指针
* 创建	  :  cgh 2023-05-06
*/
UINT16* GetLogBeginLogSecData(const UINT16 wLgcId);
/*
* 功能描述： 获取指定ID逻辑区段终点相邻逻辑区段数目
* 参数说明：const UINT16 wLgcId, 逻辑区段ID
* 返回值  ： 0: 获取数据失败
*			>0: 终点相邻逻辑区段数目
* 创建	  ： cgh 2023-05-06
*/
UINT8 GetLogEndLogSecSum(const UINT16 wLgcId);
/*
* 功能描述： 获取指定ID逻辑区段终点相邻逻辑区段数组
* 参数说明： const UINT16 wLgcId, 逻辑区段ID
* 返回值  ： NULL: 获取数据失败
*			!NULL: 终点相邻逻辑区段结构指针
* 创建	  :  cgh 2023-05-06
*/
UINT16* GetLogEndLogSecData(const UINT16 wLgcId);
/*
* 功能描述： 获取指定ID逻辑区段关联始端信号机数目
* 参数说明：const UINT16 wLgcId, 逻辑区段ID
* 返回值  ： 0: 获取数据失败
*			>0: 逻辑区段关联始端信号机数目
* 创建	  ： cgh 2023-05-06
*/
UINT8 GetLogRelateBeginSigSum(const UINT16 wLgcId);
/*
* 功能描述： 获取指定ID逻辑区段关联始端信号机数组
* 参数说明： const UINT16 wLgcId, 逻辑区段ID
* 返回值  ： NULL: 获取数据失败
*			!NULL: 逻辑区段关联始端信号机结构指针
* 创建	  :  cgh 2023-05-06
*/
UINT16* GetLogRelateBeginSigData(const UINT16 wLgcId);

/*
* 功能描述： 获取指定ID逻辑区段关联终端信号机数目
* 参数说明：const UINT16 wLgcId, 逻辑区段ID
* 返回值  ： 0: 获取数据失败
*			>0: 逻辑区段关联终端信号机数目
* 创建	  ： cgh 2023-05-06
*/
UINT8 GetLogRelateEndSigSum(const UINT16 wLgcId);
/*
* 功能描述： 获取指定ID逻辑区段关联终端信号机数组
* 参数说明： const UINT16 wLgcId, 逻辑区段ID
* 返回值  ： NULL: 获取数据失败
*			!NULL: 逻辑区段关联终端信号机结构指针
* 创建	  :  cgh 2023-05-06
*/
UINT16* GetLogRelateEndSigData(const UINT16 wLgcId);
/*
* 功能描述： 获取指定ID逻辑区段关联进路数目
* 参数说明：const UINT16 wLgcId, 逻辑区段ID
* 返回值  ： 0: 获取数据失败
*			>0: 逻辑区段关联进路数目
* 创建	  ： cgh 2023-05-06
*/
UINT8 GetLogRelateRouteSum(const UINT16 wLgcId);
/*
* 功能描述： 获取指定ID逻辑区段关联进路数组
* 参数说明： const UINT16 wLgcId, 逻辑区段ID
* 返回值  ： NULL: 获取数据失败
*			!NULL: 逻辑区段关联进路结构指针
* 创建	  :  cgh 2023-05-06
*/
UINT16* GetLogRelateRouteData(const UINT16 wLgcId);
/*
* 功能描述： 获取指定ID逻辑区段关联联络线道岔数目
* 参数说明：const UINT16 wLgcId, 逻辑区段ID
* 返回值  ： 0: 获取数据失败
*			>0: 逻辑区段关联联络线道岔数目
* 创建	  ： cgh 2023-05-06
*/
UINT8 GetLogRelateContactSwSum(const UINT16 wLgcId);
/*
* 功能描述： 获取指定ID逻辑区段关联联络线道岔数组
* 参数说明： const UINT16 wLgcId, 逻辑区段ID
* 返回值  ： NULL: 获取数据失败
*			!NULL: 逻辑区段关联联络线道岔结构指针
* 创建	  :  cgh 2023-05-06
*/
UINT16* GetLogRelateContactSwData(const UINT16 wLgcId);

/*
* 功能描述： 获取指定ID逻辑区段关联防护道岔数目
* 参数说明： const UINT16 wLogicSecId, 逻辑区段ID
* 返回值  ： 0: 获取数据失败
*			>0: 道岔数目
*  创建	  :  cgh 2023-05-06
*/
UINT8 GetLgcRelateProSwSum(const UINT16 wLogicSecId);
/*
* 功能描述： 获取指定ID逻辑区段关联防护道岔结构体
* 参数说明： const UINT16 wLogicSecId, 逻辑区段ID
* 返回值  ： 0: 获取数据失败
*			>0: 道岔ID数组指针
* 创建	  :  cgh 2023-05-06
*/
LogsecSwitchStruct* GetLgcRelateProSwStru(const UINT16 wLogicSecId);

/*
* 功能描述： 获取指定逻辑区段SPKS的开关数
* 参数说明： const UINT16 wLogicSecId, 逻辑区段ID
* 返回值  ： spks数量
* by cgh 20230919
*/
UINT8 GetLogSecSpksSum(const UINT16 wLogicSecId);

/*
* 功能描述： 获取指定逻辑区段指定下标的SPKS的ID
* 参数说明：  const UINT16 wLogicSecId, 逻辑区段ID
*			 wSpksIndex下标
* 返回值  ： spksId 返回的SPKS ID
* by cgh 20230919
*/
UINT16 GetLogSecSpksIdBySpksIdx(const UINT16 wLogicSecId, UINT16 wSpksIndex);

/*
* 功能描述： 获取指定ID逻辑区段关联联络线设备检查条件数量
* 参数说明： const UINT16 wLogicSecId, 逻辑区段ID
* 返回值  ： 0: 获取数据失败
*			>0: 道岔数目
*/
UINT8 GetLgcSecContactLineCheckSum(const UINT16 wLogicSecId);


/*
* 功能描述： 获取指定ID逻辑区段关联联络线道岔设备结构体
* 参数说明： const UINT16 wLogicSecId, 逻辑区段ID
* 返回值  ：  NULL: 获取数据失败
*					!NULL: 道岔ID数组指针
*/
LogsecContacSwitchStruct* GetLgcSecContactSwitchCheckStru(const UINT16 wLogicSecId);

/*
* 功能描述： 获取指定ID逻辑区段关联联络线道岔所在计轴区段检查ID数组
* 参数说明： const UINT16 wLgcId, 逻辑区段ID
* 返回值  ： NULL: 获取数据失败
*			!NULL: 逻辑区段关联联络线道岔所在计轴区段检查ID结构指针
*/
UINT16* GetLogContactAxisCheckData(const UINT16 wLgcId);

/*
* 功能描述： 获取指定ID逻辑区段的CBTC区域属性
* 参数说明： const UINT16 logicSecId, 逻辑区段ID
* 返回值  ： 0: 获取数据失败
*			>0: CBTC区域属性
* Created By LQ 2023.12.08
*/
UINT8 GetLogSecCbtcProperty(const UINT16 logicSecId);

/*
* 功能描述： 获取指定ID逻辑区段关联PSD数量
* 参数说明： const UINT16 logicSecId, 逻辑区段ID
* 返回值  ： UINT8_MAX: 获取数据失败
*					其他：关联PSD数量
* Created By fan 2024.4.11
*/
UINT8 GetLogSecPsdSum(const UINT16 logicSecId);

/*
* 功能描述： 获取指定逻辑区段指定下标的PSD的ID
* 参数说明：  const UINT16 wLogicSecId, 逻辑区段ID   UINT8  wPsdIndex下标
* 返回值  ：0 : 失败  >0 PsdID
* Created By fan 2024.4.11
*/
UINT16 GetLogSecPsdByIdx(const UINT16 wLogicSecId, UINT8 wPsdIndex);

/*
* 功能描述： 获取指定ID逻辑区段关联Esb数量
* 参数说明： const UINT16 logicSecId, 逻辑区段ID
* 返回值  ： UINT8_MAX: 获取数据失败
*					其他：关联Esb数量
* Created By fan 2024.4.11
*/
UINT8 GetLogSecEsbSum(const UINT16 logicSecId);

/*
* 功能描述： 获取指定逻辑区段指定下标的Esb的ID
* 参数说明：  const UINT16 wLogicSecId, 逻辑区段ID   UINT8  wEsbIndex下标
* 返回值  ：0 : 失败  >0 EsbID
* Created By fan 2024.4.11
*/
UINT16 GetLogSecEsbByIdx(const UINT16 wLogicSecId, UINT8 wEsbIndex);

/*
* 功能描述： 检查逻辑区段是否属于传输范围
* 参数说明： const UINT16 wCheckLogSecId, 检查逻辑区段ID
* 返回值  ： CI_ERROR 属于
*			 CI_SUCCESS 不属于
* by cgh 20240522
*/
UINT8 CheckLogSecBelSendRange(const UINT16 wCheckLogSecId);

#ifdef __cplusplus
}
#endif

#endif
