Index: firmware/App/Services/SystemComm.h =================================================================== diff -u -rdd70052b03eeb284223a4aade8567a4acec63efb -r359cf587f2f935ef9f40a16d17c4105efa653c1d --- firmware/App/Services/SystemComm.h (.../SystemComm.h) (revision dd70052b03eeb284223a4aade8567a4acec63efb) +++ firmware/App/Services/SystemComm.h (.../SystemComm.h) (revision 359cf587f2f935ef9f40a16d17c4105efa653c1d) @@ -14,55 +14,47 @@ * @date (original) 05-Nov-2019 * ***************************************************************************/ - -#ifndef __SYSTEM_COMM_H__ -#define __SYSTEM_COMM_H__ - -#include "DGCommon.h" -#include "CommBuffers.h" -#include "MsgQueues.h" - -/** - * @defgroup SystemComm SystemComm - * @brief System communication module. Manages incoming and outgoing CAN frames. - * - * @addtogroup SystemComm - * @{ - */ -// ********** public definitions ********** - -#define MESSAGE_SYNC_BYTE 0xA5 ///< Denali message syncronization byte. - -#define CAN_MESSAGE_PAYLOAD_SIZE 8 ///< CAN frame payload size (in bytes). -#ifdef DEBUG_ENABLED - #define PC_MESSAGE_PACKET_SIZE 8 -#endif - -#define MSG_ID_ACK 0xFFFF ///< Denali message ID for acknowledging received messages (when required). -#define MSG_ACK_BIT 0x8000 ///< ACK bit in sequence number that indicates an ACK is required. -#define MAX_MSG_SEQ_NO 0x7FFF ///< Maximum sequence number for Denali message (then wraps to 1). -#define MIN_MSG_SEQ_NO 0x0001 ///< Minimum sequence number for Denali message. -#define MAX_ACK_MSG_SIZE ( sizeof( MESSAGE_WRAPPER_T ) + 1 + CAN_MESSAGE_PAYLOAD_SIZE ) ///< Maximum size (in bytes) of Denali message including full (wrapped) message + sync + any CAN padding) +#ifndef __SYSTEM_COMM_H__ +#define __SYSTEM_COMM_H__ -typedef COMM_BUFFER_T CAN_MESSAGE_BOX_T; ///< the CAN comm buffers align with the active CAN message boxes - -// ********** public function prototypes ********** - -void initSystemComm( void ); -void execSystemCommRx( void ); -void execSystemCommTx( void ); -void handleCANMsgInterrupt( CAN_MESSAGE_BOX_T srcCANBox ); -#ifdef DEBUG_ENABLED - void handleUARTMsgRecvPacketInterrupt( void ); - void handleUARTMsgXmitPacketInterrupt( void ); -#endif +#include "DGCommon.h" +#include "CommBuffers.h" +#include "MsgQueues.h" + +// ********** public definitions ********** + +#define MESSAGE_SYNC_BYTE 0xA5 + +#define CAN_MESSAGE_PAYLOAD_SIZE 8 +#ifdef DEBUG_ENABLED + #define PC_MESSAGE_PACKET_SIZE 8 +#endif + +#define MSG_ID_ACK 0xFFFF +#define MSG_ACK_BIT 0x8000 +#define MAX_MSG_SEQ_NO 0x7FFF +#define MIN_MSG_SEQ_NO 0x0001 +#define MAX_ACK_MSG_SIZE ( sizeof( MESSAGE_WRAPPER_T ) + 1 + CAN_MESSAGE_PAYLOAD_SIZE ) // must hold full (wrapped) message + sync + any CAN padding + +typedef COMM_BUFFER_T CAN_MESSAGE_BOX_T; // the first 12 comm buffers align with the 12 active CAN message boxes + +// ********** public function prototypes ********** + +void initSystemComm( void ); +void execSystemCommRx( void ); +void execSystemCommTx( void ); +void handleCANMsgInterrupt( CAN_MESSAGE_BOX_T srcCANBox ); +#ifdef DEBUG_ENABLED + void handleUARTMsgRecvPacketInterrupt( void ); + void handleUARTMsgXmitPacketInterrupt( void ); +#endif +BOOL isHDCommunicating( void ); +BOOL addMsgToPendingACKList( MESSAGE_T *msg, COMM_BUFFER_T channel, U08 *msgData, U32 len ); + BOOL isCANBoxForXmit( CAN_MESSAGE_BOX_T srcCANBox ); BOOL isCANBoxForRecv( CAN_MESSAGE_BOX_T srcCANBox ); -BOOL isHDCommunicating( void ); -BOOL isDGOnlyCANNode( void ); -BOOL addMsgToPendingACKList( MESSAGE_T *msg, COMM_BUFFER_T channel, U08 *msgData, U32 len ); -/**@}*/ - -#endif +BOOL isDGOnlyCANNode( void ); + +#endif