Improve GUI
This commit is contained in:
parent
abb333cfe7
commit
c67298118e
7
stm-firmware/include/reflow-controller/ui/gui-config.h
Normal file
7
stm-firmware/include/reflow-controller/ui/gui-config.h
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
#ifndef _GUI_CONFIG_H_
|
||||||
|
#define _GUI_CONFIG_H_
|
||||||
|
|
||||||
|
#define GUI_MONITORING_INTERVAL_MS 500U
|
||||||
|
#define GUI_TEMP_DRIVER_REFRESH_MS 750U
|
||||||
|
|
||||||
|
#endif /* _GUI_CONFIG_H_ */
|
@ -19,6 +19,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <reflow-controller/ui/gui.h>
|
#include <reflow-controller/ui/gui.h>
|
||||||
|
#include <reflow-controller/ui/gui-config.h>
|
||||||
#include <reflow-controller/ui/menu.h>
|
#include <reflow-controller/ui/menu.h>
|
||||||
#include <reflow-controller/ui/lcd.h>
|
#include <reflow-controller/ui/lcd.h>
|
||||||
#include <reflow-controller/rotary-encoder.h>
|
#include <reflow-controller/rotary-encoder.h>
|
||||||
@ -70,7 +71,7 @@ static void gui_menu_monitor(struct lcd_menu *menu, enum menu_entry_func_entry e
|
|||||||
menu_display_clear(menu);
|
menu_display_clear(menu);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (systick_ticks_have_passed(my_timestamp, 250)) {
|
if (systick_ticks_have_passed(my_timestamp, GUI_MONITORING_INTERVAL_MS)) {
|
||||||
my_timestamp = systick_get_global_tick();
|
my_timestamp = systick_get_global_tick();
|
||||||
adc_pt1000_get_current_resistance(&tmp);
|
adc_pt1000_get_current_resistance(&tmp);
|
||||||
snprintf(line, sizeof(line), "Res: %.1f " LCD_OHM_SYMBOL_STRING, tmp);
|
snprintf(line, sizeof(line), "Res: %.1f " LCD_OHM_SYMBOL_STRING, tmp);
|
||||||
@ -304,12 +305,17 @@ static void gui_menu_constant_temperature_driver(struct lcd_menu *menu, enum men
|
|||||||
static void IN_SECTION(.ccm.bss) *my_parent;
|
static void IN_SECTION(.ccm.bss) *my_parent;
|
||||||
static int16_t IN_SECTION(.ccm.bss) temperature;
|
static int16_t IN_SECTION(.ccm.bss) temperature;
|
||||||
static bool IN_SECTION(.ccm.bss) fine;
|
static bool IN_SECTION(.ccm.bss) fine;
|
||||||
|
static uint64_t IN_SECTION(.ccm.bss) last_temp_refresh;
|
||||||
|
static float IN_SECTION(.ccm.bss) last_temp;
|
||||||
enum button_state button;
|
enum button_state button;
|
||||||
|
float current_temp;
|
||||||
|
int status;
|
||||||
int16_t rot;
|
int16_t rot;
|
||||||
int16_t temp_old;
|
int16_t temp_old;
|
||||||
|
|
||||||
if (entry_type == MENU_ENTRY_FIRST_ENTER) {
|
if (entry_type == MENU_ENTRY_FIRST_ENTER) {
|
||||||
my_parent = parent;
|
my_parent = parent;
|
||||||
|
last_temp = -2000.0f;
|
||||||
temperature = 30;
|
temperature = 30;
|
||||||
menu_display_clear(menu);
|
menu_display_clear(menu);
|
||||||
menu_lcd_outputf(menu, 0, "Temp Controller");
|
menu_lcd_outputf(menu, 0, "Temp Controller");
|
||||||
@ -350,7 +356,17 @@ static void gui_menu_constant_temperature_driver(struct lcd_menu *menu, enum men
|
|||||||
} else {
|
} else {
|
||||||
if (temperature != temp_old) {
|
if (temperature != temp_old) {
|
||||||
oven_pid_set_target_temperature((float)temperature);
|
oven_pid_set_target_temperature((float)temperature);
|
||||||
menu_lcd_outputf(menu, 1, "Temp: %d " LCD_DEGREE_SYMBOL_STRING "C", (int)temperature);
|
menu_lcd_outputf(menu, 1, "Target: %d " LCD_DEGREE_SYMBOL_STRING "C", (int)temperature);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (entry_type == MENU_ENTRY_FIRST_ENTER || systick_ticks_have_passed(last_temp_refresh, GUI_TEMP_DRIVER_REFRESH_MS)) {
|
||||||
|
(void)adc_pt1000_get_current_resistance(¤t_temp);
|
||||||
|
status = temp_converter_convert_resistance_to_temp(current_temp, ¤t_temp);
|
||||||
|
if (current_temp != last_temp) {
|
||||||
|
last_temp = current_temp;
|
||||||
|
menu_lcd_outputf(menu, 2, "Current: %s%.1f", current_temp, (status < 0 ? "<" : status > 0 ? ">" : ""));
|
||||||
|
}
|
||||||
|
last_temp_refresh = systick_get_global_tick();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user