/********************************************************
*                                                                                                            
* 文 件 名： SGBJConfigDataManage.h   
* 版权说明： 北京交控科技有限公司 
* 创建时间： 2023-09-23
* 作    者： 联锁组
* 功能描述： 声光报警配置数据管理头文件  
* 函数包括：
* 使用注意：
* 修改记录：   
*
********************************************************/ 

#ifndef _SGBJ_CONFIG_DATA_MANAGE_H_
#define _SGBJ_CONFIG_DATA_MANAGE_H_


#include "SGBJDefine.h"
#include "CommonTypes.h"

#ifdef __cplusplus
extern "C" {
#endif

typedef struct S_SGBJConfigDataStruct
{
	UINT16 wSGBJId;  /*声光报警器ID*/
	UINT16 wSGBJRelayId;  /*声光报警器继电器ID1*/
	UINT16 wSGBJRelayId_2;  /*声光报警器继电器ID2*/
	UINT16 wSGBJRelPhySecNum;  /*声光报警器关联物理区段数量*/
	UINT16 wSGBJRelPhySecId[SGBJ_REL_PHYSEC_SUM_MAX];  /*声光报警器关联物理区段ID数组*/
	UINT16 wSGBJRelatedRouteNum;  /*声光报警器关联进路数量*/
	UINT16 szSGBJRelatedRouteId[SGBJ_INCLUDE_ROUTE_SUM_MAX];  /*声光报警器关联的有效进路ID数组*/
	UINT8 cBelongCiId;  /*所属控区ID*/
}SGBJConfigDataStruct;

/*******************************全局变量声明*******************************/
extern SGBJConfigDataStruct SGBJConfigDataStru[SGBJ_SUM_MAX];   /*声光报警器数据配置结构体*/
extern UINT16 LocalCiSGBJlIdBuf[SGBJ_SUM_MAX];
extern INT16 SGBJCurSum;

/*
* 功能描述： 获取指定ID声光报警器索引号
* 参数说明： const UINT16 wSGBJId 声光报警器ID
* 返回值  ： SIGNAL_SUM_MAX: 获取失败
*			 其它: 获取成功
*/
UINT16 GetSGBJConfigBufIndex(const UINT16 wSGBJId);

/*
* 功能描述：获取声光报警器当前总数
* 参数说明：void
* 返回值  ：0: 获取数据失败
*		   >0: 声光报警器当前总数
*/
UINT16 GetSGBJCurSum(void);

/*
* 功能描述：整理读入的声光报警器配置数据
* 参数说明：无
* 返回值  ：CI_SUCCESS 整理成功
*			CI_ERROR 整理失败
*/
UINT8 SGBJConfigDataManage(void);

/*
* 功能描述： 获取指定数组下标对应的声光报警器ID
* 参数说明： const UINT16 bufIndex 数组下标
* 返回值  ： 0: 获取数据失败
*			>0: 声光报警器ID
*/
UINT16 GetSGBJIdByIndex(const UINT16 bufIndex);

/*
* 功能描述： 获取指定ID声光报警器的继电器ID1
* 参数说明： const UINT16 wSGBJlId 声光报警器ID
* 返回值  ： 0: 获取数据失败
*		    >0: 声光报警器的继电器ID1
*/
UINT16 GetSGBJRelayId(const UINT16 wSGBJlId);

/*
* 功能描述： 获取指定ID声光报警器的继电器ID2
* 参数说明： const UINT16 wSGBJlId 声光报警器ID
* 返回值  ： 0: 获取数据失败
*		    >0: 声光报警器的继电器ID2
*/
UINT16 GetSGBJRelayId_2(const UINT16 wSGBJlId);

/*
* 功能描述： 获取指定ID声光报警器所属联锁ID
* 参数说明： const UINT16 wSGBJlId 声光报警器ID
* 返回值  ： 0: 获取数据失败
*		    >0: 声光报警器所属联锁ID
*/
UINT8 GetSGBJBelongCiId(const UINT16 wSGBJlId);

/*
* 功能描述： 获取指定ID声光报警器关联的进路数量
* 参数说明： const UINT16 wSGBJlId 声光报警器ID
* 返回值  ： 0: 获取数据失败
*		    >0: 关联的进路数量
*/
UINT16 GetSGBJRelRouteNum(const UINT16 wSGBJlId);

/*
* 功能描述： 获取指定ID声光报警器关联的进路ID数组
* 参数说明： const UINT16 wSGBJlId 声光报警器ID
* 返回值  ： NULL: 获取数据失败
*		    非NULL: 关联的进路ID数组
*/
UINT16* GetSGBJRelRouteIdBuf(const UINT16 wSGBJlId);

#ifdef __cplusplus
}
#endif

#endif
