/****************************************************************************** * @file app_arbiter.h * @brief 加热占用仲裁:手动 > 定时 > 联动(规格书第 12 章) * @author cyWu <1917507415@qq.com> * @date 2026.09.04 * @version V1.1.0 ******************************************************************************/ #ifndef __APP_ARBITER_H__ #define __APP_ARBITER_H__ #include typedef enum { ARB_OWNER_NONE = 0, /**< 空闲 / 手动接管 */ ARB_OWNER_LINKAGE = 1, /**< 联动占用 */ ARB_OWNER_TIMER = 2 /**< 定时占用 */ } ArbOwner_t; /** * @brief 初始化仲裁器 * @return 无 */ void app_arbiter_init(void); /** * @brief 当前加热占用者 * @return ArbOwner_t */ uint8_t app_arbiter_get_owner(void); /** * @brief 短按 / DP0:清占用并作废本轮联动 * @return 无 */ void app_arbiter_manual_intervene(void); /** * @brief 联动尝试占用 * @return 1=成功;0=定时占用中 */ uint8_t app_arbiter_linkage_take(void); /** * @brief 联动是否仍在占用 * @return 1=是 */ uint8_t app_arbiter_linkage_active(void); /** * @brief 联动自然失效,让出占用 * @return 无 */ void app_arbiter_linkage_release(void); /** * @brief 定时窗开始占用 * @return 1=成功 */ uint8_t app_arbiter_timer_take(void); /** * @brief 定时窗结束释放 * @return 无 */ void app_arbiter_timer_release(void); #endif /* __APP_ARBITER_H__ */