/* * SysComm.c * * Created on: Aug 20, 2024 * Author: fw */ #include "can.h" #include "CommBuffers.h" #include "SystemComm.h" void initSystemComm( void ) { } void handleCANMsgInterrupt( SW_UPDATE_CAN_MAIL_BOX_T mailBox ) { // TODO do we need check the range of the messages? // TODO retry? U08 data[ CAN_MESSAGE_PAYLOAD_SIZE ]; if ( SW_UPDATE_COMMAD == mailBox ) { if ( FALSE != canIsRxMessageArrived( canREG1, mailBox ) ) { U32 result = canGetData( canREG1, mailBox, data ); if ( result != 0 ) { addToCommBuffer( mailBox, data, CAN_MESSAGE_PAYLOAD_SIZE ); } } } else { if ( RECEIVE_MSG_ID[ BL_STACK_ID ] == mailBox ) { if ( FALSE != canIsRxMessageArrived( canREG1, mailBox ) ) { U32 result = canGetData( canREG1, mailBox, data ); if ( result != 0 ) { addToCommBuffer( mailBox, data, CAN_MESSAGE_PAYLOAD_SIZE ); } } } } } BOOL sendAckNackStatusFromFirmware( U08* data ) { BOOL status = FALSE; if ( 0 != canTransmit( canREG1, (U32)SW_UPDATE_RESP, data ) ) { status = TRUE; } return status; } BOOL broadcastDataTestRemove( U08* data ) { canTransmit( canREG1, (U32)SW_TEST, data ); return TRUE; }