|
@@ -89,28 +89,32 @@ inline ring_buffer_size_t ring_buffer_num_items(ring_buffer_t *buffer) {
|
|
|
|
|
|
|
|
#if 0 //测试函数
|
|
#if 0 //测试函数
|
|
|
#include <stdio.h>
|
|
#include <stdio.h>
|
|
|
-void printf_n(char* str, int n) {
|
|
|
|
|
|
|
+void printf_n(char* info, char* str, int n) {
|
|
|
|
|
+ printf("%s%2d:", info, n);
|
|
|
for (size_t i = 0; i < n; i++)
|
|
for (size_t i = 0; i < n; i++)
|
|
|
{
|
|
{
|
|
|
printf("%c", str[i]);
|
|
printf("%c", str[i]);
|
|
|
}
|
|
}
|
|
|
|
|
+ printf("\r\n");
|
|
|
}
|
|
}
|
|
|
|
|
+#ifndef min
|
|
|
#define min(a,b) ((a)<(b)?(a):(b))
|
|
#define min(a,b) ((a)<(b)?(a):(b))
|
|
|
-int main()
|
|
|
|
|
|
|
+#endif
|
|
|
|
|
+int ring_main()
|
|
|
{
|
|
{
|
|
|
ring_buffer_t buff;
|
|
ring_buffer_t buff;
|
|
|
- uint8_t buff_data[8]={0};
|
|
|
|
|
|
|
+ char buff_data[8]={0};
|
|
|
|
|
|
|
|
ring_buffer_init(&buff, buff_data, sizeof(buff_data)); //环形大小
|
|
ring_buffer_init(&buff, buff_data, sizeof(buff_data)); //环形大小
|
|
|
printf("初始化长度: %d\r\n", buff.buf_size);
|
|
printf("初始化长度: %d\r\n", buff.buf_size);
|
|
|
|
|
|
|
|
ring_buffer_queue_arr(&buff, "0123456789", 10); //循环覆盖
|
|
ring_buffer_queue_arr(&buff, "0123456789", 10); //循环覆盖
|
|
|
- printf("写入%2d:", 10);printf_n(buff_data, min(10, buff.buf_size));printf("\r\n");
|
|
|
|
|
|
|
+ printf_n("写入", buff_data, min(10, buff.buf_size));
|
|
|
printf("当前长度: %d, 剩余长度: %d\r\n", ring_buffer_num_items(&buff), buff.buf_size-ring_buffer_num_items(&buff));
|
|
printf("当前长度: %d, 剩余长度: %d\r\n", ring_buffer_num_items(&buff), buff.buf_size-ring_buffer_num_items(&buff));
|
|
|
|
|
|
|
|
- uint8_t data[10]={0}; /* Application working data */
|
|
|
|
|
|
|
+ char data[10]={0}; /* Application working data */
|
|
|
ring_buffer_size_t len = ring_buffer_dequeue_arr(&buff, data, sizeof(data));
|
|
ring_buffer_size_t len = ring_buffer_dequeue_arr(&buff, data, sizeof(data));
|
|
|
- printf("读取%2d:", len);printf_n(data, len);printf("\r\n");
|
|
|
|
|
|
|
+ printf_n("读取", data, len);
|
|
|
printf("当前长度: %d, 剩余长度: %d\r\n", ring_buffer_num_items(&buff), buff.buf_size-ring_buffer_num_items(&buff));
|
|
printf("当前长度: %d, 剩余长度: %d\r\n", ring_buffer_num_items(&buff), buff.buf_size-ring_buffer_num_items(&buff));
|
|
|
return 0;
|
|
return 0;
|
|
|
}
|
|
}
|