//================================================================== // // Filename: app_msg.h // Description: // //------------------------------------------------------------------ // // version: // 15:28pm, 1.July.2019, written by dwd // Description: // //------------------------------------------------------------------ //================================================================== #ifndef _APP_MSG_H_ #define _APP_MSG_H_ /*------------------------------------------------------------------------------ * I N C L U D E *------------------------------------------------------------------------------*/ #include "app_def.h" /*------------------------------------------------------------------------------ * D E F I N E *------------------------------------------------------------------------------*/ #define NO_MSG 0u /*< no message >*/ typedef struct { U08 id; /*< message id >*/ U16 prm; /*< message parameter >*/ } T_MESSAGE; /*---------------------- ** message queue struct -----------------------*/ #define QUEUE_LENGTH 30u /*< total queue length >*/ typedef struct { U08 nEnque; /*< enqueue index >*/ U08 nDeque; /*< dequeue index >*/ T_MESSAGE Queue[QUEUE_LENGTH]; /*< queue buffer >*/ } T_MSG_QUEUE; /*---------------------- ** message module type -----------------------*/ typedef enum { ArmMsgQueue = 0x00, BusMsgQueue = 0x01, KeyMsgQueue = 0x02, MsgQueueCnt = 0x03 } T_MSG_MODULE; /*------------------------------------------------------------------------------ * P R O T O T Y P E *------------------------------------------------------------------------------*/ void OSQPost(T_MSG_MODULE mod, U08 id, U16 prm); void OSQNew(T_MSG_MODULE mod, U08 id, U16 prm); void OSQInquery(T_MSG_MODULE mod, U08 id, U16 prm); void OSQInsert(T_MSG_MODULE mod, U08 id, U16 prm); T_MESSAGE *OSQGet(T_MSG_MODULE mod); void OSQFlush(T_MSG_MODULE mod); void OSQInit(void); /*------------------------------- E O F ----------------------------------------*/ #endif /* _APP_MSG_H_ */