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

#ifndef _LONG_ROUTE_CONFIG_DATA_MANAGE_H_
#define _LONG_ROUTE_CONFIG_DATA_MANAGE_H_


#include "CommonTypes.h"
#include "RouteDefine.h"
#include "../System/CiSystemDefine.h"
#include "RouteConfigDataManage.h"



#ifdef __cplusplus
extern "C" {
#endif


/*进路配置数据结构体*/
typedef struct S_LongRouteConfigDataStruct
{
    UINT16 LongRouteId; /*长调进路ID (配置字段)*/
	UINT8 SubRouteSum; /*长调进路包含子进路数目 (配置字段)*/
	UINT16 SubRouteIdBuf[ROUTE_SUBROUTE_SUM_MAX]; /*长调进路包含子进路ID数组 (配置字段)*/
} LongRouteConfigDataStruct;

/*******************************全局变量声明*******************************/
extern LongRouteConfigDataStruct LongRouteConfigDataStru[ROUTE_LONG_SUM_MAX];   /*定义长调进路配置数据结构体,cgh-合并CID-2539-1：此处声明不进行初始化，统一放到InitAllStaticDataStr函数中进行初始化，为解决生成内核过大得问题*/
extern INT16 LongRouteCurSum; /*长调进路当前总数*/
extern UINT16 LocalCiLongRouteIdBuf[ROUTE_LONG_SUM_MAX];               /*定义本地联锁长调进路ID映射数组*/

/*
* 功能描述： 获取指定ID长调进路索引号
* 参数说明： const UINT16 routeId, 进路ID
* 返回值  ： ROUTE_SUM_MAX: 获取数据失败
*			<ROUTE_SUM_MAX: 查找成功
*/
UINT16 GetLongRouteConfigBufIndex(const UINT16 routeId);

/*
* 功能描述： 获取长调进路当前总数
* 参数说明： void    
* 返回值  ： 0: 获取数据失败
*			>0: 进路当前总数
*/
UINT16 GetLongRouteCurSum(void);

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

/*
* 功能描述： 获取整个进路数据
* 参数说明：   
* 返回值  ： LongRouteConfigDataStruct*  
*/
LongRouteConfigDataStruct *GetLongRouteConfigData(void);

/*
* 功能描述： 获取指定ID长调进路包含子进路数目
* 参数说明： const UINT16 routeId, 进路ID    
* 返回值  ： 0: 获取数据失败
*           >0: 防护区段组数目
*/
UINT8 GetLongRouteSubRouteSum(const UINT16 routeId);


/*
* 功能描述： 获取指定ID长调进路包含子进路ID数组
* 参数说明： const UINT16 routeId, 进路ID    
* 返回值  ： NULL: 获取数据失败
*			!NULL: 防护区段组ID数组指针
*/
UINT16* GetLongRouteSubRouteIdBuf(const UINT16 routeId);

/*
* 功能描述： 获取指定ID长调进路最后一个进路Id
* 参数说明： const UINT16 routeId, 进路ID    
* 返回值  ： UINT16 进路Id
*/
UINT16 GetLongRouteLastRouteId(const UINT16 routeId);
/*
* 功能描述：	整理读入的长调进路配置数据
* 参数说明：	无
* 返回值  ：	CI_SUCCESS,整理成功
*				CI_ERROR,整理失败
*/
UINT8 LongRouteConfigDataManage(void);
#ifdef __cplusplus
}
#endif

#endif
