While building custom firmware, if you find yourself thinking:

  • “I need to run some code in the main loop, regardless of any CAN signals.” - use a Looper Function.
  • “I need to run initialization code at startup.” User an Initializer Function.
  • “I need to do some extra processing on a CAN signal before sending it out.” Use a custom signal handler.
  • “I need to combine the value of multiple signals in a message to generate a value.” Use a message handler.
  • “I need to send less data.” Control the send frequency.
  • “I don’t want this signal to send unless it changes.” Configure it to Send Signal on Change Only.