/*
 * Area.h
 *
 *  Created on: 2025年12月2日
 *      Author: adan
 */

#ifndef AREA_AREA_H_
#define AREA_AREA_H_
#include "CM_Types.h"
#include "Area_State_Vote.h"
#include "Area_state.h"

typedef struct
{
	ENUM_AREA_STATE Local_state;/**< 区域状态*/
    ENUM_AREA_STATE Partner_state;/**< 区域状态*/
    ENUM_AREA_STATE Partner_Area_A_state;/**< 区域状态*/
    ENUM_AREA_STATE Partner_Area_B_state;/**< 区域状态*/
}STR_Area_State;
/**
 * @brief 区域开始
 * 
 */
void Area_Start();
/**
 * @brief 等待区域停止
 * 
 */
void Area_Wait_Stop();

/**
 * @brief 区域停止
 *
 */
void Area_Stop();

/**
 * @brief 获取区域状态
 * 
 * @return ENUM_Area_State 区域状态
 */
ENUM_AREA_STATE Area_Get_State();
/**
 * @brief 设置区域状态
 * 
 * @param State 区域状态
 */
void Area_Set_State(ENUM_AREA_STATE State);

/**
 * @brief 获取区域状态
 *
 * @return ENUM_Area_State 区域状态
 */
ENUM_AREA_STATE Area_Get_Partner_State();

/**<是否存在区域备地*/
CM_BOOL Area_Slave_Is_Exist();

void Area_init();

void Area_Clear_MQ();

void Area_Get_All_State(STR_Area_State *p_all_State);

CM_UINT32 Area_GetArea_A_ID(void);

CM_UINT32 Area_GetArea_B_ID(void);

/*日志转换*/
void Area_LOG_Transition(void);
#endif /* AREA_AREA_H_ */
