|
cursada_mc2
Base de control de temperatura para EDU-CIAA-NXP
|
HMI simple basada en FSM para LCD 16x2 y 4 teclas. More...
#include "hmi/hmi.h"#include "drivers/buttons_driver.h"#include "drivers/buzzer_driver.h"#include "drivers/lcd_driver.h"#include <stdbool.h>#include <stdint.h>#include <stdio.h>#include <stdlib.h>
Include dependency graph for hmi.c:Go to the source code of this file.
Data Structures | |
| struct | hmi_param_desc_t |
| struct | hmi_ui_t |
| struct | hmi_estado_t |
Macros | |
| #define | HMI_LCD_COLUMNAS 16U |
| #define | HMI_TICK_MS 20U |
| #define | HMI_BEEP_MS 20U |
| #define | HMI_BEEP_TICKS (HMI_BEEP_MS / HMI_TICK_MS) |
Enumerations | |
| enum | hmi_pantalla_t { HMI_PANTALLA_INICIO = 0 , HMI_PANTALLA_MENU , HMI_PANTALLA_EDICION } |
| enum | hmi_parametro_t { HMI_PARAM_SETPOINT = 0 , HMI_PARAM_HISTERESIS , HMI_PARAM_TMIN_ON , HMI_PARAM_TMIN_OFF , HMI_PARAM_MODO , HMI_PARAM_COUNT } |
| enum | hmi_evento_t { HMI_EVENTO_NINGUNO = 0 , HMI_EVENTO_MENU , HMI_EVENTO_SUBIR , HMI_EVENTO_BAJAR , HMI_EVENTO_ACEPTAR } |
Functions | |
| static void | hmi_escribir_linea (uint8_t fila, const char *texto) |
| static void | hmi_formatear_deci (char *salida, size_t tam_salida, int16_t valor_deci) |
| static int16_t | hmi_cargar_valor_edicion_actual (void) |
| static void | hmi_guardar_valor_editado (void) |
| static void | hmi_dibujar_inicio (void) |
| static void | hmi_dibujar_menu (void) |
| static void | hmi_dibujar_edicion (void) |
| static void | hmi_dibujar (void) |
| void | hmi_init (void) |
| Inicializa el estado interno de la HMI y dibuja la pantalla inicial. | |
| void | hmi_process (void) |
| Procesa la navegacion de la interfaz y actualiza el LCD si es necesario. | |
| void | hmi_cargar_parametros_control (const parametros_control_t *parametros) |
| Carga en la HMI los parametros de control vigentes. | |
| void | hmi_cargar_estado_proceso (const hmi_estado_proceso_t *estado) |
| Carga en la HMI el estado visible actual del proceso. | |
| parametros_control_t | hmi_obtener_parametros_control (void) |
| Obtiene todos los parametros de control actualmente cargados en la HMI. | |
Variables | |
| static hmi_estado_t | hmi_ |
| static const hmi_param_desc_t | hmi_param_descs_ [HMI_PARAM_COUNT] |
| #define HMI_BEEP_TICKS (HMI_BEEP_MS / HMI_TICK_MS) |
| enum hmi_evento_t |
| enum hmi_pantalla_t |
| enum hmi_parametro_t |
| void hmi_cargar_estado_proceso | ( | const hmi_estado_proceso_t * | estado | ) |
| estado | Estructura con temperatura, presencia de sensor y estado de salida. |
Definition at line 363 of file hmi.c.
References hmi_, HMI_PANTALLA_INICIO, hmi_ui_t::necesita_redibujado, hmi_ui_t::pantalla, hmi_ui_t::salida_activa, hmi_estado_proceso_t::salida_activa, hmi_ui_t::sensor_disponible, hmi_estado_proceso_t::sensor_disponible, hmi_ui_t::temperatura_deci_celsius, hmi_estado_proceso_t::temperatura_deci_celsius, hmi_ui_t::temperatura_valida, hmi_estado_proceso_t::temperatura_valida, and hmi_estado_t::ui.
Referenced by app_init(), and app_step_20ms().
| void hmi_cargar_parametros_control | ( | const parametros_control_t * | parametros | ) |
| parametros | Estructura con los parametros visibles/editables del control. |
Definition at line 353 of file hmi.c.
References hmi_, hmi_ui_t::necesita_redibujado, hmi_estado_t::parametros, and hmi_estado_t::ui.
Referenced by app_init().
|
static |
Definition at line 120 of file hmi.c.
References hmi_ui_t::editando, parametros_control_t::histeresis_deci_celsius, hmi_, HMI_PARAM_HISTERESIS, HMI_PARAM_MODO, HMI_PARAM_SETPOINT, HMI_PARAM_TMIN_OFF, HMI_PARAM_TMIN_ON, parametros_control_t::modo_calentar, hmi_estado_t::parametros, parametros_control_t::setpoint_deci_celsius, parametros_control_t::tiempo_minimo_apagado_ms, parametros_control_t::tiempo_minimo_encendido_ms, and hmi_estado_t::ui.
Referenced by hmi_process().
|
static |
Definition at line 226 of file hmi.c.
References hmi_, hmi_dibujar_edicion(), hmi_dibujar_inicio(), hmi_dibujar_menu(), HMI_PANTALLA_EDICION, HMI_PANTALLA_INICIO, HMI_PANTALLA_MENU, hmi_ui_t::necesita_redibujado, hmi_ui_t::pantalla, and hmi_estado_t::ui.
Referenced by hmi_init(), and hmi_process().
|
static |
Definition at line 196 of file hmi.c.
References hmi_ui_t::editando, hmi_, hmi_escribir_linea(), hmi_formatear_deci(), HMI_LCD_COLUMNAS, hmi_param_descs_, HMI_PARAM_MODO, HMI_PARAM_TMIN_OFF, HMI_PARAM_TMIN_ON, hmi_param_desc_t::titulo, hmi_estado_t::ui, and hmi_ui_t::valor_edicion.
Referenced by hmi_dibujar().
|
static |
Definition at line 162 of file hmi.c.
References parametros_control_t::histeresis_deci_celsius, hmi_, hmi_escribir_linea(), hmi_formatear_deci(), HMI_LCD_COLUMNAS, parametros_control_t::modo_calentar, hmi_estado_t::parametros, hmi_ui_t::salida_activa, hmi_ui_t::sensor_disponible, parametros_control_t::setpoint_deci_celsius, hmi_ui_t::temperatura_deci_celsius, hmi_ui_t::temperatura_valida, and hmi_estado_t::ui.
Referenced by hmi_dibujar().
|
static |
Definition at line 190 of file hmi.c.
References hmi_, hmi_escribir_linea(), hmi_param_descs_, hmi_ui_t::menu_index, hmi_param_desc_t::titulo, and hmi_estado_t::ui.
Referenced by hmi_dibujar().
|
static |
Definition at line 97 of file hmi.c.
References driver_lcd_printf(), driver_lcd_set_position(), and HMI_LCD_COLUMNAS.
Referenced by hmi_dibujar_edicion(), hmi_dibujar_inicio(), and hmi_dibujar_menu().
|
static |
Definition at line 106 of file hmi.c.
Referenced by hmi_dibujar_edicion(), and hmi_dibujar_inicio().
|
static |
Definition at line 138 of file hmi.c.
References hmi_ui_t::editando, parametros_control_t::histeresis_deci_celsius, hmi_, HMI_PARAM_HISTERESIS, HMI_PARAM_MODO, HMI_PARAM_SETPOINT, HMI_PARAM_TMIN_OFF, HMI_PARAM_TMIN_ON, parametros_control_t::modo_calentar, hmi_estado_t::parametros, parametros_control_t::setpoint_deci_celsius, parametros_control_t::tiempo_minimo_apagado_ms, parametros_control_t::tiempo_minimo_encendido_ms, hmi_estado_t::ui, and hmi_ui_t::valor_edicion.
Referenced by hmi_process().
| void hmi_init | ( | void | ) |
Debe llamarse una sola vez luego de haber inicializado los drivers de hardware necesarios, en particular el LCD.
Definition at line 249 of file hmi.c.
References driver_lcd_write_char(), hmi_ui_t::editando, hmi_, hmi_dibujar(), HMI_PANTALLA_INICIO, HMI_PARAM_SETPOINT, hmi_ui_t::menu_index, hmi_ui_t::necesita_redibujado, hmi_ui_t::pantalla, hmi_ui_t::ticks_buzzer_restantes, hmi_estado_t::ui, and hmi_ui_t::valor_edicion.
Referenced by app_init().
| parametros_control_t hmi_obtener_parametros_control | ( | void | ) |
Definition at line 385 of file hmi.c.
References hmi_, and hmi_estado_t::parametros.
Referenced by app_step_20ms().
| void hmi_process | ( | void | ) |
Esta funcion debe llamarse de manera periodica desde el lazo principal.
Definition at line 262 of file hmi.c.
References button_get_event(), buzzer_turn_off(), buzzer_turn_on(), hmi_param_desc_t::ciclico, hmi_ui_t::editando, hmi_, HMI_BEEP_TICKS, hmi_cargar_valor_edicion_actual(), hmi_dibujar(), HMI_EVENTO_ACEPTAR, HMI_EVENTO_BAJAR, HMI_EVENTO_MENU, HMI_EVENTO_NINGUNO, HMI_EVENTO_SUBIR, hmi_guardar_valor_editado(), HMI_PANTALLA_EDICION, HMI_PANTALLA_INICIO, HMI_PANTALLA_MENU, HMI_PARAM_COUNT, hmi_param_descs_, hmi_param_desc_t::maximo, hmi_ui_t::menu_index, hmi_param_desc_t::minimo, hmi_ui_t::necesita_redibujado, hmi_ui_t::pantalla, hmi_param_desc_t::paso, TECLA1, TECLA2, TECLA3, TECLA4, hmi_ui_t::ticks_buzzer_restantes, hmi_estado_t::ui, and hmi_ui_t::valor_edicion.
Referenced by app_step_20ms().
|
static |
Definition at line 71 of file hmi.c.
Referenced by hmi_cargar_estado_proceso(), hmi_cargar_parametros_control(), hmi_cargar_valor_edicion_actual(), hmi_dibujar(), hmi_dibujar_edicion(), hmi_dibujar_inicio(), hmi_dibujar_menu(), hmi_guardar_valor_editado(), hmi_init(), hmi_obtener_parametros_control(), and hmi_process().
|
static |
Definition at line 89 of file hmi.c.
Referenced by hmi_dibujar_edicion(), hmi_dibujar_menu(), and hmi_process().