## ring\_buffer\_t ### 概述 循环缓存区。 ---------------------------------- ### 函数

| 函数名称 | 说明 | | -------- | ------------ | | ring\_buffer\_capacity | 获取容量。 | | ring\_buffer\_create | 创建ring_buffer对象。 | | ring\_buffer\_destroy | 销毁ring_buffer。 | | ring\_buffer\_ensure\_write\_space | 扩展buffer。 | | ring\_buffer\_free\_size | 获取空闲空间的长度。 | | ring\_buffer\_is\_empty | 检查ring_buffer是否空。 | | ring\_buffer\_is\_full | 检查ring_buffer是否满。 | | ring\_buffer\_peek | 读取数据(不修改读取位置)。 | | ring\_buffer\_read | 读取数据。 | | ring\_buffer\_read\_len | 读取指定长度数据,要么成功要么失败。 | | ring\_buffer\_reset | 重置ring_buffer为空。 | | ring\_buffer\_set\_read\_cursor | 设置读取光标的位置。 | | ring\_buffer\_set\_read\_cursor\_delta | 设置读取光标的位置(delta)。 | | ring\_buffer\_set\_write\_cursor | 设置写入光标的位置。 | | ring\_buffer\_set\_write\_cursor\_delta | 设置写入光标的位置(delta)。 | | ring\_buffer\_size | 获取数据长度。 | | ring\_buffer\_skip | 跳过指定长度数据,要么成功要么失败。 | | ring\_buffer\_write | 写入数据。 | | ring\_buffer\_write\_len | 写入指定长度数据,要么成功要么失败。 | ### 属性

| 属性名称 | 类型 | 说明 | | -------- | ----- | ------------ | | capacity | uint32\_t | 当前容量。 | | data | uint8\_t* | 数据。 | | full | bool\_t | 是否满。 | | max\_capacity | uint32\_t | 最大容量。 | | r | uint32\_t | 读取位置。 | | w | uint32\_t | 写入位置。 | #### ring\_buffer\_capacity 函数 ----------------------- * 函数功能: >

获取容量。 * 函数原型: ``` uint32_t ring_buffer_capacity (ring_buffer_t* ring_buffer); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | uint32\_t | 容量。 | | ring\_buffer | ring\_buffer\_t* | ring\_buffer对象。 | #### ring\_buffer\_create 函数 ----------------------- * 函数功能: >

创建ring_buffer对象。 * 函数原型: ``` ring_buffer_t* ring_buffer_create (uint32_t init_capacity, uint32_t max_capacity); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ring\_buffer\_t* | ring\_buffer对象。 | | init\_capacity | uint32\_t | 初始容量。 | | max\_capacity | uint32\_t | 最大容量。 | #### ring\_buffer\_destroy 函数 ----------------------- * 函数功能: >

销毁ring_buffer。 * 函数原型: ``` ret_t ring_buffer_destroy (ring_buffer_t* ring_buffer); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | ring\_buffer | ring\_buffer\_t* | ring\_buffer对象。 | #### ring\_buffer\_ensure\_write\_space 函数 ----------------------- * 函数功能: >

扩展buffer。 * 函数原型: ``` ret_t ring_buffer_ensure_write_space (ring_buffer_t* ring_buffer, uint32_t size); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | ring\_buffer | ring\_buffer\_t* | ring\_buffer对象。 | | size | uint32\_t | 需要的大小。 | #### ring\_buffer\_free\_size 函数 ----------------------- * 函数功能: >

获取空闲空间的长度。 * 函数原型: ``` uint32_t ring_buffer_free_size (ring_buffer_t* ring_buffer); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | uint32\_t | 空闲空间的长度。 | | ring\_buffer | ring\_buffer\_t* | ring\_buffer对象。 | #### ring\_buffer\_is\_empty 函数 ----------------------- * 函数功能: >

检查ring_buffer是否空。 * 函数原型: ``` bool_t ring_buffer_is_empty (ring_buffer_t* ring_buffer); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | bool\_t | 是否空。 | | ring\_buffer | ring\_buffer\_t* | ring\_buffer对象。 | #### ring\_buffer\_is\_full 函数 ----------------------- * 函数功能: >

检查ring_buffer是否满。 * 函数原型: ``` bool_t ring_buffer_is_full (ring_buffer_t* ring_buffer); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | bool\_t | 是否满。 | | ring\_buffer | ring\_buffer\_t* | ring\_buffer对象。 | #### ring\_buffer\_peek 函数 ----------------------- * 函数功能: >

读取数据(不修改读取位置)。 * 函数原型: ``` uint32_t ring_buffer_peek (ring_buffer_t* ring_buffer, void* buff, uint32_t size); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | uint32\_t | 返回实际读取数据的长度。 | | ring\_buffer | ring\_buffer\_t* | ring\_buffer对象。 | | buff | void* | 缓冲区。 | | size | uint32\_t | 最大长度。 | #### ring\_buffer\_read 函数 ----------------------- * 函数功能: >

