| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- #ifndef APP_QUEUE_H__
- #define APP_QUEUE_H__
- #include "type.h"
- #define QUEUE_MAX 8
- #define QUEUE_TYPE_BLE 1
- #define QUEUE_TYPE_SPI 2
- typedef struct {
- int length;
- uint8_t cmd[MAX_BUF];
- }queue_element_t;
- typedef struct {
- queue_element_t data[QUEUE_MAX];
- int front;
- int rear;
- int size;
- } queue_list_t;
- void queue_init(queue_list_t* queue);
- bool queue_full(queue_list_t* queue);
- bool queue_empty(queue_list_t* queue);
- void queue_in(queue_list_t* queue, uint8_t* item, int length);
- int queue_out(queue_list_t* queue, uint8_t* item);
- int queue_size(queue_list_t* queue);
- #define QUEUE_MSG_PROCESS(QUEUE,FUNC) \
- do { \
- uint8_t out[MAX_BUF]; \
- if(!queue_empty(QUEUE)) { \
- int len = queue_out(QUEUE, out); \
- if(len > 0) { \
- FUNC(out, len); \
- } \
- } \
- } while (0)
- #define QUEUE_MSG_EMPTY(QUEUE) (queue_empty(QUEUE))
- #define QUEUE_MSG_NOT_EMPTY(QUEUE) (!queue_empty(QUEUE))
- #endif /* APP_QUEUE_H__ */
|