30 Commits

Author SHA1 Message Date
John Wellbelove
d884719098 Fixed all 'extra semicolon' warnings 2025-12-16 09:15:26 +00:00
John Wellbelove
2de4057021 Added transition_to member function to change state
Pulled out the core state change code to process_state_change
2025-08-05 18:48:15 +01:00
John Wellbelove
1d4dbc8976 Added etl::fsm_state_pack and corresponding constructor 2025-08-04 16:10:04 +01:00
John Wellbelove
ffc17160da Added support for self transition to etl::hfsm
Changed all instances of 'return STATE_ID' to 'return No_State_Change'
2025-05-27 17:07:58 +01:00
John Wellbelove
8710dfc4ff Fixed dereference of state pointer when null. 2024-03-20 23:27:18 +00:00
John Wellbelove
45fb06af3f Changes require for non-virtual messages 2023-08-18 20:51:36 +01:00
John Wellbelove
27e9e3c1b8 Added support for self transitions 2023-08-13 14:10:55 +01:00
John Wellbelove
b609548f38 Added ETL_OR_STD17 macro for the namespace for size() 2023-04-23 18:58:30 +01:00
John Wellbelove
8eabe5fb26 Fix test array sizes
C++14 compiler compatibility

Updated test run scripts

Changed some ETL_ASSERT macros to ETL_ASSERT_OR_RETURN

Changed unit test macros for C++20 compaibility

Updated test run scripts

Updated CMake files to allow C++ standard selection

Replaced ETL_ASSERT_AND_RETURN with ETL_ASSERT_OR_RETURN

Updated C++14 & C++20 unit test compatibility

Changed native char8_t check

