Dear NXP Rapid-IoT users,
Here is another example demonstrating FreeRTOS capabilities for NXP Rapid-IoT and how to display menus using the ui manager module.
(please find the attached code below)
Note: This is an advanced example and requires C code programming skills as well as some background in real-time system programming.
For more information about FreeRTOS see the API reference guide.
This example demonstrates how to use basic multi-task features in order to handle a multi-screen environment application.
In this example you will find three screens:
Welcome Screen
(T3 / Top Touch)

Temperature screen
(T2 / Right Touch)
Humidity screen
(T4 / Left Touch)

Four tasks are created :
- UiManager task: Handle touch buttons event and screen transitions
- Main screen task: Display the main screen
- Temperature screen task: Display the temperature measurements from ENS210 sensor
- Humidity screen task: Display the humidity measurements from ENS210 sensor
- + mutex-semaphore is implemented to handle shared resources between tasks (Display & sensors)
Screens are described in an object-oriented manner to easily manage them in the task's code:
.navigation describe how the menu transition will behave
.title & .image will be used to display correct information
.start/stopTaskFunction will be used to create/pause the according measurement&display task.
example_1b.h
static guiScreen_t
gui_example1b_mainScreen =
{
.navigation =
{
.up = NULL,
.down = NULL,
.left = &gui_example1b_humScreen,
.right = &gui_example1b_tempScreen
},
.title = "Welcome !",
.image = nxp_logo,
.startTaskFunction = &gui_example1b_mainScreen_StartTask,
.stopTaskFunction = &gui_example1b_mainScreen_StopTask
};Source code is located under "/source" folder
- example_1b.c/h
- main.c (main_task entry point l.272)
Ui manager code is located under "/ui_manager" folder
- ui_manager.c/h
To import project into MCUXpresso :
- Import project(s) from file system...
- Choose archive, then select the downloaded archive
Please, feel free to take a deep look into the code, tinker and develop your own application.
Don't hesitate to share with us any questions/remarks you may have.
Regards,