This is the project repository.
A modular programming technique was used, splitting the project by several files, called modules. A module is a collection of functions that perform the related assignments. This way, the project was broken into different modules, with a header file for each source file with the definitions of all functions and global variables of that module that must be used by others. This approach has several advantages, for instance, it keeps the code structure organized and allows each module to be compiled and tested separately.
This project takes advantage of two libraries, one with all the modules that serve the different needs of the project, and the other with the adaptations of those modules to a concurrent system with FreeRTOS.
The following repositories represent the libraries that were used in the project.