15 UMLSpecialState 450 150 30 30 type=initial UMLState 390 240 150 60 STCA_WAIT Relation 450 165 120 105 lt=-> evCAinit 10.0;10.0;10.0;50.0 Relation 450 285 165 105 lt=-> evCAnewMsg 10.0;10.0;10.0;50.0 UMLState 315 360 285 105 STCA_READ - -. /entry: processCan Relation 480 255 225 360 lt=-> m1=[queue empty] 10.0;210.0;130.0;210.0;130.0;10.0;40.0;10.0 UMLSpecialState 435 540 60 60 type=decision Relation 450 450 135 120 lt=-> evCAdone 10.0;10.0;10.0;60.0 Relation 210 375 255 240 lt=-> m1=[else] 150.0;130.0;10.0;130.0;10.0;10.0;70.0;10.0 UMLNote 90 630 615 270 _*How to use*_ *In Factory_build: * ECAN_SetRXBnInterruptHandler(CANINTERFACE_newMsg); CANINTERFACE_onProcessCan(&processCan); *Somewhere:* void processCan(uint32_t canId, uint32_t canData) { ..... } Relation 900 225 90 105 lt=-> evInit 10.0;10.0;10.0;50.0 UMLSpecialState 900 210 30 30 type=initial UMLState 840 300 150 60 STCS_WAIT UMLState 810 420 210 90 STCS_SEND -- -. /entry sendCan Relation 900 345 135 105 lt=-> evCSsend 10.0;10.0;10.0;50.0 Relation 900 315 270 270 lt=-> evCSdone 10.0;130.0;10.0;160.0;100.0;160.0;100.0;10.0;60.0;10.0 UMLNote 765 630 645 150 _*How to use*_ CANSENDER_send(uint32_t id, uint32_t data); or CANSENDER_send(CANSENDER *me, uint8_t id, uint32_t data);