#include "jj_param.h" #include "page_ui_widget.h" #include "jj_motion.h" #include "page.h" #include #define LINE_HEAD 1 #define LINE_END Page2_head static char Text[] = "turn_pid"; static int event_flag = 0; static int index_power = 0; static int8_t Curser = LINE_HEAD; // 定义光标位置 static int8_t Curser_Last = LINE_HEAD; // 定义光标位置 static void jj_param_show(); /*************************************************************************************** * * 以下为页面模板函数 * ***************************************************************************************/ /** * @brief 页面初始化事件 * @param 无 * @retval 无 */ static void Setup() { ips200_clear(); ips200_show_string(0, 2,"turn"); Print_Curser(Curser, Curser_Last, RGB565_PURPLE); for (int16 i = 0; i < LINE_END; i++) { ips200_show_string(0, i * 18 + 20, Param_Data[i].text); if (Param_Data[i].type == EINT32) ips200_show_int(50, i * 18 + 20, *((int32 *)(Param_Data[i].p_data)), 5); else if (Param_Data[i].type == EFLOAT) ips200_show_float(50, i * 18 + 20, *((float *)(Param_Data[i].p_data)), 4, 5); } ips200_show_int(100, 2, index_power, 5); } /** * @brief 页面退出事件 * @param 无 * @retval 无 */ static void Exit() { } /** * @brief 页面循环执行的内容 * @param 无 * @retval 无 */ static void Loop() { } /** * @brief 页面事件 * @param btn:发出事件的按键 * @param event:事件编号 * @retval 无 */ static void Event(page_event event) { if (0 == event_flag) { Curser_Last = Curser; if (page_event_forward == event) { Curser--; // 光标上移 } else if (page_event_backward == event) { Curser++; // 光标下移 } else if (page_event_press_short == event) { event_flag = 1; // 选中参数 Print_Curser(Curser, Curser_Last, RGB565_RED); return; } else if (page_event_press_long == event) { jj_param_write(); sport_pid_init(); Page_Shift(page_menu); return; } if (Curser < LINE_HEAD) { Curser = LINE_END; } else if (Curser > LINE_END) { Curser = LINE_HEAD; } Print_Curser(Curser, Curser_Last, RGB565_PURPLE); } else if (1 == event_flag) { if (page_event_forward == event) { if (Param_Data[Curser-1].type == EFLOAT) { *((float *)(Param_Data[Curser-1].p_data)) += powf(10.0f, (float)index_power); } else if (Param_Data[Curser-1].type == EINT32) { *((int32 *)(Param_Data[Curser-1].p_data)) += 1; } else if (Param_Data[Curser-1].type == EUINT32) { *((uint32 *)(Param_Data[Curser-1].p_data)) += 1; } } else if (page_event_backward == event) { if (Param_Data[Curser-1].type == EFLOAT) { *((float *)(Param_Data[Curser-1].p_data)) -= powf(10.0f, (float)index_power); } else if (Param_Data[Curser-1].type == EINT32) { *((int32 *)(Param_Data[Curser-1].p_data)) -= 1; } else if (Param_Data[Curser-1].type == EUINT32) { *((uint32 *)(Param_Data[Curser-1].p_data)) -= 1; } } else if (page_event_press_short == event) { index_power++; if (index_power > 2) { index_power = -2; } ips200_show_int(100, 2, index_power, 5); } else if (page_event_press_long == event) { event_flag = 0; Print_Curser(Curser, Curser_Last, RGB565_PURPLE); } jj_param_show(); } } static void jj_param_show() { if (EINT32 == Param_Data[Curser-1].type) ips200_show_int(50, Curser * 18 + 2, *((int32 *)(Param_Data[Curser-1].p_data)), 5); else if (EUINT32 == Param_Data[Curser-1].type) ips200_show_uint(50, Curser * 18 + 2, *((int32 *)(Param_Data[Curser-1].p_data)), 5); else if (EFLOAT == Param_Data[Curser-1].type) ips200_show_float(50, Curser * 18 + 2, *((float *)(Param_Data[Curser-1].p_data)), 4, 5); } /** * @brief 页面注册函数 * * @param pageID */ void PageRegister_page_param_pid0(unsigned char pageID) { Page_Register(pageID, Text, Setup, Loop, Exit, Event); }