Hi,
Sorry for the delay, and thanks for reply, I will start with the easy part
this is exactly how is done, each sensor updates the variable were its data is saved after every read and the task_tx_mqtt() only takes those variables to create the message to be sent to the server
Now, about the task_read_gps() and task_check_rx_mqtt():
But, use a blocking read for each of those tasks is valid only if they have the same priority right?, because for example if task_check_rx_mqtt() has lower priority it must wait until task_read_gps() gets the data to run