tdse-tp2_03-model_integration

Index Commits Files Refs README
commit e129b91dd1913565da8231b4b34ae811d26c4ad9
parent c14f491f54477dedf18f3087e22d9315a5caf027
Author: Martin Kloeckner <mjkloeckner@gmail.com>
Date:   Fri,  3 Oct 2025 13:48:41 -0300

Follow Michael Barr C standard

Also change file format to unix

Diffstat:
Mapp/inc/task_actuator_attribute.h | 152+++++++++++++++++++++++++++++++++++++++++--------------------------------------
Mapp/inc/task_sensor_attribute.h | 10+++++-----
Mapp/src/task_system_interface.c | 227++++++++++++++++++++++++++++++++++++++++---------------------------------------
3 files changed, 199 insertions(+), 190 deletions(-)
diff --git a/app/inc/task_actuator_attribute.h b/app/inc/task_actuator_attribute.h
@@ -49,92 +49,98 @@ extern "C" {
 
 /********************** typedef **********************************************/
 /* Actuator Statechart - State Transition Table */
-/*     ------------------------+-----------------------+-----------------------+-----------------------+------------------------
- *     | Current               | Event                 |                       | Next                  |                       |
- *     | State                 | (Parameters)          | [Guard]               | State                 | Actions               |
- *     |=======================+=======================+=======================+=======================+=======================|
- *     | INICIAL               |                       |                       | ST_LED_XX_OFF         | led = LED_OFF         |
- *     |                       |                       |                       |                       | op_led(led)           |
- *     |-----------------------+-----------------------+-----------------------+-----------------------+-----------------------|
- *     | ST_LED_XX_OFF         | EV_LED_XX_ON          |                       | ST_LED_XX_ON          | led = LED_ON          |
- *     |                       |                       |                       |                       | op_led(led)           |
- *     |                       |-----------------------+-----------------------+-----------------------+-----------------------|
- *     |                       | EV_LED_XX_BLINK       |                       | ST_LED_XX_BLINK_ON    | tick = tick_max       |
- *     |                       |                       |                       |                       | led = LED_ON            |
- *     |                       |                       |                       |                       | op_led(led)           |
- *     |                       |-----------------------+-----------------------+-----------------------+-----------------------|
- *     |                       | EV_LED_XX_PULSE       |                       | ST_LED_XX_PULSE       | tick = tick_max       |
- *     |                       |                       |                       |                       | led = LED_ON            |
- *     |                       |                       |                       |                       | op_led(led)           |
- *     |-----------------------+-----------------------+-----------------------+-----------------------+-----------------------|
- *     | ST_LED_XX_ON          | EV_LED_XX_OFF         |                       | ST_LED_XX_OFF            | led = LED_OFF         |
- *     |                       |                       |                       |                       | op_led(led)           |
- *     |-----------------------+-----------------------+-----------------------+-----------------------+-----------------------|
- *     | ST_LED_XX_BLINK_ON    | EV_LED_XX_OFF         |                       | ST_LED_XX_OFF         | led = LED_OFF         |
- *     |                       |                       |                       |                       | op_led(led)           |
- *     |                       +-----------------------+-----------------------+-----------------------+-----------------------|
- *     |                       | EV_LED_XX_ON          |                       | ST_LED_XX_ON          | led = LED_ON          |
- *     |                       |                       |                       |                       | op_led(led)           |
- *     |                       +-----------------------+-----------------------+-----------------------+-----------------------|
- *     |                       |                       | [tick == 0]           | ST_LED_XX_BLINK_OFF   | tick = tick_max       |
- *     |                       |                       |                       |                       | led = LED_OFF         |
- *     |                       |                       |                       |                       | op_led(led)           |
- *     |                       +-----------------------+-----------------------+-----------------------+-----------------------|
- *     |                       |                       | [tick >  0]           | ST_LED_XX_BLINK_ON    | tick--                |
- *     |-----------------------+-----------------------+-----------------------+-----------------------+-----------------------|
- *     | ST_LED_XX_BLINK_OFF   | EV_LED_XX_OFF         |                       | ST_LED_XX_OFF         | led = LED_OFF         |
- *     |                       |                       |                       |                       | op_led(led)           |
- *     |                       +-----------------------+-----------------------+-----------------------+-----------------------|
- *     |                       | EV_LED_XX_ON          |                       | ST_LED_XX_ON          | led = LED_ON          |
- *     |                       |                       |                       |                       | op_led(led)           |
- *     |                       +-----------------------+-----------------------+-----------------------+-----------------------|
- *     |                       |                       | [tick >  0]           | ST_LED_XX_BLINK_OFF   | tick--                |
- *     |                       +-----------------------+-----------------------+-----------------------+-----------------------|
- *     |                       |                       | [tick == 0]           | ST_LED_XX_BLINK_ON    | tick = tick_max       |
- *     |                       |                       |                       |                       | led = LED_ON          |
- *     |                       |                       |                       |                       | op_led(led)           |
- *     |-----------------------+-----------------------+-----------------------+-----------------------+-----------------------|
- *     | ST_LED_XX_PULSE       |                       | [tick == 0]           | ST_LED_XX_OFF         | tick = tick_max       |
- *     |                       |                       |                       |                       | led = LED_OFF         |
- *     |                       |                       |                       |                       | op_led(led)           |
- *     |-----------------------+-----------------------+-----------------------+-----------------------+-----------------------|
- *     |                       |                       | [tick >  0]           | ST_LED_XX_PULSE       | tick--                |
- *     ------------------------+-----------------------+-----------------------+-----------------------+------------------------ */
+/* +-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
+ * | Current               | Event                 |                       | Next                  |                       |
+ * | State                 | (Parameters)          | [Guard]               | State                 | Actions               |
+ * |=======================+=======================+=======================+=======================+=======================|
+ * | INICIAL               |                       |                       | ST_LED_XX_OFF         | led = LED_OFF         |
+ * |                       |                       |                       |                       | op_led(led)           |
+ * |-----------------------+-----------------------+-----------------------+-----------------------+-----------------------|
+ * | ST_LED_XX_OFF         | EV_LED_XX_ON          |                       | ST_LED_XX_ON          | led = LED_ON          |
+ * |                       |                       |                       |                       | op_led(led)           |
+ * |                       |-----------------------+-----------------------+-----------------------+-----------------------|
+ * |                       | EV_LED_XX_BLINK       |                       | ST_LED_XX_BLINK_ON    | tick = tick_max       |
+ * |                       |                       |                       |                       | led = LED_ON          |
+ * |                       |                       |                       |                       | op_led(led)           |
+ * |                       |-----------------------+-----------------------+-----------------------+-----------------------|
+ * |                       | EV_LED_XX_PULSE       |                       | ST_LED_XX_PULSE       | tick = tick_max       |
+ * |                       |                       |                       |                       | led = LED_ON          |
+ * |                       |                       |                       |                       | op_led(led)           |
+ * |-----------------------+-----------------------+-----------------------+-----------------------+-----------------------|
+ * | ST_LED_XX_ON          | EV_LED_XX_OFF         |                       | ST_LED_XX_OFF            | led = LED_OFF        |
+ * |                       |                       |                       |                       | op_led(led)           |
+ * |-----------------------+-----------------------+-----------------------+-----------------------+-----------------------|
+ * | ST_LED_XX_BLINK_ON    | EV_LED_XX_OFF         |                       | ST_LED_XX_OFF         | led = LED_OFF         |
+ * |                       |                       |                       |                       | op_led(led)           |
+ * |                       +-----------------------+-----------------------+-----------------------+-----------------------|
+ * |                       | EV_LED_XX_ON          |                       | ST_LED_XX_ON          | led = LED_ON          |
+ * |                       |                       |                       |                       | op_led(led)           |
+ * |                       +-----------------------+-----------------------+-----------------------+-----------------------|
+ * |                       |                       | [tick == 0]           | ST_LED_XX_BLINK_OFF   | tick = tick_max       |
+ * |                       |                       |                       |                       | led = LED_OFF         |
+ * |                       |                       |                       |                       | op_led(led)           |
+ * |                       +-----------------------+-----------------------+-----------------------+-----------------------|
+ * |                       |                       | [tick >  0]           | ST_LED_XX_BLINK_ON    | tick--                |
+ * |-----------------------+-----------------------+-----------------------+-----------------------+-----------------------|
+ * | ST_LED_XX_BLINK_OFF   | EV_LED_XX_OFF         |                       | ST_LED_XX_OFF         | led = LED_OFF         |
+ * |                       |                       |                       |                       | op_led(led)           |
+ * |                       +-----------------------+-----------------------+-----------------------+-----------------------|
+ * |                       | EV_LED_XX_ON          |                       | ST_LED_XX_ON          | led = LED_ON          |
+ * |                       |                       |                       |                       | op_led(led)           |
+ * |                       +-----------------------+-----------------------+-----------------------+-----------------------|
+ * |                       |                       | [tick >  0]           | ST_LED_XX_BLINK_OFF   | tick--                |
+ * |                       +-----------------------+-----------------------+-----------------------+-----------------------|
+ * |                       |                       | [tick == 0]           | ST_LED_XX_BLINK_ON    | tick = tick_max       |
+ * |                       |                       |                       |                       | led = LED_ON          |
+ * |                       |                       |                       |                       | op_led(led)           |
+ * |-----------------------+-----------------------+-----------------------+-----------------------+-----------------------|
+ * | ST_LED_XX_PULSE       |                       | [tick == 0]           | ST_LED_XX_OFF         | tick = tick_max       |
+ * |                       |                       |                       |                       | led = LED_OFF         |
+ * |                       |                       |                       |                       | op_led(led)           |
+ * |-----------------------+-----------------------+-----------------------+-----------------------+-----------------------|
+ * |                       |                       | [tick >  0]           | ST_LED_XX_PULSE       | tick--                |
+ * +-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+ */
 
 /* Events to excite Task Actuator */
-typedef enum task_actuator_ev {EV_LED_XX_OFF,
-                               EV_LED_XX_ON,
-                               EV_LED_XX_NOT_BLINK,
-                               EV_LED_XX_BLINK,
-                               EV_LED_XX_PULSE} task_actuator_ev_t;
+typedef enum {
+    EV_LED_XX_OFF,
+    EV_LED_XX_ON,
+    EV_LED_XX_NOT_BLINK,
+    EV_LED_XX_BLINK,
+    EV_LED_XX_PULSE
+} task_actuator_ev_t;
 
 /* States of Task Actuator */
-typedef enum task_actuator_st {ST_LED_XX_OFF,
-                               ST_LED_XX_ON,
-                               ST_LED_XX_BLINK_ON,
-                               ST_LED_XX_BLINK_OFF,
-                               ST_LED_XX_PULSE} task_actuator_st_t;
+typedef enum {
+    ST_LED_XX_OFF,
+    ST_LED_XX_ON,
+    ST_LED_XX_BLINK_ON,
+    ST_LED_XX_BLINK_OFF,
+    ST_LED_XX_PULSE
+} task_actuator_st_t;
 
 /* Identifier of Task Actuator */
-typedef enum task_actuator_id {ID_LED_A} task_actuator_id_t;
+typedef enum {
+    ID_LED_A
+} task_actuator_id_t;
 
 typedef struct
 {
-    task_actuator_id_t    identifier;
-    GPIO_TypeDef *        gpio_port;
-    uint16_t            pin;
-    GPIO_PinState        led_on;
-    GPIO_PinState        led_off;
-    uint32_t            tick_blink;
-    uint32_t            tick_pulse;
+    task_actuator_id_t identifier;
+    GPIO_TypeDef *gpio_port;
+    uint16_t pin;
+    GPIO_PinState led_on;
+    GPIO_PinState led_off;
+    uint32_t tick_blink;
+    uint32_t tick_pulse;
 } task_actuator_cfg_t;
 
 typedef struct
 {
-    uint32_t            tick;
-    task_actuator_st_t    state;
-    task_actuator_ev_t    event;
-    bool                flag;
+    uint32_t tick;
+    task_actuator_st_t state;
+    task_actuator_ev_t event;
+    bool flag;
 } task_actuator_dta_t;
 
 /********************** external data declaration ****************************/
diff --git a/app/inc/task_sensor_attribute.h b/app/inc/task_sensor_attribute.h
@@ -111,17 +111,17 @@ typedef enum
 typedef struct
 {
     task_sensor_id_t identifier;
-    GPIO_TypeDef *   gpio_port;
-    uint16_t         pin;
-    GPIO_PinState    pressed;
-    uint32_t         tick_max;
+    GPIO_TypeDef *gpio_port;
+    uint16_t pin;
+    GPIO_PinState pressed;
+    uint32_t tick_max;
     task_sensor_ev_t signal_up;
     task_sensor_ev_t signal_down;
 } task_sensor_cfg_t;
 
 typedef struct
 {
-    uint32_t         tick;
+    uint32_t tick;
     task_sensor_st_t state;
     task_sensor_ev_t event;
 } task_sensor_dta_t;
diff --git a/app/src/task_system_interface.c b/app/src/task_system_interface.c
@@ -1,112 +1,115 @@
-/*
- * Copyright (c) 2023 Juan Manuel Cruz <jcruz@fi.uba.ar> <jcruz@frba.utn.edu.ar>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * 3. Neither the name of the copyright holder nor the names of its
- *    contributors may be used to endorse or promote products derived from
- *    this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- *
- * @file   : task_system_interface.c
- * @date   : Set 26, 2023
- * @author : Juan Manuel Cruz <jcruz@fi.uba.ar> <jcruz@frba.utn.edu.ar>
- * @version    v1.0.0
- */
-
-/********************** inclusions *******************************************/
-/* Project includes */
-#include "main.h"
-
-/* Demo includes */
-#include "logger.h"
-#include "dwt.h"
-
-/* Application & Tasks includes */
-#include "board.h"
-#include "app.h"
-#include "task_system_attribute.h"
-
-/********************** macros and definitions *******************************/
-#define EVENT_UNDEFINED    (255)
-#define MAX_EVENTS        (16)
-
-/********************** internal data declaration ****************************/
-
-/********************** internal functions declaration ***********************/
-
-/********************** internal data definition *****************************/
-struct
-{
-    uint32_t    head;
-    uint32_t    tail;
-    uint32_t    count;
-    task_system_ev_t    queue[MAX_EVENTS];
-} queue_task_a;
-
-/********************** external data declaration ****************************/
-
-/********************** external functions definition ************************/
-void init_queue_event_task_system(void)
-{
-    uint32_t i;
-
-    queue_task_a.head = 0;
-    queue_task_a.tail = 0;
-    queue_task_a.count = 0;
-
-    for (i = 0; i < MAX_EVENTS; i++)
-        queue_task_a.queue[i] = EVENT_UNDEFINED;
-}
-
-void put_event_task_system(task_system_ev_t event)
-{
-    queue_task_a.count++;
-    queue_task_a.queue[queue_task_a.head++] = event;
-
-    if (MAX_EVENTS == queue_task_a.head)
-        queue_task_a.head = 0;
-}
-
-task_system_ev_t get_event_task_system(void)
-{
-    task_system_ev_t event;
-
-    queue_task_a.count--;
-    event = queue_task_a.queue[queue_task_a.tail];
-    queue_task_a.queue[queue_task_a.tail++] = EVENT_UNDEFINED;
-
-    if (MAX_EVENTS == queue_task_a.tail)
-        queue_task_a.tail = 0;
-
-    return event;
-}
-
-bool any_event_task_system(void)
-{
-  return (queue_task_a.head != queue_task_a.tail);
-}
-
-/********************** end of file ******************************************/
+/*
+ * Copyright (c) 2023 Juan Manuel Cruz <jcruz@fi.uba.ar> <jcruz@frba.utn.edu.ar>.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * 3. Neither the name of the copyright holder nor the names of its
+ *    contributors may be used to endorse or promote products derived from
+ *    this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ *
+ * @file   : task_system_interface.c
+ * @date   : Set 26, 2023
+ * @author : Juan Manuel Cruz <jcruz@fi.uba.ar> <jcruz@frba.utn.edu.ar>
+ * @version    v1.0.0
+ */
+
+/********************** inclusions *******************************************/
+/* Project includes */
+#include "main.h"
+
+/* Demo includes */
+#include "logger.h"
+#include "dwt.h"
+
+/* Application & Tasks includes */
+#include "board.h"
+#include "app.h"
+#include "task_system_attribute.h"
+
+/********************** macros and definitions *******************************/
+#define EVENT_UNDEFINED (255)
+#define MAX_EVENTS      (16)
+
+/********************** internal data declaration ****************************/
+
+/********************** internal functions declaration ***********************/
+
+/********************** internal data definition *****************************/
+struct
+{
+    uint32_t head;
+    uint32_t tail;
+    uint32_t count;
+    task_system_ev_t queue[MAX_EVENTS];
+} queue_task_a;
+
+/********************** external data declaration ****************************/
+
+/********************** external functions definition ************************/
+void init_queue_event_task_system(void)
+{
+    uint32_t i;
+
+    queue_task_a.head = 0;
+    queue_task_a.tail = 0;
+    queue_task_a.count = 0;
+
+    for (i = 0; i < MAX_EVENTS; i++) {
+        queue_task_a.queue[i] = EVENT_UNDEFINED;
+    }
+}
+
+void put_event_task_system(task_system_ev_t event)
+{
+    queue_task_a.count++;
+    queue_task_a.queue[queue_task_a.head++] = event;
+
+    if (MAX_EVENTS == queue_task_a.head) {
+        queue_task_a.head = 0;
+    }
+}
+
+task_system_ev_t get_event_task_system(void)
+{
+    task_system_ev_t event;
+
+    queue_task_a.count--;
+    event = queue_task_a.queue[queue_task_a.tail];
+    queue_task_a.queue[queue_task_a.tail++] = EVENT_UNDEFINED;
+
+    if (MAX_EVENTS == queue_task_a.tail) {
+        queue_task_a.tail = 0;
+    }
+
+    return event;
+}
+
+bool any_event_task_system(void)
+{
+    return (queue_task_a.head != queue_task_a.tail);
+}
+
+/********************** end of file ******************************************/