luat_msgbus_freertos.c 611 B

1234567891011121314151617181920212223
  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. return osMessageQueuePut(queue, msg, 0, timeout);
  13. }
  14. uint32_t luat_msgbus_get(rtos_msg_t* msg, size_t timeout) {
  15. return osMessageQueueGet(queue, msg, 0, timeout);
  16. }
  17. uint32_t luat_msgbus_freesize(void) {
  18. return osMessageQueueGetSpace(queue);
  19. }