RT-Thread API参考手册
3.1.1
嵌入式实时操作系统
|
数据队列接口 更多...
结构体 | |
struct | rt_data_queue |
数据队列控制块 更多... | |
宏定义 | |
#define | RT_DATAQUEUE_EVENT_UNKNOWN 0x00 |
未知数据队列事件 | |
#define | RT_DATAQUEUE_EVENT_POP 0x01 |
数据队列取出事件 | |
#define | RT_DATAQUEUE_EVENT_PUSH 0x02 |
数据队列写入事件 | |
#define | RT_DATAQUEUE_EVENT_LWM 0x03 |
数据队列数达到设定阈值事件 | |
#define | RT_DATAQUEUE_SIZE(dq) ((dq)->put_index - (dq)->get_index) |
数据队列使用数量 | |
#define | RT_DATAQUEUE_EMPTY(dq) ((dq)->size - RT_DATAQUEUE_SIZE(dq)) |
数据队列空闲数量 | |
函数 | |
rt_err_t | rt_data_queue_init (struct rt_data_queue *queue, rt_uint16_t size, rt_uint16_t lwm, void(*evt_notify)(struct rt_data_queue *queue, rt_uint32_t event)) |
数据队列初始化 更多... | |
rt_err_t | rt_data_queue_push (struct rt_data_queue *queue, const void *data_ptr, rt_size_t data_size, rt_int32_t timeout) |
向数据队列中写入数据 更多... | |
rt_err_t | rt_data_queue_pop (struct rt_data_queue *queue, const void **data_ptr, rt_size_t *size, rt_int32_t timeout) |
取出数据队列中的数据 更多... | |
rt_err_t | rt_data_queue_peak (struct rt_data_queue *queue, const void **data_ptr, rt_size_t *size) |
取出但保留数据队列中的数据 更多... | |
void | rt_data_queue_reset (struct rt_data_queue *queue) |
重置数据队列 更多... | |
数据队列接口
rt_err_t rt_data_queue_init | ( | struct rt_data_queue * | queue, |
rt_uint16_t | size, | ||
rt_uint16_t | lwm, | ||
void(*)(struct rt_data_queue *queue, rt_uint32_t event) | evt_notify | ||
) |
数据队列初始化
调用该函数将初始化数据队列控制块,并设定通知回调函数。
queue | 数据队列句柄 |
size | 数据队列块大小 |
lwm | 阈值设定 |
evt_notify | 通知事件回调函数 |
rt_err_t rt_data_queue_push | ( | struct rt_data_queue * | queue, |
const void * | data_ptr, | ||
rt_size_t | data_size, | ||
rt_int32_t | timeout | ||
) |
向数据队列中写入数据
调用该函数可以向指定的数据队列中写入数据,当数据队列已满,则在指定的超时时间内挂起等待。
queue | 数据队列句柄 |
data_ptr | 待写入的数据指针 |
data_size | 待写入数据的字节数 |
timeout | 指定超时时间 |
rt_err_t rt_data_queue_pop | ( | struct rt_data_queue * | queue, |
const void ** | data_ptr, | ||
rt_size_t * | size, | ||
rt_int32_t | timeout | ||
) |
取出数据队列中的数据
调用该函数可以从指定的数据队列中取出数据,如果数据队列为空,则在指定的时间内挂起等待。
queue | 数据队列句柄 |
data_ptr | 待取出的数据指针 |
size | 待取出数据的字节数 |
timeout | 指定超时时间 |
rt_err_t rt_data_queue_peak | ( | struct rt_data_queue * | queue, |
const void ** | data_ptr, | ||
rt_size_t * | size | ||
) |
取出但保留数据队列中的数据
调用该函数可以从指定的数据队列中取出数据,如果数据队列为空,则在指定的时间内挂起等待。
queue | 数据队列句柄 |
data_ptr | 待取出的数据指针 |
size | 待取出数据的字节数 |
void rt_data_queue_reset | ( | struct rt_data_queue * | queue | ) |
重置数据队列
调用该函数将唤醒数据队列上挂起等待的所有线程。
queue | 数据队列句柄 |