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

#ifndef _REVERSEROUTE_CONFIG_DATA_MANAGE_H_
#define _REVERSEROUTE_CONFIG_DATA_MANAGE_H_


#include "ReverseRouteDefine.h"
#include "CommonTypes.h"
#include "../System/CiSystemDefine.h"
#include "../System/SystemParameterManage.h"
#include "../Route/RouteDefine.h"

#ifdef __cplusplus
extern "C" {
#endif

/*反向进路配置数据结构体*/
typedef struct S_ReverseRouteConfigDataStruct
{
    UINT16 ReverseRouteId;          /*反向进路ID (配置字段)*/
	UINT8 BelongCiId;				/*所属联锁ID*/
    UINT8 AutoSigRouteIncludeSum;   /*反向进路包含自动信号进路数目 (配置字段)*/
    UINT16 AutoSigRouteIdBuf[REVERSE_ROUTE_INCLUDE_AUTOSIGROUTE_SUM_MAX];   /*反向进路包含自动信号进路ID数组 (配置字段)*/
} ReverseRouteConfigDataStruct;

/*******************************全局变量声明*******************************/
extern ReverseRouteConfigDataStruct ReverseRouteConfigDataStru[ROUTE_SUM_MAX]; 
extern UINT16 LocalCiReverseRouteIdBuf[REVERSE_ROUTE_SUM_MAX];  
extern INT16 ReverseRouteCurSum;

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

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

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

/*
* 功能描述： 获取反向进路配置数据
* 参数说明： void    
* 返回值  ： 反向进路配置数据
*/
ReverseRouteConfigDataStruct* GetReverseRouteConfigData(void);


/*
* 功能描述： 获取指定ID反向进路包含进路数目
* 参数说明： const UINT16 reverseRouteId, 反向进路ID    
* 返回值  ： 0: 获取数据失败
*			>0: 进路数目
*/
UINT8 GetReverseRouteIncludeRouteSum(const UINT16 reverseRouteId);

/*
* 功能描述： 获取指定ID反向进路所属联锁ID
* 参数说明： const UINT16 reverseRouteId, 反向进路ID    
* 返回值  ： 0: 获取数据失败
*			>0: 所属联锁ID
*/
UINT8 GetReverseRouteBelongCiId(const UINT16 reverseRouteId);

/*
* 功能描述： 获取指定ID反向进路包含自动信号进路ID数组
* 参数说明： const UINT8 reverseRouteId, 反向进路ID    
* 返回值  ： 0: 获取数据失败
*			>0: 进路ID数组
*/
UINT16* GetReverseRouteIncludeRouteBuf(const UINT16 reverseRouteId);


/*
* 功能描述：	整理读入的反向进路配置数据
* 参数说明：	无
* 返回值  ：	1,整理成功
*				0,整理失败
*/
UINT8 ReverseRouteConfigDataManage(void);

#ifdef __cplusplus
}
#endif
#endif