...
SD Card Logging Task - 500ms (Maybe more, depending on how much data we are logging) with priority 3
Will write the entire RX struct onto the SD card.
Considerations: We CURRENTLY (September 8, 2024) have 17 messages on CAN. For an overestimate and to include undeveloped systems like MPPTs and IMUs, let’s assume we have 30 messages in total. Assuming each message is the full 64 bits, we will have 1920 bits in total. This gives us 3840 bits/sec. This is a relatively slow data rate.
Needs more research but good resources:
https://www.eevblog.com/forum/microcontrollers/sd-card-writing-speed/
http://elm-chan.org/docs/mmc/mmc_e.html
XBee UART Task
Explore CAN RX configurations. We have a few options, I will list the ones that I am thinking of currently:
...
:
Update the can_receive function in can.c so every successful queue_pop will trigger a UART data transmission. The XBee UART Task will continuously call can_rx_all() so our rx_struct updates while sending data live.
PROS: Easy to implement and accounts for our mono-repo projects. It will support all data transmission regardless of the rate of transmission.
How to use XBEE
...
https://www.printed-droid.com/kb/programming-the-xbee/
https://maker.pro/arduino/tutorial/interfacing-xbee-module-with-arduino
...