#ifndef SERVICE_REAL_TIME_DATA_H
#define SERVICE_REAL_TIME_DATA_H
#include "data_config.h"
#include "ui_config.h"
#include "data/data_manager.h"


void rtd_service_get_ui_data(CursorPosition selectMenu ,u8 menu_sel_idx , u8 item_sel_idx , GeneralListPageConfig_t *config, bool is_yk_authenticated);

// ===================== 开出控制设置界面相关接口 =====================
/**
 * @brief  获取开出控制设置选项数据结构
 * @return UiSetValueOptDef指针，用于ui_comp_set_vale_list组件
 * @date   2026-02-26
 */
UiSetValueOptDef* rtd_service_get_yk_set_opt(void);

/**
 * @brief  设置当前选中的开出控制值
 * @param  value 选择的值(0=分闸, 1=合闸)
 * @date   2026-02-26
 */
void rtd_service_set_yk_control_value(float value);

/**
 * @brief  获取当前选中的开出控制值
 * @return 当前值(0=分闸, 1=合闸)
 * @date   2026-02-26
 */
float rtd_service_get_yk_control_value(void);

// ===================== DO遥控控制接口（data层映射）=====================
/**
 * @brief  执行DO遥控操作（开出控制）
 * @param  do_index DO索引（0 ~ do_num-1）
 * @param  type 操作类型，DO_CTRL_OFF(分闸) 或 DO_CTRL_ON(合闸)
 * @return DoCtrlRet 操作结果
 * @date   2026-02-26
 * @note   该接口是对data层data_mgr_do_control的封装
 */
DoCtrlRet rtd_service_do_control(uint8_t do_index, DoCtrlType type);

/**
 * @brief  获取DO遥控状态
 * @param  do_index DO索引（0 ~ do_num-1）
 * @return int 当前状态，0=分，1=合，-1=错误
 * @date   2026-02-26
 */
int rtd_service_get_do_status(uint8_t do_index);


#endif // SERVICE_REAL_TIME_DATA_H