![]() |
RT-Thread API参考手册
4.0.3
嵌入式实时操作系统
|
数据队列接口 更多...
结构体 | |
| 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 | 数据队列句柄 |