You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

45 lines
1015 B

1 year ago
  1. #include "zqueue.hpp"
  2. #include "logger.h"
  3. using namespace iflytop;
  4. #define TAG "ZQueue"
  5. void ZQueue::initialize(int32_t num, int32_t eachsize) { //
  6. xQueue = xQueueCreate(num, eachsize);
  7. ZASSERT(xQueue);
  8. }
  9. void ZQueue::clear() { xQueueReset(xQueue); }
  10. bool ZQueue::send(uint8_t *data, size_t len, int32_t overtime) {
  11. BaseType_t xStatus;
  12. xStatus = xQueueSend(xQueue, data, overtime);
  13. if (xStatus == pdPASS) {
  14. return true;
  15. } else {
  16. return false;
  17. }
  18. }
  19. bool ZQueue::receive(uint8_t *data, size_t *len, int32_t overtime) {
  20. BaseType_t xStatus;
  21. xStatus = xQueueReceive(xQueue, data, overtime);
  22. if (xStatus == pdPASS) {
  23. return true;
  24. } else {
  25. return false;
  26. }
  27. }
  28. bool ZQueue::isFull() {
  29. BaseType_t xStatus = xQueueIsQueueFullFromISR(xQueue);
  30. if (xStatus == pdTRUE) {
  31. return true;
  32. } else {
  33. return false;
  34. }
  35. }
  36. bool ZQueue::isEmpty() {
  37. BaseType_t xStatus = xQueueIsQueueEmptyFromISR(xQueue);
  38. if (xStatus == pdTRUE) {
  39. return true;
  40. } else {
  41. return false;
  42. }
  43. }