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

#ifndef _NON_AUTORETURN_CONFIG_DATA_MANAGE_H_
#define _NON_AUTORETURN_CONFIG_DATA_MANAGE_H_


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



#ifdef __cplusplus
extern "C" {
#endif




/*无人自动自动折返数据结构体*/
typedef struct S_NonAutoReturnConfigDataStruct
{
	UINT16 NonAutoReturnId;												/*无人自动折返按钮ID (配置字段)*/
	UINT8 BelongCiId;													/*所属联锁ID*/
	UINT8 BelongVirCiId;												/*所属虚拟联锁ID*/
	UINT16 NonAutoRtnRlyId;												/*无人自动折设按钮继电器ID (配置字段)*/
	UINT16 NonAutoRtnLghtRlyId;											/*无人自动折设按钮指示灯继电器ID (配置字段)*/
	UINT16 NonAutoReturnRelLightId;                                    /*无人折返关联灯ID*/
	UINT16 NonAutoReturnRelButtonId;                                    /*无人折返关联按钮ID*/
} NonAutoReturnConfigDataStruct;

/*******************************全局变量声明*******************************/
extern NonAutoReturnConfigDataStruct NonReturnConfigDataStru[NON_AUTO_RETURN_SUM_MAX];   /*无人自动折返配置结构体*/
extern UINT16 LocalCiNonReturnIdBuf[NON_AUTO_RETURN_SUM_MAX];                 /*定义本地联锁无人自动折返按钮映射数组*/
extern INT16 gNonReturnCurSum;  /*自动折返当前总数*/

/*
* 功能描述： 获取指定ID无人折返下标
* 参数说明： const UINT16 floodGateId, 防淹门ID
* 返回值  ： 0u: 获取数据失败
*			>0u: 无人折返下标ID
*/
UINT16 GetNonReturnBufIndex(const UINT16 nonReturnId);

/*
* 功能描述： 获取指定下标无人折返Id
* 参数说明： const UINT16 floodGateId, 防淹门ID
* 返回值  ： 0u: 获取数据失败
*			>0u: 无人折返下标ID
*/
UINT16 GetNonReturnId(const UINT16 bufIndex);
/*
* 功能描述： 获取无人自动折返当前总数
* 参数说明： void
* 返回值  ： 0: 获取数据失败
*			>0: 自动折返进路当前总数
*/
UINT16 GetNonAutoReturnCurSum(void);

/*
* 功能描述： 获取指定数组下标对应的无人自动折返按钮所属联锁ID
* 参数说明： const UINT16 bufIndex, 数组下标
* 返回值  ： 0: 获取数据失败
*			>0: 联锁ID
*/
UINT8 GetNonAutoBelongCiId(const UINT16 nonReturnId);

/*
* 功能描述： 获取指定数组下标对应的无人自动折返按钮所属虚拟联锁ID
* 参数说明： const UINT16 bufIndex, 数组下标
* 返回值  ： 0: 获取数据失败
*			>0: 联锁ID
*/
UINT8 GetNonAutoBelongVirCiId(const UINT16 nonReturnId);

/*
* 功能描述： 获取指定数组下标对应的无人自动折返按钮ID（实际为指示灯ID）
* 参数说明： const UINT16 bufIndex, 数组下标
* 返回值  ： 0: 获取数据失败
*			>0: 无人自动折返按钮ID
*/
UINT16 GetNonRtnRlyId(const UINT16 nonReturnId);

/*
* 功能描述： 获取指定ID无人自动折返按钮指示灯继电器ID
* 参数说明： const UINT16 autoReturnId, 自动折返ID
* 返回值  ： 0: 获取数据失败
*			>0: 无人自动折返按钮指示灯继电器ID
*/
UINT16 GetNonRtnLghtRlyId(const UINT16 nonReturnId);

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

/*
* 功能描述： 获取指定ID无人折返关联指示灯ID
* 参数说明： const UINT16 autoReturnId, 自动折返ID
* 返回值  ： 0: 获取数据失败
*			>0: 无人折返关联指示灯ID
* by cgh 20241031
*/
UINT16 GetNonRtnRelLightId(const UINT16 nonReturnId);

/*
* 功能描述： 获取指定ID无人折返关联按钮ID
* 参数说明： const UINT16 autoReturnId, 自动折返ID
* 返回值  ： 0: 获取数据失败
*			>0: 无人折返关联按钮ID
* by cgh 20241031
*/
UINT16 GetNonRtnRelButtonId(const UINT16 nonReturnId);

#ifdef __cplusplus
}
#endif

#endif
