XCP Diagnostics
Description
The ramn_xcp module implements XCP diagnostics. It is currently a simplified, PoC implementation, not compliant with the standard and partially incorrect.
//Initializes the module
RAMN_Result_t RAMN_XCP_Init(uint32_t tick);
//Updates the module. Should be called periodically.
RAMN_Bool_t RAMN_XCP_Update(uint32_t tick);
//Sends outgoing messages
RAMN_Bool_t RAMN_XCP_Continue_TX(uint32_t tick, const uint8_t* data, uint16_t size);
//Process a CAN Message addressed to XCP CAN ID. If a diagnostic messages has been reconstructed, it is put in strbuf. Returns true if a message has been reconstructed.
RAMN_Bool_t RAMN_XCP_ProcessRxCANMessage(const FDCAN_RxHeaderTypeDef* pHeader, const uint8_t* data, uint32_t tick, StreamBufferHandle_t* strbuf);
//Process a reconstructed diagnostics message
void RAMN_XCP_ProcessDiagPayload(uint32_t tick, const uint8_t* data, uint16_t size, uint8_t* answerData, uint16_t* answerSize);