@startuml actor CAN_BUS as bus participant interrupt as ISR queue XF as xf participant ecan as ecan participant canInterface as can control canMessageController as msg bus -\\ ISR ++ : can message ISR -> can : newMsg can -> ecan : read ecan --> can : message can -> xf : POST XF destroy ISR group TICK XF xf o-> can : receiveCan() can -> msg : processIncoming() msg -> can : create message can -> xf : POST XF end group TICK XF xf o-> can : sendCan() can -> ecan : write ecan -\\ bus : can message end @enduml