#ifndef _APP_SCREEN_MAIN_H_ #define _APP_SCREEN_MAIN_H_ #include "apps_gather.h" extern MENU_DATA menu_data; //界面参数初始化 extern PLOT_DATA pltdata; //chart绘图参数初始化 extern uint8_t scr_main_set_flag; //主界面,ON #define IO_ON 1 //主界面,OFF #define IO_OFF 0 //主界面,输入模式 #define IO_INPUT 0 //主界面,输出模式 #define IO_OUTPUT 1 //游标-横线起点1,小数点的宽度与数字不一样,因此分成左右两半 #define IO_CURSOR_START1 136 //游标-横线起点2 #define IO_CURSOR_START2 244 //游标-数字之间间隔大小 #define IO_CURSOR_INTERVAL 24 //游标-y轴坐标值 #define IO_CURSOR_Y 230 //闪烁次数上限 #define TWINKLE_CNT_MAX 10 //EEPROM状态监控 #define EEPROM_MONITOR_ENABLE 1 //菜单数据初始化 void screen_data_init(void); //主界面参数初始化 void main_data_init(void); //绘图数据初始化 void plot_data_init(void); //开机动画 void scr_init_run(void); //进度条设置, start[0, end], end[start,100], interval[ms],结束后返回1 uint8_t init_set_bar(uint8_t start, uint8_t end, uint16_t interval); //主界面 void scr_main_run(void); //运行时间显示 void runtime_show(void); //电池电量显示 void battery_show(void); //设置游标位置【0000.000】,0~7 void set_cursor_position(void); //设置数码管符号位,0->熄灭,1->显示负号 void set_nixie_cube_sign(uint8_t on2off, uint8_t sg); //设置数码管显示值:io_slc->输入/输出,pos->第几个数字,num->数值*1000 //补充说明:pos = 99时,num=[0000000,9999999];pos = 10时,数值显示为空白。 void set_nixie_cube(uint8_t io_slc, uint8_t pos, int32_t num); //RE:按键修改输出值 void keyset_output(int8_t key_step); //设置当前的输出值,1000*实际值->(无符号)数组,可直接输入负数 void set_output_array(int32_t pvo); //设置输出值:数字显示 + 符号 + 缓存,sto->实际值 void set_output(float32 sto); //获取当前设定的输出值(数组&符号 -> (有符号)实际值) float32 get_output_value(void); //显示当前测量值 void input_value_show(void); //输入输出、ON&OFF状态指示 void io_on2off_status(void); //恢复主界面的各项参数显示,用于界面切换(设置界面->主界面) void scr_main_recover(void); //曲线设置更新 void scr_main_chart_update(void); //数值闪烁,数值发生变化后开始闪烁,10秒无动作后闪烁停止,游标移动后恢复前一时刻位置的数值 void num_twinkle(void); //实时曲线绘制 void plot_drawing(void); //设置工作模式和工作模式类型 void set_working_mode(SIG_FUNCTIONS mode, SIG_FUNCTIONS_TYPE type); //更新上下限&显示,曲线上下限,数值上下限 void up2down_update(int16_t low, int16_t up); //eeprom状态监控 void eep_status_monitor(void); //通讯状态标识 void trans_status_display(void); #endif