/************************************************************************** * * Copyright (c) 2019-2019 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.h * * @date 08-Oct-2019 * @author S. Nash * * @brief header file for Message Queues service . * **************************************************************************/ #ifndef __MSG_QUEUES_H__ #define __MSG_QUEUES_H__ #include "Common.h" // ********** public definitions ********** #define MAX_MSG_QUEUE_SIZE 25 // bytes #define MAX_MSG_CARGO_SIZE 255 // bytes typedef enum Msg_Queues { MSG_Q_CAN_HD_ALARM = 0, MSG_Q_CAN_DG_ALARM, MSG_Q_CAN_UI_ALARM, MSG_Q_CAN_HD_2_DG, MSG_Q_CAN_DG_2_HD, MSG_Q_CAN_HD_2_UI, MSG_Q_CAN_HD_BROADCAST, MSG_Q_CAN_DG_BROADCAST, MSG_Q_CAN_UI_2_HD, MSG_Q_CAN_UI_BROADCAST, MSG_Q_DBG_IN, MSG_Q_DBG_OUT, NUM_OF_MSG_QUEUES } MSG_QUEUE_T; typedef struct { U16 msgID; // ID of message U08 cargoLen; // length of cargo in bytes } MESSAGE_HEADER_T; typedef struct { MESSAGE_HEADER_T hdr; // message header U08 cargo[MAX_MSG_CARGO_SIZE]; // message cargo } MESSAGE_T; typedef struct { MESSAGE_T msg; // message U08 crc; // message CRC } MESSAGE_WRAPPER_T; // ********** public function prototypes ********** void initMsgQueues( void ); BOOL addToMsgQueue( MSG_QUEUE_T queue, MESSAGE_T *msg ); BOOL getFromMsgQueue( MSG_QUEUE_T queue, MESSAGE_T *msg ); BOOL isMsgQueueEmpty( MSG_QUEUE_T queue ); BOOL isMsgQueueFull( MSG_QUEUE_T queue ); #endif