/********************************************************************************* * Copyright: (C) 2024 LingYun IoT System Studio * All rights reserved. * * Filename: ringbuf.c * Description: This file is ring buffer test code. * * Version: 1.0.0(08/19/2024) * Author: Guo Wenxue * ChangeLog: 1, Release initial version on "08/19/2024 05:25:20 PM" * ********************************************************************************/ #include #include #include #include #include "logger.h" #include "ringbuf.h" int main (int argc, char **argv) { struct ring_buffer rb; char rbuf[256]; char buf[256]; log_open("console", LOG_LEVEL_DEBUG, 0, LOG_LOCK_DISABLE); rb_init(&rb, rbuf, sizeof(rbuf)); log_info("Initial rb with rbuf size: %d\n", sizeof(rbuf)); rb_write(&rb, "Hello", strlen("Hello")); log_warn("After rb_write() data size: %d free size: %d\n", rb_data_size(&rb), rb_free_size(&rb)); rb_write(&rb, "World", strlen("World")); log_warn("After rb_write() data size: %d free size: %d\n", rb_data_size(&rb), rb_free_size(&rb)); memset(buf, 0, sizeof(buf)); rb_copy(&rb, buf, sizeof(buf)); log_info("rb_copy() out data: %s\n", buf); log_warn("After rb_copy() data size: %d free size: %d\n", rb_data_size(&rb), rb_free_size(&rb)); memset(buf, 0, sizeof(buf)); rb_read(&rb, buf, sizeof(buf)); log_info("rb_read() out data: %s\n", buf); log_warn("After rb_read() data size: %d free size: %d\n", rb_data_size(&rb), rb_free_size(&rb)); rb_clear(&rb); log_close(); return 0; }