diff --git a/stm-firmware/include/reflow-controller/ui/gui.h b/stm-firmware/include/reflow-controller/ui/gui.h index 6726a2e..a82293a 100644 --- a/stm-firmware/include/reflow-controller/ui/gui.h +++ b/stm-firmware/include/reflow-controller/ui/gui.h @@ -21,6 +21,8 @@ #ifndef _GUI_H_ #define _GUI_H_ +#include + /** * @brief Handle the reflow controller's LCD Menu * @return 0 if no delay is requested, 1 if delay is requested @@ -31,4 +33,6 @@ void gui_init(void); void gui_root_menu_message_set(const char *heading, const char *text); +void gui_lcd_write_direct_blocking(uint8_t line, const char *text); + #endif /* _GUI_H_ */ diff --git a/stm-firmware/include/reflow-controller/ui/lcd.h b/stm-firmware/include/reflow-controller/ui/lcd.h index efb2532..9dc2fcf 100644 --- a/stm-firmware/include/reflow-controller/ui/lcd.h +++ b/stm-firmware/include/reflow-controller/ui/lcd.h @@ -21,6 +21,8 @@ #ifndef __LCD_H__ #define __LCD_H__ +#include + #define LCD_DPORT (GPIOD) #define LCD_RCC_MASK RCC_AHB1ENR_GPIODEN #define LCD_DATA_BIT_OFFSET (8) @@ -48,6 +50,8 @@ void lcd_init(void); void lcd_string(const char *data); +void lcd_setcursor(uint8_t x, uint8_t y); + void lcd_home(void); enum lcd_fsm_ret lcd_fsm_write_buffer(const char (*display_buffer)[21]); diff --git a/stm-firmware/main.c b/stm-firmware/main.c index ce8325b..40036c1 100644 --- a/stm-firmware/main.c +++ b/stm-firmware/main.c @@ -162,6 +162,8 @@ static inline void handle_boot_status(void) led_set(0, 1); led_set(1, 1); + gui_lcd_write_direct_blocking(0, "Updating..."); + start_updater_ram_code(); } diff --git a/stm-firmware/ui/gui.c b/stm-firmware/ui/gui.c index 6465da6..3a07939 100644 --- a/stm-firmware/ui/gui.c +++ b/stm-firmware/ui/gui.c @@ -842,3 +842,14 @@ void gui_root_menu_message_set(const char *heading, const char *text) strcpy(overlay_text, text); } } + +void gui_lcd_write_direct_blocking(uint8_t line, const char *text) +{ + if (!text) + return; + if (line > 3) + return; + + lcd_setcursor(0, line); + lcd_string(text); +}