/********************************************************
*                                                                                                            
* 文 件 名： LightTestButtonConfigDataManage.h   
* 版权说明： 北京交控科技有限公司 
* 创建时间： 2025-12-09
* 作    者： 联锁组
* 功能描述： 试灯按钮配置数据管理头文件  
* 函数包括：
* 使用注意：
* 修改记录：   
*
********************************************************/

#ifndef _LIGHTTESTBUTTON_CONFIG_DATA_MANAGE_H_
#define _LIGHTTESTBUTTON_CONFIG_DATA_MANAGE_H_


#include "LightTestButtonDefine.h"


typedef struct S_LightTestButtonConfigDataStruct
{
    UINT16 LightTestButtonId;      	       /* 试灯按钮ID (配置字段) */
    UINT16 BelongOcId;    	                   /* 所属OC ID (配置字段) */
    UINT8  LightTestButtonType;               /* 试灯按钮类型 (配置字段) */
    UINT16 LightTestButtonRelayNum;            /* 试灯表示灯继电器数量  */
    UINT16 LightRelayId[LIGHTTESTBUTTON_LIGHT_SUPPORT_MAX_NUM];    /* 试灯表示灯继电器ID数组 */
}LightTestButtonConfigDataStruct;


extern LightTestButtonConfigDataStruct LightTestButtonConfigDataStru[LIGHTTESTBUTTON_BUTTON_MAX_NUM];   /*定义试灯按钮数据配置结构体*/
extern INT16 LightTestButtonCurSum;   /*试灯按钮当前总数*/
#ifdef __cplusplus
extern "C" {
#endif

/*
* 功能描述： 获取试灯按钮当前总数
* 参数说明： void    
* 返回值  ： 0: 获取数据失败
*			>0: 信试灯按钮当前总数
*/
UINT16 GetLightTestButtonCurSum(void);

/*
* 功能描述： 获取试灯按钮的ID
* 参数说明： UINT16 index  试灯按钮索引    
* 返回值    UINT16 retVal   试灯按钮ID
*/
UINT16 GetLightTestButtonId(UINT16 index);


/*
* 功能描述：  获取试灯按钮ID对应的继电器数据
* 参数说明：  UINT16 lightTestButtonId  试灯按钮ID
* 返回值  ： 
             LightTestButtonConfigDataStruct *   
*/
LightTestButtonConfigDataStruct *GetLightTestButtonConfigData(UINT16 lightTestButtonId);

/*
* 功能描述：  获取试灯按钮ID对应继电器的总数量
* 参数说明：  UINT16 lightTestButtonId  试灯按钮ID
* 返回值  ： UINT16  lightTestButtonRelayNum   继电器数量 
*/
UINT16 GetLightTestButtonRelayNum(UINT16 lightTestButtonId);

/*
* 功能描述：  获取试灯按钮ID对应继电器ID
* 参数说明：  UINT16 lightTestButtonId  试灯按钮ID
*            UINT16 index  继电器索引  
* 返回值  ： UINT16  lightTestButtonRelayId   继电器ID
*/
UINT16 GetLightTestButtonRelayId(UINT16 lightTestButtonId, UINT16 index);

#ifdef __cplusplus
}
#endif

#endif
