example.c 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include "ringbuffer.h"
  4. int main(int argc, char *argv[])
  5. {
  6. ringbuffer_st ringbuffer;
  7. ringbuffer_init(&ringbuffer, 1024);
  8. memset(ringbuffer.data, 0 ,1024);
  9. ringbuffer.head = 128;
  10. ringbuffer.tail = 128;
  11. ringbuffer.buffer_size = 0;
  12. char buffer[128];
  13. for(int i=0;i<128;i++)
  14. {
  15. buffer[i] = i;
  16. }
  17. ringbuffer_append(&ringbuffer, buffer, 128);
  18. data_t data;
  19. int ret = ringbuffer_data(ringbuffer, &data, 127);
  20. if(ret == 0)
  21. printf("read data: 0x%02x\n", data);
  22. else
  23. printf("out of range\n");
  24. ret = ringbuffer_data(ringbuffer, &data, 128);
  25. if(ret == 0)
  26. printf("read data: 0x%02x\n", data);
  27. else
  28. printf("out of range\n");
  29. ringbuffer_print(ringbuffer, true);
  30. char temp[512];
  31. int read_size = ringbuffer_read(ringbuffer, temp, 18);
  32. printf("read size: %d\n", read_size);
  33. for(int i=0;i<read_size;i++)
  34. {
  35. printf("0x%02x %d\n", temp[i], temp[i]);
  36. }
  37. ringbuffer_popup(&ringbuffer, read_size);
  38. ringbuffer_print(ringbuffer, false);
  39. ringbuffer_popup(&ringbuffer, 128);
  40. ringbuffer_print(ringbuffer, false);
  41. printf("ringbuffer empty: %s\n", ringbuffer_empty(ringbuffer) ? "true" : "false");
  42. ringbuffer_release(&ringbuffer);
  43. return 0;
  44. }