luat_msgbus_cmsis_os2.c 734 B

1234567891011121314151617181920212223242526272829
  1. #include "luat_msgbus.h"
  2. #include "cmsis_os2.h"
  3. #define LUAT_MSGBUS_MAXCOUNT 0xFF
  4. //#define LUAT_MSGBUS_MAXSIZE 8
  5. static osMessageQueueId_t queue = {0};
  6. void luat_msgbus_init(void) {
  7. if (!queue) {
  8. queue = osMessageQueueNew(LUAT_MSGBUS_MAXCOUNT, sizeof(rtos_msg_t), NULL);
  9. }
  10. }
  11. uint32_t luat_msgbus_put(rtos_msg_t* msg, size_t timeout) {
  12. if (queue == NULL)
  13. return 1;
  14. return osMessageQueuePut(queue, msg, 0, timeout);
  15. }
  16. uint32_t luat_msgbus_get(rtos_msg_t* msg, size_t timeout) {
  17. if (queue == NULL)
  18. return 1;
  19. return osMessageQueueGet(queue, msg, 0, timeout);
  20. }
  21. uint32_t luat_msgbus_freesize(void) {
  22. if (queue == NULL)
  23. return 1;
  24. return osMessageQueueGetSpace(queue);
  25. }