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

#include "LightTestButtonConfigDataManage.h"

LightTestButtonConfigDataStruct LightTestButtonConfigDataStru[LIGHTTESTBUTTON_BUTTON_MAX_NUM] = {0};   /*定义试灯按钮数据配置结构体*/
INT16 LightTestButtonCurSum = 0;   /*试灯按钮当前总数*/


/*
* 功能描述： 获取试灯按钮当前总数
* 参数说明： void    
* 返回值  ： 0: 获取数据失败
*			>0: 试灯按钮当前总数
*/
UINT16 GetLightTestButtonCurSum(void)
{
    UINT16 retVal  = 0u;
    if (LIGHTTESTBUTTON_BUTTON_MAX_NUM <= ((UINT16)LightTestButtonCurSum))
    {
        retVal = LIGHTTESTBUTTON_BUTTON_MAX_NUM;
    }
    else
    {
        retVal = (UINT16)LightTestButtonCurSum;
    }
    return retVal;
}
/*
* 功能描述： 获取试灯按钮的ID
* 参数说明： UINT16 index  试灯按钮索引    
* 返回值    UINT16 retVal   试灯按钮ID
*/
UINT16 GetLightTestButtonId(UINT16 index)
{
    UINT16 retVal = 0u;
	UINT16 lightTestButtonCurSum = GetLightTestButtonCurSum();
    if (index < lightTestButtonCurSum)
    {
        retVal = LightTestButtonConfigDataStru[index].LightTestButtonId;
    }
	else
	{
	}
    return retVal;
}

/*
* 功能描述：  获取试灯按钮ID对应的继电器数据
* 参数说明：  UINT16 lightTestButtonId  试灯按钮ID
* 返回值  ： 
             LightTestButtonConfigDataStruct *   
*/
LightTestButtonConfigDataStruct *GetLightTestButtonConfigData(UINT16 lightTestButtonId)
{
    LightTestButtonConfigDataStruct *retVal = NULL;
    UINT16 i = 0u;
    UINT16 lightTestButtonCurSum = GetLightTestButtonCurSum();

    for (i = 0u; i < lightTestButtonCurSum; i++)
    {
        if (lightTestButtonId == LightTestButtonConfigDataStru[i].LightTestButtonId)
        {
            retVal = &LightTestButtonConfigDataStru[i];
            break;
        }
		else
		{
		}
    }
    return retVal;
}

/*
* 功能描述：  获取试灯按钮ID对应继电器的总数量
* 参数说明：  UINT16 lightTestButtonId  试灯按钮ID
* 返回值  ： UINT16  lightTestButtonRelayNum   继电器数量 
*/
UINT16 GetLightTestButtonRelayNum(UINT16 lightTestButtonId)
{
    UINT16 lightTestButtonRelayNum = 0u;
    LightTestButtonConfigDataStruct *lightTestButtonConfigData = GetLightTestButtonConfigData(lightTestButtonId);
    if (NULL != lightTestButtonConfigData)
    {
        lightTestButtonRelayNum = lightTestButtonConfigData->LightTestButtonRelayNum;
    }
    else
    {
		; /* 不处理 */
    }
    return lightTestButtonRelayNum;
}

/*
* 功能描述：  获取试灯按钮ID对应继电器ID
* 参数说明：  UINT16 lightTestButtonId  试灯按钮ID
*            UINT16 index  继电器索引  
* 返回值  ： UINT16  lightTestButtonRelayId   继电器ID
*/
UINT16 GetLightTestButtonRelayId(UINT16 lightTestButtonId, UINT16 index)
{
    UINT16 lightTestButtonRelayId = 0u;
    LightTestButtonConfigDataStruct *lightTestButtonConfigData = GetLightTestButtonConfigData(lightTestButtonId);
    if (NULL != lightTestButtonConfigData)
    {
        if (index < lightTestButtonConfigData->LightTestButtonRelayNum)
        {
            lightTestButtonRelayId = lightTestButtonConfigData->LightRelayId[index];
        }
        else
        {
            ; /* 不处理 */
        }
    }
    else
    {
        ; /* 不处理 */
	}
    return lightTestButtonRelayId;
}

