tdse-tp3_04-interactive_menu

Index Commits Files Refs
commit 38ecd4daf45152eaaff755fcc345419e8eff6dd2
parent b78016af117bbbf7130384d9cee7ea6d80f9e4ab
Author: Martin Kloeckner <mjkloeckner@gmail.com>
Date:   Mon, 20 Oct 2025 00:00:19 -0300

Updated menu statechart table

Diffstat:
Mapp/inc/task_menu_attribute.h | 75++++++++++++++++++++++++++++++++++++++++++++-------------------------------
1 file changed, 44 insertions(+), 31 deletions(-)
diff --git a/app/inc/task_menu_attribute.h b/app/inc/task_menu_attribute.h
@@ -50,37 +50,50 @@ extern "C" {
 /********************** typedef **********************************************/
 /*
 * Menu Statechart - State Transition Table
-* Every state is also a state machine (nested state machines)
-* +---------------------+--------------------+---------+---------------------+---------+
-* | Current State       | Event (Parameters) | [Guard] | Next State          | Actions |
-* +=====================+====================+=========+=====================+=========+
-* | INICIAL             |                    |         | ST_MEN_MOTOR_SELECT |         |
-* +---------------------+--------------------+---------+---------------------+---------+
-* | ST_MEN_MOTOR_SELECT | EV_MEN_ENTER_BTN   |         | ST_MEN_MOTOR_POWER  |         |
-* +---------------------+--------------------+---------+---------------------+---------+
-* | ST_MEN_MOTOR_POWER  | EV_MEN_NEXT_BTN    |         | ST_MEN_MOTOR_SPEED  |         |
-* |                     | EV_MEN_BACK_BTN    |         | ST_MEN_MOTOR_SELECT |         |
-* +---------------------+--------------------+---------+---------------------+---------+
-* | ST_MEN_MOTOR_SPEED  | EV_MEN_NEXT_BTN    |         | ST_MEN_MOTOR_SPIN   |         |
-* |                     | EV_MEN_BACK_BTN    |         | ST_MEN_MOTOR_SELECT |         |
-* +---------------------+--------------------+---------+---------------------+---------+
-* | ST_MEN_MOTOR_SPIN   | EV_MEN_NEXT_BTN    |         | ST_MEN_MOTOR_POWER  |         |
-* |                     | EV_MEN_BACK_BTN    |         | ST_MEN_MOTOR_SELECT |         |
-* +---------------------+--------------------+---------+---------------------+---------+
-*
-* Menu Statechart - ST_MEN_MOTOR_SELECT - State Transition Table
-
-* +-----------------------------+--------------+---------+---------------------------------+--------------------+
-* | Current State               | Event        | [Guard] | Next State                      | Actions            |
-* +=============================+==============+=========+=================================+====================+
-* |                             | EV_NEXT_BTN  |         | ST_MEN_MOTOR_SELECT_MOTOR_2     |                    |
-* | ST_MEN_MOTOR_SELECT_MOTOR_1 |--------------+---------+---------------------------------+--------------------+
-* |                             | EV_ENTER_BTN |         | ST_MOTOR_POWER                  | selected_motor = 1 |
-* +-----------------------------+--------------+---------+---------------------------------+--------------------+
-* |                             | EV_NEXT_BTN  |         | ST_MEN_MOTOR_SELECT_MOTOR_1     |                    |
-* | ST_MEN_MOTOR_SELECT_MOTOR_2 |--------------+---------+---------------------------------+--------------------+
-* |                             | EV_ENTER_BTN |         | ST_MOTOR_POWER                  | selected_motor = 2 |
-* +-----------------------------+--------------+---------+---------------------------------+--------------------+
+* 
+* +------------------------+-------------------------+---------+-------------------------+----------------------------------------------------------------------+
+* | Current State          | Event                   | [Guard] | Next State              | Actions                                                              |
+* +------------------------+-------------------------+---------+-------------------------+----------------------------------------------------------------------+
+* | ST_MEN_MOTOR_INFO      | EV_MEN_ENT_ACTIVE       |         | ST_MEN_MOTOR_SELECT     | sel_motor = 1                                                        |
+* | ST_MEN_MOTOR_INFO      | EV_MEN_NEX_ACTIVE       |         | ST_MEN_MOTOR_SELECT     | sel_motor = 1                                                        |
+* | ST_MEN_MOTOR_INFO      | EV_MEN_ESC_ACTIVE       |         | ST_MEN_MOTOR_SELECT     | sel_motor = 1                                                        |
+* | ST_MEN_MOTOR_INFO      | EV_MEN_INACTIVE_TIMEOUT |         | ST_MEN_MOTOR_INFO       |                                                                      |
+* +------------------------+-------------------------+---------+-------------------------+----------------------------------------------------------------------+
+* | ST_MEN_MOTOR_SELECT    | EV_MEN_ENT_ACTIVE       |         | ST_MEN_MOTOR_POWER      |                                                                      |
+* | ST_MEN_MOTOR_SELECT    | EV_MEN_NEX_ACTIVE       |         | ST_MEN_MOTOR_SELECT     | sel_motor = (sel_motor % motor_qty) + 1                              |
+* | ST_MEN_MOTOR_SELECT    | EV_MEN_ESC_ACTIVE       |         | ST_MEN_MOTOR_INFO       |                                                                      |
+* | ST_MEN_MOTOR_SELECT    | EV_MEN_INACTIVE_TIMEOUT |         | ST_MEN_MOTOR_INFO       |                                                                      |
+* +------------------------+-------------------------+---------+-------------------------+----------------------------------------------------------------------+
+* | ST_MEN_MOTOR_POWER     | EV_MEN_ENT_ACTIVE       |         | ST_MEN_MOTOR_POWER_SEL  | new_sel_motor_pow = sel_motor_pow                                    |
+* | ST_MEN_MOTOR_POWER     | EV_MEN_NEX_ACTIVE       |         | ST_MEN_MOTOR_SPEED      |                                                                      |
+* | ST_MEN_MOTOR_POWER     | EV_MEN_ESC_ACTIVE       |         | ST_MEN_MOTOR_SELECT     |                                                                      |
+* | ST_MEN_MOTOR_POWER     | EV_MEN_INACTIVE_TIMEOUT |         | ST_MEN_MOTOR_INFO       |                                                                      |
+* +------------------------+-------------------------+---------+-------------------------+----------------------------------------------------------------------+
+* | ST_MEN_MOTOR_POWER_SEL | EV_MEN_ENT_ACTIVE       |         | ST_MEN_MOTOR_POWER      | sel_motor_pow = new_sel_motor_pow                                    |
+* | ST_MEN_MOTOR_POWER_SEL | EV_MEN_NEX_ACTIVE       |         | ST_MEN_MOTOR_POWER_SEL  | new_sel_motor_pow = !new_sel_motor_pow                               |
+* | ST_MEN_MOTOR_POWER_SEL | EV_MEN_ESC_ACTIVE       |         | ST_MEN_MOTOR_POWER      |                                                                      |
+* | ST_MEN_MOTOR_POWER_SEL | EV_MEN_INACTIVE_TIMEOUT |         | ST_MEN_MOTOR_INFO       |                                                                      |
+* +------------------------+-------------------------+---------+-------------------------+----------------------------------------------------------------------+
+* | ST_MEN_MOTOR_SPEED     | EV_MEN_ENT_ACTIVE       |         | ST_MEN_MOTOR_SPEED_SEL  | new_sel_motor_speed = sel_motor_speed                                |
+* | ST_MEN_MOTOR_SPEED     | EV_MEN_NEX_ACTIVE       |         | ST_MEN_MOTOR_SPIN       |                                                                      |
+* | ST_MEN_MOTOR_SPEED     | EV_MEN_ESC_ACTIVE       |         | ST_MEN_MOTOR_SELECT     |                                                                      |
+* | ST_MEN_MOTOR_SPEED     | EV_MEN_INACTIVE_TIMEOUT |         | ST_MEN_MOTOR_INFO       |                                                                      |
+* +------------------------+-------------------------+---------+-------------------------+----------------------------------------------------------------------+
+* | ST_MEN_MOTOR_SPEED_SEL | EV_MEN_ENT_ACTIVE       |         | ST_MEN_MOTOR_SPEED      | sel_motor_speed = new_sel_motor_speed                                |
+* | ST_MEN_MOTOR_SPEED_SEL | EV_MEN_NEX_ACTIVE       |         | ST_MEN_MOTOR_SPEED_SEL  | new_sel_motor_speed = (new_sel_motor_speed + step) % max_motor_speed |
+* | ST_MEN_MOTOR_SPEED_SEL | EV_MEN_ESC_ACTIVE       |         | ST_MEN_MOTOR_SPEED      |                                                                      |
+* | ST_MEN_MOTOR_SPEED_SEL | EV_MEN_INACTIVE_TIMEOUT |         | ST_MEN_MOTOR_INFO       |                                                                      |
+* +------------------------+-------------------------+---------+-------------------------+----------------------------------------------------------------------+
+* | ST_MEN_MOTOR_SPIN      | EV_MEN_ENT_ACTIVE       |         | ST_MEN_MOTOR_SPIN_SEL   | new_sel_motor_spin = sel_motor_spin                                  |
+* | ST_MEN_MOTOR_SPIN      | EV_MEN_NEX_ACTIVE       |         | ST_MEN_MOTOR_POWER      |                                                                      |
+* | ST_MEN_MOTOR_SPIN      | EV_MEN_ESC_ACTIVE       |         | ST_MEN_MOTOR_SELECT     |                                                                      |
+* | ST_MEN_MOTOR_SPIN      | EV_MEN_INACTIVE_TIMEOUT |         | ST_MEN_MOTOR_INFO       |                                                                      |
+* +------------------------+-------------------------+---------+-------------------------+----------------------------------------------------------------------+
+* | ST_MEN_MOTOR_SPIN_SEL  | EV_MEN_ENT_ACTIVE       |         | ST_MEN_MOTOR_SPIN       | sel_motor_spin = new_sel_motor_spin                                  |
+* | ST_MEN_MOTOR_SPIN_SEL  | EV_MEN_NEX_ACTIVE       |         | ST_MEN_MOTOR_SPIN_SEL   | new_sel_motor_spin = !new_sel_motor_spin                             |
+* | ST_MEN_MOTOR_SPIN_SEL  | EV_MEN_ESC_ACTIVE       |         | ST_MEN_MOTOR_SPIN       |                                                                      |
+* | ST_MEN_MOTOR_SPIN_SEL  | EV_MEN_INACTIVE_TIMEOUT |         | ST_MEN_MOTOR_INFO       |                                                                      |
+* +------------------------+-------------------------+---------+-------------------------+----------------------------------------------------------------------+
 */
 
 /* Events to excite Task Menu */