读取数据。 * 函数原型: ``` uint32_t ring_buffer_read (ring_buffer_t* ring_buffer, void* buff, uint32_t size); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | uint32\_t | 返回实际读取数据的长度。 | | ring\_buffer | ring\_buffer\_t* | ring\_buffer对象。 | | buff | void* | 缓冲区。 | | size | uint32\_t | 最大长度。 | #### ring\_buffer\_read\_len 函数 ----------------------- * 函数功能: >

读取指定长度数据,要么成功要么失败。 * 函数原型: ``` ret_t ring_buffer_read_len (ring_buffer_t* ring_buffer, void* buff, uint32_t size); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | ring\_buffer | ring\_buffer\_t* | ring\_buffer对象。 | | buff | void* | 缓冲区。 | | size | uint32\_t | 最大长度。 | #### ring\_buffer\_reset 函数 ----------------------- * 函数功能: >

重置ring_buffer为空。 * 函数原型: ``` ret_t ring_buffer_reset (ring_buffer_t* ring_buffer); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | ring\_buffer | ring\_buffer\_t* | ring\_buffer对象。 | #### ring\_buffer\_set\_read\_cursor 函数 ----------------------- * 函数功能: >

设置读取光标的位置。 * 函数原型: ``` ret_t ring_buffer_set_read_cursor (ring_buffer_t* ring_buffer, uint32_t r); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | ring\_buffer | ring\_buffer\_t* | ring\_buffer对象。 | | r | uint32\_t | 读取光标的位置。 | #### ring\_buffer\_set\_read\_cursor\_delta 函数 ----------------------- * 函数功能: >

设置读取光标的位置(delta)。 * 函数原型: ``` ret_t ring_buffer_set_read_cursor_delta (ring_buffer_t* ring_buffer, uint32_t r_delta); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | ring\_buffer | ring\_buffer\_t* | ring\_buffer对象。 | | r\_delta | uint32\_t | 读取光标的位置(delta)。 | #### ring\_buffer\_set\_write\_cursor 函数 ----------------------- * 函数功能: >

设置写入光标的位置。 * 函数原型: ``` ret_t ring_buffer_set_write_cursor (ring_buffer_t* ring_buffer, uint32_t w); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | ring\_buffer | ring\_buffer\_t* | ring\_buffer对象。 | | w | uint32\_t | 写入光标的位置。 | #### ring\_buffer\_set\_write\_cursor\_delta 函数 ----------------------- * 函数功能: >

设置写入光标的位置(delta)。 * 函数原型: ``` ret_t ring_buffer_set_write_cursor_delta (ring_buffer_t* ring_buffer, uint32_t w_delta); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | ring\_buffer | ring\_buffer\_t* | ring\_buffer对象。 | | w\_delta | uint32\_t | 写入光标的位置(delta)。 | #### ring\_buffer\_size 函数 ----------------------- * 函数功能: >

获取数据长度。 * 函数原型: ``` uint32_t ring_buffer_size (ring_buffer_t* ring_buffer); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | uint32\_t | 数据长度。 | | ring\_buffer | ring\_buffer\_t* | ring\_buffer对象。 | #### ring\_buffer\_skip 函数 ----------------------- * 函数功能: >

跳过指定长度数据,要么成功要么失败。 * 函数原型: ``` ret_t ring_buffer_skip (ring_buffer_t* ring_buffer, uint32_t size); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | ring\_buffer | ring\_buffer\_t* | ring\_buffer对象。 | | size | uint32\_t | 长度。 | #### ring\_buffer\_write 函数 ----------------------- * 函数功能: >

写入数据。 * 函数原型: ``` uint32_t ring_buffer_write (ring_buffer_t* ring_buffer, const void* buff, uint32_t size); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | uint32\_t | 返回实际写入数据的长度。 | | ring\_buffer | ring\_buffer\_t* | ring\_buffer对象。 | | buff | const void* | 缓冲区。 | | size | uint32\_t | 最大长度。 | #### ring\_buffer\_write\_len 函数 ----------------------- * 函数功能: >

写入指定长度数据,要么成功要么失败。 * 函数原型: ``` ret_t ring_buffer_write_len (ring_buffer_t* ring_buffer, const void* buff, uint32_t size); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | ring\_buffer | ring\_buffer\_t* | ring\_buffer对象。 | | buff | const void* | 缓冲区。 | | size | uint32\_t | 最大长度。 | #### capacity 属性 ----------------------- >

当前容量。 * 类型:uint32\_t | 特性 | 是否支持 | | -------- | ----- | | 可直接读取 | 是 | | 可直接修改 | 否 | #### data 属性 ----------------------- >

数据。 * 类型:uint8\_t* | 特性 | 是否支持 | | -------- | ----- | | 可直接读取 | 是 | | 可直接修改 | 否 | #### full 属性 ----------------------- >

是否满。 * 类型:bool\_t | 特性 | 是否支持 | | -------- | ----- | | 可直接读取 | 是 | | 可直接修改 | 否 | #### max\_capacity 属性 ----------------------- >

最大容量。 * 类型:uint32\_t | 特性 | 是否支持 | | -------- | ----- | | 可直接读取 | 是 | | 可直接修改 | 否 | #### r 属性 ----------------------- >

读取位置。 * 类型:uint32\_t | 特性 | 是否支持 | | -------- | ----- | | 可直接读取 | 是 | | 可直接修改 | 否 | #### w 属性 ----------------------- >

写入位置。 * 类型:uint32\_t | 特性 | 是否支持 | | -------- | ----- | | 可直接读取 | 是 | | 可直接修改 | 否 |