The Terminal Receive Task

The ISR puts the received USART data on a stream buffer called terminal_rx_buffer. The terminal receive task is then taking the received data on the terminal_rx_buffer, and based on the received message, calls an update time function unless a time-out has occurred. The terminal receive task reports back to the terminal transmit task via the terminal_tx_buffer about the latest event, whether the time was set or if the request timed out. Refer to the figure below for the UML diagram.

Figure 1. Terminal Receive Task

The figure below shows a more in-depth description of the “receive bytes and update new_time” block.

Figure 2. Receive Bytes and Update Time

The communication between the two terminal tasks as well as the USART communication is described in the figure below.

Figure 3. Communication Between the Terminal Transmit Task and the Terminal Receive Task