Index: firmware/App/Services/MsgQueues.c =================================================================== diff -u -r04334ed8d1e927939718b1d62fb01afef0a2b9a9 -r8e7158d8231435496fcf1d5649e51babf859ccc7 --- firmware/App/Services/MsgQueues.c (.../MsgQueues.c) (revision 04334ed8d1e927939718b1d62fb01afef0a2b9a9) +++ firmware/App/Services/MsgQueues.c (.../MsgQueues.c) (revision 8e7158d8231435496fcf1d5649e51babf859ccc7) @@ -1,44 +1,45 @@ -/************************************************************************** - * - * Copyright (c) 2019-2020 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 MsgQueues.c - * - * @date 08-Oct-2019 - * @author S. Nash - * - * @brief MsgQueues service module. Provides message queue functionality. \n - * These queues are NOT thread safe. However, these queue functions are \n - * intended to be called from the General Task thread so no thread safety \n - * is required. - * - **************************************************************************/ +/************************************************************************** +* +* Copyright (c) 2019-2021 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 MsgQueues.c +* +* @author (last) Sean Nash +* @date (last) 24-Sep-2020 +* +* @author (original) Dara Navaei +* @date (original) 05-Nov-2019 +* +***************************************************************************/ #include "MsgQueues.h" +/** + * @addtogroup MsgQueues + * @{ + */ + // ********** private definitions ********** -#define MAX_MSG_QUEUE_SIZE 100 // messages +#define MAX_MSG_QUEUE_SIZE 100 ///< Number of messages a queue can hold. // ********** private data ********** -static U32 msgQueueCounts[ NUM_OF_MSG_QUEUES ]; -static U32 msgQueueStarts[ NUM_OF_MSG_QUEUES ]; -static U32 msgQueueNexts[ NUM_OF_MSG_QUEUES ]; -static MESSAGE_WRAPPER_T msgQueues[ NUM_OF_MSG_QUEUES ][ MAX_MSG_QUEUE_SIZE ]; +static U32 msgQueueCounts[ NUM_OF_MSG_QUEUES ]; ///< Number of messages in each queue. +static U32 msgQueueStarts[ NUM_OF_MSG_QUEUES ]; ///< Starting index for each queue. +static U32 msgQueueNexts[ NUM_OF_MSG_QUEUES ]; ///< Next index for each queue. +static MESSAGE_WRAPPER_T msgQueues[ NUM_OF_MSG_QUEUES ][ MAX_MSG_QUEUE_SIZE ]; ///< The messages in each queue. // ********** private function prototypes ********** -/************************************************************************* - * @brief initMsgQueues +/*********************************************************************//** + * @brief * The initMsgQueues function initializes the MsgQueues module. - * @details - * Inputs : none - * Outputs : none - * @param none + * @details Inputs: none + * @details Outputs: msgQueueCounts[], msgQueueStarts[], msgQueueNexts[], msgQueues[][] * @return none *************************************************************************/ void initMsgQueues( void ) @@ -58,15 +59,14 @@ } } -/************************************************************************* - * @brief addToMsgQueue - * The addToMsgQueue function adds a message to a given message queue. \n +/*********************************************************************//** + * @brief + * The addToMsgQueue function adds a message to a given message queue. * This function should only be called from the General Task. - * @details - * Inputs : none - * Outputs : message added to queue - * @param queue : the message queue to add to - * @param msg : a pointer to a message structure to add to the queue + * @details Inputs: none + * @details Outputs: message added to queue + * @param queue the message queue to add to + * @param msg a pointer to a message structure to add to the queue * @return TRUE if message added to queue, FALSE if could not *************************************************************************/ BOOL addToMsgQueue( MSG_QUEUE_T queue, MESSAGE_WRAPPER_T *msg ) @@ -88,26 +88,25 @@ } else // msg queue is full { - SET_ALARM_WITH_1_U32_DATA( ALARM_ID_SOFTWARE_FAULT, SW_FAULT_ID_MSG_QUEUES_ADD_QUEUE_FULL ) + SET_ALARM_WITH_1_U32_DATA( ALARM_ID_HD_SOFTWARE_FAULT, SW_FAULT_ID_MSG_QUEUES_ADD_QUEUE_FULL ) } } else // invalid message queue { - SET_ALARM_WITH_2_U32_DATA( ALARM_ID_SOFTWARE_FAULT, SW_FAULT_ID_MSG_QUEUES_ADD_INVALID_QUEUE, queue ) + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_HD_SOFTWARE_FAULT, SW_FAULT_ID_MSG_QUEUES_ADD_INVALID_QUEUE, queue ) } return result; } -/************************************************************************* - * @brief getFromMsgQueue - * The getFromMsgQueue function retrieves the next message from a given \n +/*********************************************************************//** + * @brief + * The getFromMsgQueue function retrieves the next message from a given * message queue. This function should only be called from the General Task. - * @details - * Inputs : queue - * Outputs : message retrieved from the queue - * @param queue : the message queue to retrieve from - * @param msg : a pointer to a message structure to populate with the retrieved \n + * @details Inputs: queue + * @details Outputs: message retrieved from the queue + * @param queue the message queue to retrieve from + * @param msg a pointer to a message structure to populate with the retrieved * message. * @return TRUE if a message was found to retrieve, FALSE if not *************************************************************************/ @@ -135,19 +134,18 @@ } else // invalid message queue { - SET_ALARM_WITH_2_U32_DATA( ALARM_ID_SOFTWARE_FAULT, SW_FAULT_ID_MSG_QUEUES_GET_INVALID_QUEUE, queue ) + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_HD_SOFTWARE_FAULT, SW_FAULT_ID_MSG_QUEUES_GET_INVALID_QUEUE, queue ) } return result; } -/************************************************************************* - * @brief isMsgQueueEmpty +/*********************************************************************//** + * @brief * The isMsgQueueEmpty function determines whether a given message queue is empty. - * @details - * Inputs : none - * Outputs : none - * @param queue : the message queue to check + * @details Inputs: msgQueueCounts[] + * @details Outputs: none + * @param queue the message queue to check * @return TRUE if a given message queue is empty, FALSE if not *************************************************************************/ BOOL isMsgQueueEmpty( MSG_QUEUE_T queue ) @@ -164,19 +162,18 @@ } else // invalid message queue { - SET_ALARM_WITH_2_U32_DATA( ALARM_ID_SOFTWARE_FAULT, SW_FAULT_ID_MSG_QUEUES_IS_EMPTY_INVALID_QUEUE, queue ) + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_HD_SOFTWARE_FAULT, SW_FAULT_ID_MSG_QUEUES_IS_EMPTY_INVALID_QUEUE, queue ) } return result; } -/************************************************************************* - * @brief isMsgQueueFull +/*********************************************************************//** + * @brief * The isMsgQueueFull function determines whether a given message queue is full. - * @details - * Inputs : none - * Outputs : none - * @param queue : the message queue to check + * @details Inputs: msgQueueCounts[] + * @details Outputs: none + * @param queue the message queue to check * @return TRUE if the given message queue is full, FALSE if not *************************************************************************/ BOOL isMsgQueueFull( MSG_QUEUE_T queue ) @@ -193,19 +190,18 @@ } else // invalid message queue { - SET_ALARM_WITH_2_U32_DATA( ALARM_ID_SOFTWARE_FAULT, SW_FAULT_ID_MSG_QUEUES_IS_FULL_INVALID_QUEUE, queue ) + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_HD_SOFTWARE_FAULT, SW_FAULT_ID_MSG_QUEUES_IS_FULL_INVALID_QUEUE, queue ) } return result; } -/************************************************************************* - * @brief blankMessage +/*********************************************************************//** + * @brief * The blankMessage function blanks a given message. - * @details - * Inputs : none - * Outputs : none - * @param message : Pointer to the message to blank. + * @details Inputs: none + * @details Outputs: given message is blanked + * @param message Pointer to the message to blank * @return none *************************************************************************/ void blankMessage( MESSAGE_T *message ) @@ -221,13 +217,12 @@ } } -/************************************************************************* - * @brief blankMessageInWrapper +/*********************************************************************//** + * @brief * The blankMessageInWrapper function blanks a given message in a wrapper. - * @details - * Inputs : none - * Outputs : none - * @param message : Pointer to the message in a wrapper to blank. + * @details Inputs: none + * @details Outputs: given wrapped message is blanked + * @param message Pointer to the message in a wrapper to blank * @return none *************************************************************************/ void blankMessageInWrapper( MESSAGE_WRAPPER_T *message ) @@ -245,3 +240,5 @@ // set msg ID out of bounds in case blank message goes somewhere message->msg.hdr.msgID = 0xFFFF; } + +/**@}*/