In this project, we're going to show a trick to exchange data between two processes in a very simple manner. At the beginning of the chapter, it was mentioned that the ADCs must be sampled at 100Hz, but we don't need to be so fast to render a simple interface on the external LCD. In fact, a reasonable updating frequency for the user interface can be 1Hz (once per second.) So, to keep the code simple, we implement our device by using two different processes running at different frequencies that exchange data with each other instead of using a single process.
Simply speaking, if we realize a program called
adc that reads the data from the ADCs at 100Hz and then prints its output on the
stdout stream (standard output) at 1Hz, we can redirect such output to another program called
lcd.sh that reads the data from its
stdin stream (standard input) at 1Hz and then draws the user interface accordingly.
The data flow is unidirectional. Program
adc reads data from the ADC and...