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 #include "main.h" 9 10 #include "logger.h" 11 #include "dwt.h" 12 13 #include "board.h" 14 #include "app.h" 15 #include "task_sensor_attribute.h" 16 #include "task_system_attribute.h" 17 #include "task_system_interface.h" 18 19 #define G_TASK_SEN_CNT_INIT 0ul 20 #define G_TASK_SEN_TICK_CNT_INI 0ul 21 22 #define DEL_BTN_XX_MIN 0ul 23 #define DEL_BTN_XX_MED 25ul 24 #define DEL_BTN_XX_MAX 50ul 25 26 const task_sensor_cfg_t task_sensor_cfg_list[] = { 27 }; 28 29 #define SENSOR_CFG_QTY (sizeof(task_sensor_cfg_list)/sizeof(task_sensor_cfg_t)) 30 31 task_sensor_dta_t task_sensor_dta_list[] = {0}; 32 33 #define SENSOR_DTA_QTY (sizeof(task_sensor_dta_list)/sizeof(task_sensor_dta_t)) 34 35 void task_sensor_statechart(void); 36 37 uint32_t g_task_sensor_cnt; 38 39 // this variable is incremented by 1 on every ms by HAL_SysTick 40 volatile uint32_t g_task_sensor_tick_cnt; 41 42 void task_sensor_init(void *parameters) 43 { 44 // task_sensor_dta_t *p_task_sensor_dta; 45 // task_sensor_st_t state; 46 // task_sensor_ev_t event; 47 48 LOGGER_INFO("Initializing `task_sensor`..."); 49 50 g_task_sensor_cnt = G_TASK_SEN_CNT_INIT; 51 52 for (uint32_t index = 0; SENSOR_DTA_QTY > index; index++) 53 { 54 /* Init every associated sensor variables */ 55 // p_task_sensor_dta = &task_sensor_dta_list[index]; 56 57 // ... 58 } 59 60 LOGGER_INFO("Done initializing `task_sensor`"); 61 } 62 63 void task_sensor_update(void *parameters) 64 { 65 bool b_time_update_required = false; 66 67 __asm("CPSID i"); 68 if (G_TASK_SEN_TICK_CNT_INI < g_task_sensor_tick_cnt) 69 { 70 g_task_sensor_tick_cnt--; 71 b_time_update_required = true; 72 } 73 __asm("CPSIE i"); 74 75 while (b_time_update_required) 76 { 77 g_task_sensor_cnt++; 78 79 task_sensor_statechart(); 80 81 __asm("CPSID i"); 82 if (G_TASK_SEN_TICK_CNT_INI < g_task_sensor_tick_cnt) 83 { 84 g_task_sensor_tick_cnt--; 85 b_time_update_required = true; 86 } 87 else 88 { 89 b_time_update_required = false; 90 } 91 __asm("CPSIE i"); 92 } 93 } 94 95 void task_sensor_statechart(void) 96 { 97 uint32_t index; 98 const task_sensor_cfg_t *p_task_sensor_cfg; 99 task_sensor_dta_t *p_task_sensor_dta; 100 101 for (index = 0; SENSOR_DTA_QTY > index; index++) 102 { 103 p_task_sensor_cfg = &task_sensor_cfg_list[index]; 104 p_task_sensor_dta = &task_sensor_dta_list[index]; 105 106 // unused 107 (void) p_task_sensor_cfg; 108 (void) p_task_sensor_dta; 109 } 110 }
