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

#ifndef _ALLAUTORETURN_CONFIG_DATA_MANAGE_H_
#define _ALLAUTORETURN_CONFIG_DATA_MANAGE_H_


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



#ifdef __cplusplus
extern "C" {
#endif



/*全自动折返配置数据结构体*/
typedef struct S_AllAutoReturnConfigDataStruct
{
    UINT16 AllAutoReturnId;          /*全自动折返ID (配置字段)*/
	UINT8 BelongCiId;				/*所属联锁ID*/
    UINT8 RouteSum;              /*全自动折返包含进路数目 (配置字段)*/
    UINT16 RouteIdBuf[ALL_AUTO_RETURN_INCLROUTE_SUM_MAX];   /*全自动折返进路ID数组 (配置字段)*/
	UINT16 RebackRouteIdBuf[ALL_AUTO_RETURN_REBACKROUTE_SUM_MAX];   /*全自动折返包含折出进路数组(配置字段)*/
	UINT8 RebackRouteSum;      /*全自动折返包含折出进路数量(配置字段)*/
	UINT8 AllAutoReturnOpposedReturnIdSum;									/*全自动折返抵触自动折返进路数目 (配置字段)*/
	UINT16 AllAutoReturnOpposedReturnIdBuf[ROUTE_OPPOSED_ROUTE_SUM_MAX];	/*全自动折返抵触自动折返进路ID数组 (配置字段)*/
	UINT8 AllAutoReturnOpposedRouteIdSum;									/*全自动折返进路抵触自动进路数目 (配置字段)*/
	UINT16 AllAutoReturnOpposedRouteIdBuf[ROUTE_OPPOSED_ROUTE_SUM_MAX];	/*全自动折返进路抵触自动进路ID数组 (配置字段)*/
	UINT8 AllAutoReturnOpposedAllRtnIdSum;									/*全自动折返进路抵触全自动折返进路数目 (配置字段)*/
	UINT16 AllAutoReturnOpposedAllRtnIdBuf[ROUTE_OPPOSED_ROUTE_SUM_MAX];	/*全自动折返进路抵触全自动折返进路ID数组 (配置字段)*/
	UINT16 AllAutoReturnInOpposedOutBuf[ROUTE_OPPOSED_ROUTE_SUM_MAX];      /*全自动折返进路中与折入进路抵触折出进路ID数组 (配置字段)*/
	UINT8 AllAutoReturnInOpposedOutSum;										/*全自动折返进路中与折入进路抵触折出进路ID数目 (配置字段)*/
} AllAutoReturnConfigDataStruct;

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

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

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

/*
* 功能描述： 获取指定ID全自动折返进路数组下标
* 参数说明： const UINT16 allAutoReturnId, 全自动折返ID    
* 返回值  ： 0: 获取数据失败
*			>0: 全自动折返进路ID      
*/
UINT16 GetAllAutoReturnBufIndex(const UINT16 allAutoReturnId);

/*
* 功能描述： 获取指定ID全自动折返包含进路数目
* 参数说明： const UINT16 allAutoReturnId, 全自动折返ID    
* 返回值  ： 0: 获取数据失败
*			>0: 进路数目
*/
UINT8 GetAllAutoReturnIncludeRouteSum(const UINT16 allAutoReturnId);

/*
* 功能描述： 获取指定ID全自动折返所属联锁ID
* 参数说明： const UINT16 allAutoReturnId, 全自动折返ID    
* 返回值  ： 0: 获取数据失败
*			>0: 所属联锁ID
*/
UINT8 GetAllAutoReturnRouteBelongCiId(const UINT16 allAutoReturnId);

/*
* 功能描述： 获取指定ID全自动折返包含进路ID数组
* 参数说明： const UINT16 allAutoReturnId, 全自动折返ID    
* 返回值  ： 0: 获取数据失败
*			>0: 进路ID数组
*/
UINT16* GetAllAutoReturnIncludeRouteBuf(const UINT16 allAutoReturnId);

/*
* 功能描述： 获取指定ID全自动折返结构中折出进路Id数组
* 参数说明： const UINT16 allAutoReturnId, 全自动折返ID    
* 返回值  ： 0: 获取数据失败
*			>0: 进路ID
*/
UINT16* GetAllAutoReturnRebackRouteBuf(const UINT16 allAutoReturnId);
/*
* 功能描述： 获取指定ID全自动折返结构中折出进路Id数目
* 参数说明： const UINT16 allAutoReturnId, 全自动折返ID    
* 返回值  ： 0: 获取数据失败
*			>0: 进路ID
*/
UINT8 GetAllAutoReturnRebackRouteSum(const UINT16 allAutoReturnId);

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

/*
* 功能描述： 获取全自动折返进路抵触自动通过进路数目
* 参数说明： const UINT16 allAutoReturnId, 全自动折返进路ID    
* 返回值  ： 0: 获取数据失败
*			>0: 抵触进路数目      
*/
UINT8 GetAllAutoRtnOppRouteIdSum(const UINT16 allAutoReturnId);

/*
* 功能描述： 获取全自动折返进路抵触自动通过进路数组
* 参数说明： const UINT16 allAutoReturnId, 全自动折返进路ID    
* 返回值  ： 0: 获取数据失败
*			>0: 抵触进路数组指针      
*/
UINT16* GetAllAutoRtnOppRouteIdBuf(const UINT16 allAutoReturnId);

/*
* 功能描述： 获取全自动折返进路抵触自动折返进路数目
* 参数说明： const UINT16 allAutoReturnId, 全自动折返进路ID    
* 返回值  ： 0: 获取数据失败
*			>0: 抵触进路数目      
*/
UINT8 GetAllAutoRtnOppReturnIdSum(const UINT16 allAutoReturnId);

/*
* 功能描述： 获取全自动折返进路抵触自动折返进路数组
* 参数说明： const UINT16 allAutoReturnId, 全自动折返进路ID     
* 返回值  ： 0: 获取数据失败
*			>0: 抵触进路数组指针      
*/
UINT16* GetAllAutoRtnOppReturnIdBuf(const UINT16 allAutoReturnId);

/*
* 功能描述： 获取全自动折返进路抵触全自动折返进路数目
* 参数说明： const UINT16 allAutoReturnId, 全自动折返进路ID    
* 返回值  ： 0: 获取数据失败
*			>0: 抵触进路数目      
*/
UINT8 GetAllAutoRtnOppAllReturnIdSum(const UINT16 allAutoReturnId);

/*
* 功能描述： 获取全自动折返进路抵触全自动折返进路数组
* 参数说明： const UINT16 allAutoReturnId, 全自动折返进路ID     
* 返回值  ： 0: 获取数据失败
*			>0: 抵触进路数组指针      
*/
UINT16* GetAllAutoRtnOppAllRtnIdBuf(const UINT16 allAutoReturnId);
/*
* 功能描述： 获取全自动折返进路中与折入抵触折出进路数目
* 参数说明： const UINT16 allAutoReturnId, 全自动折返进路ID    
* 返回值  ： 0: 获取数据失败
*			>0: 抵触进路数目      
*/
UINT8 GetAllAutoRtnInOppOutIdSum(const UINT16 allAutoReturnId);

/*
* 功能描述： 获取全自动折返进路中与折入抵触折出进路数组
* 参数说明： const UINT16 allAutoReturnId, 折入进路ID     
* 返回值  ： 0: 获取数据失败
*			>0: 抵触进路数组指针      
*/
UINT16* GetAllAutoRtnInOppOutIdBuf(const UINT16 allAutoReturnId);


#ifdef __cplusplus
}
#endif

#endif
