We have tasks that process events one at a time to completion. They can place tasks/events on each other queues synchronously.
...
° CAN will happen at regular intervals with acceptable latency
...
Jarvis:
Inforce scheduling on every task for limited runtime
for SPI and I2C same thing as RX and TX, the information can be sent and received but the actual task can send and receive
More OOP for task design such that there are
constructors (i.e. init)
destructors for a cleanup
Abstraction for inheritance from a common parent class
Shared Memory: One struct with every info/pointer in it.
Abstraction and inheritance for tasks accessing the shared memory
self clean up for each task