Design and implement a datacentric
programming interface, where users don't need to know how to create and execute
tasks on RTOS (a layer of abstraction). Users only provide metadata (information) of their
data, such as data source, data type (and range), data format, data arrival rate (or device
sampling rate) ... and some functions, such as data pre-processing, post-processing and data
analysis and operations. Your interface/lib will create periodic tasks to process user data.
Define data structures for the meta-data and callbacks, and implement functions to
connect/disconnect input/output data streams (which creates and manages the
execution of tasks to process user data).