The RKH framework incorporates CMake as a tool for managing the building of the source code project. The RKH CMake project is intended for two purposes, to develop new services, features and examples of RKH, and to create reactive applications based on it.
Fixed doxygen warnings.
Added a tutorial to the reference manual that explains how to develop applications based on RKH using CMake.
Bug fixes
Fixed a critical error in rkh_trc_open() when using Linux platform.
Version 3.3.00
Release Date: 2021-19-02
New features & improvements
Enhanced reference manual and added release notes to README.md
Added a Python script to automate the deploy and release process. Most of them are written in Python in order to achieve more flexible and maintainable scripts than those written in Bash. The project changes must be added to the file changelog.json according to its format from now on
Allowed applications to run when trace output was configured as file. It modified the libbsp for Linux platform
Added code owners file
Enhanced periodic timer operations
Added several CI workflows to execute static code analyzers, to run Ceedling unit test, to check code compliance and to test build and execution of a demo for Linux platform. These workflows were configurated to run on Pull Request and Push events. The CI platform Travis was replaced with GitHub actions
Added gitlint configuration file
Added STM32 port critical section priority flexible configuration
Fixed makefile of cross demo Blinky for Linux platform
Fixed macros RKH_TR_FWK_EXE_FUN and RKH_TR_FWK_SYNC_EVT for recording sync event traces
Fixed macro RKH_TR_FWK_EPOOL for recording evtPool trace
Function isCompletionTrn() affected by RKH_CFG_SMA_HCAL_EN when it was enabled
API changes
Version 3.2.03
Release Date: 2019-28-08
New features & improvements
Added support for null transitions on init a state machine
Added bsp for blinky project on Linux platform
Added TimeEvt type for declaring time events
Added support for final state in state machine's region
Enhanced quick reference and doc related to timers
Bug fixes
Fixed tick rate for Linux bsp
Fixed stop method of timer module
Fixed a race condition in Linux port
API changes
Added period to timer start method and a return flag to stop method
Version 3.2.00
Release Date: 2019-09-01
New features & improvements
Added Ceedling, LCOV, Codecov, Cppcheck, Uno and Travis CI support!. The main purpose of this is to improve the quality of source code, by means of Continuous Integration process
Included a new alternative in license scheme: GPLv3 + linking exception
Added Publish-Subscriber module. It addresses the specific issue of how to notify a set of interested active objects (clients) in a timely way that a value that they care about has changed. The basic solution offered by this module is to have the clients 'subscribe' to the server to be notified about the value in question according to the policy: 'when the value changes, receiving a proper event carrying the value of interest
From this version, you must include the files rkhfwk_rdygrp.h and rkhfwk_rdygrp.c located in rkh/source/fwk/inc and rkh/source/fwk/src respectively, to maintain the backward-compatiblity with the existing application projects
Version 3.1.00
Release Date: 2018-05-03
New features & improvements
Added support for using any kind of vertex as target of a default transition in both composite state region or root region, according to UML 2.x.
The RKH_TE_SM_NTRNACT trace record is now deprecated and not recommended for new designs. It remains supported for backwards compatibility
Deleted RKH_INIT_ACT_T type and deprecated its config option RKH_CFG_SMA_INIT_ARG_SMA_EN. Therefore, was replaced RKH_INIT_ACT_T by RKH_TRN_ACT_T and was fixed every demo application according to that
Version 3.0.00
Release Date: 2017-08-01
New features & improvements
Added unit test cases of trace, sma and fwk modules
Added test harness of framework's modules to test for
Added Ceedling submodule
Rearranged files and directories (modules, ports and demo apps)
Improved trace module
Improved doc files (doxygen) and comments
Version 2.4.06
Release Date: 2016-12-14
New features & improvements
Improved doc files (doxygen) and comments
Improved template of C implementation file
Deleted template_aoAct.c/.h
Changed the template files for active object definition
Rearranged the blinky.c and blinky.h files
Bug fixes
After executing the SM's initial action the trace event RKH_TE_SM_INIT is sent to trazer, to avoid trace events without symbols which are frequently sent within initial action
Version 2.4.05
Release Date: 2016-04-25
New features & improvements
Added support for code beautifier Uncrustify in /tools/uncrustify, to be used as a code formatting tool according to RKH rules. Also, included source and header file templates
Reformatted source and header files in /sources and /sources/include
Added support for TDD with Unity + Cmock + Trazer. The directory /tests includes the related files
Refactored trace module (/tests/trace), state machine module (/tests/sm) and trazer (/tests/utrazer) through the test harness. It implies various performance improvements, memory usage reduction, better documentation, and learning tests
Removed NULL macro usage from rkh.h file, and thus <stdlib.h> inclusion
Improved doc files (doxygen) and comments
Added deprecated list
Enhanced module section by including the configuration, trace, test, and API referecen manual sections
Added test suite of state machine module
Multiple enabled transitions (same trigger) with mutually exclusive guards according to UML is now supported. This usage of this feature is demonstrated through various and provided learning tests
Completion transition (also as known as null transition) and completion event in simple and composite states is now supported. This usage of this feature is demonstrated through various and provided learning tests
Final state in composite states is now supported. This usage of this feature is demonstrated through various and provided learning tests
The default transition (also as known as initial transition) in a composite state can have its own associated behavior (effect) is now supported. This usage of this feature is demonstrated through various and provided learning tests
Added macro RKH_CREATE_COMP_REGION_STATE() to instantiate a composite state with a single region, including its own initial pseudostate, history (shallow or deep type) pseudostate, as well as its own final state. This usage of this feature is demonstrated through various and provided learning tests
Multiple enabled transitions (same trigger) with mutually exclusive guards according to UML is now supported. This usage of this feature is demonstrated through various and provided learning tests
A state machine is now allowed to be instantiated regardless of an active object instance. It is very useful to create reactive parts (or orthogonal regions) of composite active objects. Also, by means of RKH_CFG_SMA_SM_CONST_EN option a state machine instance could be allocated into ROM or RAM. It is useful to dynamic allocation. This usage of this feature is demonstrated through various and provided learning tests
Polimorphic active objects with 'virtual. table (in C) is now supported. It is composed as activate, task, post_fifo, and post_lifo operations. This usage of this feature is demonstrated through various and provided learning tests
Added runtime constructors for active object and state machine classes for multiple and single instances. This usage of this feature is demonstrated through various and provided learning tests
Added RKH_CFG_SMA_VFUNCT_EN and RKH_CFG_SMA_RT_CTOR_EN options to set the active object as polymorphic and to use the runtime constructors of RKH_SMA_T/RKH_SM_T classes. This usage of this feature is demonstrated through various and provided learning tests
Template files for dealing with implementation and specification of active objects is now added to /template
Added RKH_DECLARE_TR_TBL(), RKH_INIT_BASIC_STATE(), and RKH_INIT_COMPOSITE_STATE() macros to derive a state (basic or composite) class to any other using single inheritance in C by literally embedding the base type (or super-class), RKHSBSC_T or RKHSCMP_T, as the first member of the derived structure
Bug fixes
Fixed a old bug at rkh_sm_dispatch() function in rkh.c file related with entry and exited states on a loop transition. The implemented solution have adopted the UML's local transition feature
Added to RKH_ST_T structure (base structure for basic, composite and submachine states) the 'trtbl' member (pointer to transition table), as new basic attribute
Added arbitrary trace records to be used in the application space
Added RKH_CFG_TRC_USER_TRACE_EN configuration option for enabling/disabling the user trace records
Added RKH_TR_FWK_TUSR() macro for sending to Trazer a symbolic name of the user-defined trace event
Moved configurations RKH_CFGPORT_SMA_THREAD_EN, RKH_CFGPORT_SMA_THREAD_DATA_EN, RKH_CFGPORT_NATIVE_SCHEDULER_EN, RKH_CFGPORT_NATIVE_EQUEUE_EN, RKH_CFGPORT_NATIVE_DYN_EVT_EN, and RKH_CFGPORT_REENTRANT_EN from rkhcfg.h to rkhport.h file to achieve the platform independence in rkhcfg.h file
Added macro RKH_TR_FWK_TCFG() to send the trace configuration parameters to Trazer
Added runtime filter of active objects to emmit or suppress all events from a specified AO, by means of RKH_FILTER_ON_SMA() and RKH_FILTER_OFF_SMA() macros. See the main.c demo file. Used to clean up the trazer output
Added RKH_TRC_FLUSH() macro in RKH_TRCR_RKH_OBJ() and RKH_TRCR_RKH_SIG()
Added CCE() macro
Added RKH_RESERVE() macro
Added dtcptrc.c and tcptrc.h files to demo projects
Added support to trazer program in ahsm and subm projects
Added RKH_TRC_OPEN, RKH_TRC_CLOSE, and RKH_TRC_FLUSH
Added state's abstract data by means of single inheritance
Update demo and doc files
Version 1.1.02
Release Date: 2011-05-05
New features & improvements
Changed external transition to local transition support. Therefore, just modified rkh_define_ex_en_states() macro to support this feature according to UML 2.0
Modified demo directory to test local transition feature and added some improvements to main.c file
Bug fixes
Fixed and update doc files
Version 1.0.00
Release Date: 2011-05-03
New features & improvements
Added rkh_sm_else function to be used when if all the guards on the other branches are false
Changed conditional (branch) pseudostate related macros. Therefore, the demo and doc files too
Changed macros RKH_CREATE_*_STATE, RKH_CREATE_TRANS_TABLE and RKH_END_TRANS_TABLE
Changed demo files
Bug fixes
Fixed VC08 project settings
Generated on Fri Jun 25 2021 12:16:22 for RKH by 1.9.2