Added optional optimisation argument to bash script
2023-03-25 12:16:59 +00:00
John Wellbelove
baa47d1c33 Updated copyright notice 2022-06-10 21:45:37 +01:00
John Wellbelove
f3bf0dc7fe Disable etl::begin(), etl::end() and etl::size() for ETL_NO_STL 2021-10-20 13:34:44 +01:00
John Wellbelove
b01d58a21c Adjustments to code and optimisations 2021-04-25 14:20:29 +01:00
John Wellbelove
7f2ea864e0 Minor changes & renames 2021-04-24 09:25:39 +01:00
Jeremy Overesch
2d3b063df6
Add hierarchical FSM capabilities to the FSM. (#374)
In order to work properly, states with no change need to return ifsm_state::NO_CHANGE rather than their given state id.
Otherwise, when an event isn't handled, it will return the parent state rather than the active state.
Also, in this implementation, a state cannot return a different state during the on_enter_state() function. An assert has been added to check for that.
2021-04-22 08:40:53 +01:00
John Wellbelove
dbfa71944f Abstracted unit test framework header 2021-03-05 13:52:34 +00:00
John Wellbelove
97a6e6a035 Squashed commit of the following:
commit 04ba91bcccc8e12867962bc3746665f430672a23
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Sat Feb 6 10:43:34 2021 +0000

    Updated shared message unit test

commit fababc5cf748073464b4294a50c201cb0aa4fa13
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Fri Feb 5 09:41:52 2021 +0000

    Updated FSM generator

commit ff287bcf0a833ca70933354b42b8b036b422ff81
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Fri Feb 5 09:35:56 2021 +0000

    Updated message router generator

commit 52724e1e62b55dad81e2f80dd656026d828b3214
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Thu Feb 4 13:06:50 2021 +0000

    Updated unit tests

commit 0d89105262aa050577ccc17ddc6eece9f4fc5d18
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Feb 2 20:09:35 2021 +0000

    Interim commit

commit ce8385ff24826103c7a55267ccf3f8a31f517e0b
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Feb 2 18:13:29 2021 +0000

    Squashed commit of the following:

    commit 007b56d03513887636b84fc246e57d6c4f8b777e
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Feb 2 18:09:51 2021 +0000

        Squashed commit of the following:

        commit 6107c4538be149137209d85e5f41031291bc7150
        Author: John Wellbelove <github@wellbelove.co.uk>
        Date:   Tue Feb 2 12:15:31 2021 +0000

            Added move constructor and move assignment to etl::shared_message

        commit c9a5716012db9b614ea67660ebf64dcb790ce571
        Author: John Wellbelove <github@wellbelove.co.uk>
        Date:   Sun Jan 31 12:36:29 2021 +0000

            Squashed commit of the following:

            commit e5f4eb6fb38c337c82fcc250f17a8f21eb788975
            Author: John Wellbelove <github@wellbelove.co.uk>
            Date:   Sun Jan 31 12:34:49 2021 +0000

                Squashed commit of the following:

                commit 23c5f1d3f9b13ff9e46ce3de96aefeb655d5ed97
                Author: John Wellbelove <github@wellbelove.co.uk>
                Date:   Sun Jan 31 12:32:35 2021 +0000

                    Fixed rollover error for etl::queue_spsc_atomic

                    Added 'required_alignment' parameter to 'allocate' for etl::imemeory_block_allocator.
                    Updated QueuedMessageRouter example

    commit e5f4eb6fb38c337c82fcc250f17a8f21eb788975
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Sun Jan 31 12:34:49 2021 +0000

        Squashed commit of the following:

        commit 23c5f1d3f9b13ff9e46ce3de96aefeb655d5ed97
        Author: John Wellbelove <github@wellbelove.co.uk>
        Date:   Sun Jan 31 12:32:35 2021 +0000

            Fixed rollover error for etl::queue_spsc_atomic

            Added 'required_alignment' parameter to 'allocate' for etl::imemeory_block_allocator.
            Updated QueuedMessageRouter example

commit c9a5716012db9b614ea67660ebf64dcb790ce571
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Sun Jan 31 12:36:29 2021 +0000

    Squashed commit of the following:

    commit e5f4eb6fb38c337c82fcc250f17a8f21eb788975
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Sun Jan 31 12:34:49 2021 +0000

        Squashed commit of the following:

        commit 23c5f1d3f9b13ff9e46ce3de96aefeb655d5ed97
        Author: John Wellbelove <github@wellbelove.co.uk>
        Date:   Sun Jan 31 12:32:35 2021 +0000

            Fixed rollover error for etl::queue_spsc_atomic

            Added 'required_alignment' parameter to 'allocate' for etl::imemeory_block_allocator.
            Updated QueuedMessageRouter example
2021-02-07 11:02:49 +00:00
John Wellbelove
4bcd734dad Added ETL_ASSERT for out-of-order state list. 2020-12-02 13:45:07 +00:00
John Wellbelove
3440c463fa etl::fsm now reports itself as a consumer of messages. 2020-09-25 13:34:28 +01:00
John Wellbelove
83347ccfdd Work in progress 2020-01-09 11:15:50 +00:00
John Wellbelove
452daf23b9 Updated test example 2019-06-05 13:32:56 +01:00
John Wellbelove
bd008350a2 Merge remote-tracking branch 'origin/feature/changed_include_paths' into development
# Conflicts:
#	include/etl/version.h
2018-07-28 21:55:27 +01:00
John Wellbelove
3fdf3e6b1a Merge remote-tracking branch 'origin/feature/no_stl' into development
# Conflicts:
#	include/etl/private/ivectorpointer.h
#	test/test_vector_pointer.cpp
2018-07-22 20:51:03 +01:00
John Wellbelove
9ce21fb071 Added tests for recursive messages. 2018-06-17 21:10:48 +01:00
John Wellbelove
a742749849 Merge branch 'development' 2017-11-01 09:33:17 +00:00
John Wellbelove
2e5cc0eb4d FSM, Router and bus implementations. 2017-08-03 23:31:50 +01:00
John Wellbelove
12148f075f Turned FSM from a template to a normal class. 2017-07-31 16:48:32 +01:00
John Wellbelove
f70850f7f5 Lastest FSM and router changes.
Added message_bus.
Created generators for largest and smallest.
2017-07-28 20:34:58 +01:00
John Wellbelove
73da59ad17 Integrated FSM and message router classes.
Fixed GCC compatibility issue.
Added on_enter_state() return tests.
2017-07-21 20:11:02 +01:00
John Wellbelove
7db12ea0fd Integrated FSM and message router classes. 2017-07-21 20:11:02 +01:00
John Wellbelove
04a9cb7bba Changed FSM to be based on message router 2017-07-21 20:11:02 +01:00