From 19ff6729385360ff6d1e2351946521d411200081 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noah=20Piqu=C3=A9?= Date: Thu, 20 Oct 2022 10:48:08 +0200 Subject: [PATCH] add returning board id to public --- Core/Application/MAIN_MainApplication.c | 4 ++-- Core/Drivers/CAND_CanDriver.c | 10 +++++++--- Core/Drivers/CAND_CanDriver.h | 4 ++-- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/Core/Application/MAIN_MainApplication.c b/Core/Application/MAIN_MainApplication.c index 535bc13..0758ee0 100644 --- a/Core/Application/MAIN_MainApplication.c +++ b/Core/Application/MAIN_MainApplication.c @@ -243,13 +243,13 @@ PRIVATE VOID vTask( PVOID arg ) if( u8Register >= VARH_eNumberOfVariables ){ // check register // send register not found au8Buffer[0] = 0xFF; - CAND_boSendMessage( stMessage.u16Id, au8Buffer, 1 ); + CAND_boSendMessage( au8Buffer, 1, stMessage.boIsPrivate, stMessage.u8Type ); } else { VARH_UVariable uVariable = VARH_uGetVariableData(u8Register); // get data au8Buffer[0] = u8Register; UTIL_vMemCopy(&uVariable, &au8Buffer[1], 4); // copy data in buffer - CAND_boSendMessage( stMessage.u16Id, au8Buffer, 5 ); + CAND_boSendMessage( au8Buffer, 5, stMessage.boIsPrivate, stMessage.u8Type ); } } else if( u8Type == MESSAGE_TYPE_WRITE ){ // Message type writeset diff --git a/Core/Drivers/CAND_CanDriver.c b/Core/Drivers/CAND_CanDriver.c index 70e4c03..5aecf98 100644 --- a/Core/Drivers/CAND_CanDriver.c +++ b/Core/Drivers/CAND_CanDriver.c @@ -185,13 +185,17 @@ U8 CAND_u8GetBoardId( VOID ){ // PU8 Data Buffer // Returns: Boolean, TRUE if successful //------------------------------------------------------------------------------------------------- -BOOL CAND_boSendMessage( U16 u16Id, PU8 pu8Buffer, U8 u8Len ){ +BOOL CAND_boSendMessage( PU8 pu8Buffer, U8 u8Len, BOOL boIsPrivate, U8 u8Type ){ BOOL boOK = TRUE; + U16 u16Id = 0x000; if( u8Len > 8 ) return FALSE; + + u16Id = (CAND_SHIFT<<9)|(boIsPrivate<<8)|(CAND_SEND<<6)|(u8Type<<4)|(U16)u8BoardId; + CAN_TxHeaderTypeDef header = { - u16Id | (CAND_SEND<<6), + u16Id, 0, CAN_ID_STD, CAN_RTR_DATA, @@ -238,7 +242,7 @@ void HAL_CAN_RxFifo0MsgPendingCallback( CAN_HandleTypeDef *hcan ){ CAND_Message stMessage; - stMessage.u16Id = header.StdId; + stMessage.boIsPrivate = (header.StdId & 0x100) >> 8; stMessage.u8Type = (header.StdId & 0x030) >> 4; stMessage.u8Len = header.DLC; UTIL_vMemCopy( au8Data,stMessage.au8Data,stMessage.u8Len ); diff --git a/Core/Drivers/CAND_CanDriver.h b/Core/Drivers/CAND_CanDriver.h index eeb38b9..fa603c5 100644 --- a/Core/Drivers/CAND_CanDriver.h +++ b/Core/Drivers/CAND_CanDriver.h @@ -67,7 +67,7 @@ typedef struct { U8 au8Data[8]; U8 u8Len; U8 u8Type; - U16 u16Id; + BOOL boIsPrivate; } CAND_Message; // callback functions @@ -92,7 +92,7 @@ typedef VOID (*CAND_pfnRxCallback)( CAND_Message stMessage ); //================================================================================================= BOOL CAND_boInitializeModule( VOID ); -BOOL CAND_boSendMessage( U16 u16Id, PU8 pu8Buffer, U8 u8Len ); +BOOL CAND_boSendMessage( PU8 pu8Buffer, U8 u8Len, BOOL boIsPrivate, U8 u8Type ); VOID CAND_vSetRxCallback( CAND_pfnRxCallback pfnRxCallback ); U8 CAND_u8GetBoardId( VOID );