/************************************************************************** * * Copyright (c) 2024-2024 Diality Inc. - All Rights Reserved. * * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. * * @file CommBuffers.h * * @author (last) Vinayakam Mani * @date (last) 06-Aug-2024 * * @author (original) Vinayakam Mani * @date (original) 05-Aug-2024 * ***************************************************************************/ #ifndef __COMM_BUFFERS_H__ #define __COMM_BUFFERS_H__ #include "DDCommon.h" /** * @defgroup CommBuffers CommBuffers * @brief Communication buffers service unit. Provides communication buffers functionality * including support functions for adding and clearing communication buffer. * * @addtogroup CommBuffers * @{ */ // ********** public definitions ********** /// Enumeration of CAN communication buffers. Buffers are ordered by priority. typedef enum Comm_Buffers { COMM_BUFFER_NOT_USED = 0, ///< Unused buffer - CAN message boxes start at 1 COMM_BUFFER_IN_CAN_TD_ALARM, ///< Receiving buffer for TD alarm via CAN COMM_BUFFER_OUT_CAN_DD_ALARM, ///< Transmitting buffer for DD alarm via CAN COMM_BUFFER_IN_CAN_RO_ALARM, ///< Buffer for incoming RO alarm messages COMM_BUFFER_IN_CAN_UI_ALARM, ///< Receiving buffer for UI alarm via CAN COMM_BUFFER_IN_CAN_TD_2_DD, ///< Receiving buffer for TD to DD communication via CAN COMM_BUFFER_OUT_CAN_DD_2_TD, ///< Transmitting buffer for DD to TD communication via CAN COMM_BUFFER_OUT_CAN_DD_2_RO, ///< Transmitting buffer for DD to RO communication via CAN COMM_BUFFER_IN_CAN_RO_2_DD, ///< Receiving buffer for RO to DD communication via CAN COMM_BUFFER_IN_CAN_TD_BROADCAST, ///< Receiving buffer for TD broadcast communication via CAN COMM_BUFFER_OUT_CAN_DD_BROADCAST, ///< Transmitting buffer for DD broadcast communication via CAN COMM_BUFFER_IN_CAN_RO_BROADCAST, ///< Receiving buffer for RO broadcast communication via CAN COMM_BUFFER_IN_CAN_UI_BROADCAST, ///< Receiving buffer for UI broadcast communication via CAN COMM_BUFFER_IN_CAN_PC, ///< Receiving buffer for PC communication via CAN COMM_BUFFER_OUT_CAN_PC, ///< Transmitting buffer for PC communication via CAN NUM_OF_COMM_BUFFERS ///< The number of communication buffers } COMM_BUFFER_T; // ********** public function prototypes ********** void initCommBuffers( void ); void clearBuffer( COMM_BUFFER_T buffer ); BOOL addToCommBuffer( COMM_BUFFER_T buffer, U08 *data, U32 len ); U32 getFromCommBuffer( COMM_BUFFER_T buffer, U08 *data, U32 len ); U32 peekFromCommBuffer( COMM_BUFFER_T buffer, U08 *data, U32 len ); U32 numberOfBytesInCommBuffer( COMM_BUFFER_T buffer ); /**@}*/ #endif