#ifndef ARB_STATE_H_
#define ARB_STATE_H_

#include "SFM_2x2.h"

/**
 * @brief 仲裁模式下使用，通过ID获取对应板卡区域状态
 */
ENUM_AREA_STATE AreaArb_GetState_byID(CM_UINT8 ID);

/**
 * @brief 仲裁模式下使用，通过ID设置对应板卡区域状态
 */
void AreaArb_SetState_byID(CM_UINT8 ID, ENUM_AREA_STATE state);

/**
 * @brief 仲裁模式下使用，通过ID获取对应板卡2x状态
 */
ENUM_2x2_STATE_T AreaArb_Get2xState_byID(CM_UINT8 ID);

/**
 * @brief 仲裁模式下使用，通过ID设置对应板卡2x状态
 */
void AreaArb_Set2xState_byID(CM_UINT8 ID, ENUM_2x2_STATE_T state);

/**
 * @brief 仲裁模式下使用，通过状态获取某个板卡ID
 * @return 0表示无该板卡
 */
CM_UINT8 AreaArb_GetID_byState(ENUM_AREA_STATE state_area, ENUM_2x2_STATE_T state_2x);

/**
 * @brief 仲裁模式下使用，获取所有区域状态
 */
void AreaArb_Get_All_State(STR_Area_State *p_all_State);
/**
 * @brief 判断是否存在备地
 */
CM_BOOL AreaArb_Slave_Is_Exist();

#endif