app_msg.h 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. //==================================================================
  2. //
  3. // Filename: app_msg.h
  4. // Description:
  5. //
  6. //------------------------------------------------------------------
  7. //
  8. // version:
  9. // 15:28pm, 1.July.2019, written by dwd
  10. // Description:
  11. //
  12. //------------------------------------------------------------------
  13. //==================================================================
  14. #ifndef _APP_MSG_H_
  15. #define _APP_MSG_H_
  16. /*------------------------------------------------------------------------------
  17. * I N C L U D E
  18. *------------------------------------------------------------------------------*/
  19. #include "app_def.h"
  20. /*------------------------------------------------------------------------------
  21. * D E F I N E
  22. *------------------------------------------------------------------------------*/
  23. #define NO_MSG 0u /*< no message >*/
  24. typedef struct {
  25. U08 id; /*< message id >*/
  26. U16 prm; /*< message parameter >*/
  27. } T_MESSAGE;
  28. /*----------------------
  29. ** message queue struct
  30. -----------------------*/
  31. #define QUEUE_LENGTH 30u /*< total queue length >*/
  32. typedef struct {
  33. U08 nEnque; /*< enqueue index >*/
  34. U08 nDeque; /*< dequeue index >*/
  35. T_MESSAGE Queue[QUEUE_LENGTH]; /*< queue buffer >*/
  36. } T_MSG_QUEUE;
  37. /*----------------------
  38. ** message module type
  39. -----------------------*/
  40. typedef enum {
  41. ArmMsgQueue = 0x00,
  42. BusMsgQueue = 0x01,
  43. KeyMsgQueue = 0x02,
  44. MsgQueueCnt = 0x03
  45. } T_MSG_MODULE;
  46. /*------------------------------------------------------------------------------
  47. * P R O T O T Y P E
  48. *------------------------------------------------------------------------------*/
  49. void OSQPost(T_MSG_MODULE mod, U08 id, U16 prm);
  50. void OSQNew(T_MSG_MODULE mod, U08 id, U16 prm);
  51. void OSQInquery(T_MSG_MODULE mod, U08 id, U16 prm);
  52. void OSQInsert(T_MSG_MODULE mod, U08 id, U16 prm);
  53. T_MESSAGE *OSQGet(T_MSG_MODULE mod);
  54. void OSQFlush(T_MSG_MODULE mod);
  55. void OSQInit(void);
  56. /*------------------------------- E O F ----------------------------------------*/
  57. #endif /* _APP_MSG_H_ */