tdse-tf_3-02

Controlador PID para derretidor de miel con control local via botones y remoto via WiFi
Index Commits Files Refs Submodules README
firmware-nucleo/App/Inc/task_system_attribute.h (2124B)
   1 /*
   2  * Copyright (c) 2026 Martin Javier Klöckner <mklockner@fi.uba.ar>
   3  *
   4  * See file `LICENSE` for full details
   5  */
   6 
   7 #ifndef TASK_INC_TASK_SYSTEM_ATTRIBUTE_H_
   8 #define TASK_INC_TASK_SYSTEM_ATTRIBUTE_H_
   9 
  10 #ifdef __cplusplus
  11 extern "C" {
  12 #endif
  13 
  14 /* System Statechart - State Transition Table
  15  *
  16  * +----------------+-------+---------------------------+----------------+-----------------------------+
  17  * | Current state  | Event | [Guard]                   | Next state     | Actions                     |
  18  * |                |       |                           |                |                             |
  19  * +================+=======+===========================+================+=============================+
  20  * | ST_SYS_LED_ON  |       | [tick < LED_PERIOD_MS*    | ST_SYS_LED_OFF | put_event_actuator(LED_OFF) |
  21  * |                |       |          LED_PERCENT_ON]  |                |                             |
  22  * +----------------+-------+---------------------------+----------------+-----------------------------+
  23  * | ST_SYS_LED_OFF |       | [tick > 0]                | ST_SYS_LED_ON  | tick = TICK_MAX             |
  24  * |                |       |                           |                | put_event_actuator(LED_ON)  |
  25  * +----------------+-------+---------------------------+----------------+-----------------------------+
  26  *
  27  */
  28 
  29 typedef enum task_system_ev {
  30     EV_SYS_IDLE,
  31     EV_SYS_BTN_A_IDLE,
  32     EV_SYS_BTN_A_ACTIVE,
  33     EV_SYS_BTN_B_IDLE,
  34     EV_SYS_BTN_B_ACTIVE,
  35     EV_SYS_BTN_C_IDLE,
  36     EV_SYS_BTN_C_ACTIVE,
  37     EV_SYS_BTN_D_IDLE,
  38     EV_SYS_BTN_D_ACTIVE,
  39 
  40     EV_SYS_REM_TEMP_CTRL_ENABLED,
  41     EV_SYS_REM_TIMER_TOGGLE,
  42     EV_SYS_REM_TEMP_SET,
  43 } task_system_ev_t;
  44 
  45 typedef enum task_system_st {
  46     ST_SYS_IDLE,
  47     ST_SYS_CLOCK_SET,
  48     ST_SYS_TEMP_SET,
  49     ST_SYS_TIMER_SET_STATUS,
  50     ST_SYS_TIMER_SET_START,
  51     ST_SYS_TIMER_SET_END,
  52 } task_system_st_t;
  53 
  54 typedef struct {
  55     uint32_t         tick;
  56     task_system_st_t state;
  57     task_system_ev_t event;
  58     bool             event_flag;
  59 } task_system_dta_t;
  60 
  61 #ifdef __cplusplus
  62 }
  63 #endif
  64 
  65 #endif /* TASK_INC_TASK_SYSTEM_ATTRIBUTE_H_ */