1 /* 2 * Copyright (c) 2023 Juan Manuel Cruz <jcruz@fi.uba.ar> <jcruz@frba.utn.edu.ar>. 3 * Copyright (c) 2026 Martin Javier Klöckner <mklockner@fi.uba.ar> 4 * 5 * See file `LICENSE` for full details 6 */ 7 8 #ifndef TASK_INC_TASK_SYSTEM_ATTRIBUTE_H_ 9 #define TASK_INC_TASK_SYSTEM_ATTRIBUTE_H_ 10 11 #ifdef __cplusplus 12 extern "C" { 13 #endif 14 15 /* System Statechart - State Transition Table 16 * 17 * +----------------+-------+---------------------------+----------------+-----------------------------+ 18 * | Current state | Event | [Guard] | Next state | Actions | 19 * | | | | | | 20 * +================+=======+===========================+================+=============================+ 21 * | ST_SYS_LED_ON | | [tick < LED_PERIOD_MS* | ST_SYS_LED_OFF | put_event_actuator(LED_OFF) | 22 * | | | LED_PERCENT_ON] | | | 23 * +----------------+-------+---------------------------+----------------+-----------------------------+ 24 * | ST_SYS_LED_OFF | | [tick > 0] | ST_SYS_LED_ON | tick = TICK_MAX | 25 * | | | | | put_event_actuator(LED_ON) | 26 * +----------------+-------+---------------------------+----------------+-----------------------------+ 27 * 28 */ 29 30 typedef enum task_system_ev { 31 EV_ST_BLANK 32 } task_system_ev_t; 33 34 typedef enum task_system_st { 35 ST_SYS_LED_ON, 36 ST_SYS_LED_OFF 37 } task_system_st_t; 38 39 typedef struct { 40 uint32_t tick; 41 task_system_st_t state; 42 task_system_ev_t event; 43 bool flag; 44 } task_system_dta_t; 45 46 extern task_system_dta_t task_system_dta; 47 48 #ifdef __cplusplus 49 } 50 #endif 51 52 #endif /* TASK_INC_TASK_SYSTEM_ATTRIBUTE_H_ */
