@startuml actor CAN_BUS as bus participant interrupt as ISR queue XF as xf participant ecan as ecan participant can_interface as can control can_message as msg bus -\\ ISR ++ : can message ISR -> can : newMsg can -> ecan : read ecan --> can : message can -> xf : POST XF destroy ISR group clock xf [every 10ms] xf o-> can : receiveCan can -> msg : processIncome msg -> can : create message can -> xf : POST XF end group clock xf [every 10ms] xf o-> can : sendCan can -> ecan : write ecan -\\ bus : can message end @enduml