carlink_utils.h 1.4 KB

12345678910111213141516171819202122232425262728293031
  1. #ifndef __CARLINK_UTILS_H
  2. #define __CARLINK_UTILS_H
  3. void hex2str(const uint8_t *input, uint16_t input_len, char *output);
  4. int string2hex(char *input, int input_len, char *output, int max_len);
  5. void str2asiistr(const char *input, int input_len, char *output, int max_len);
  6. typedef struct
  7. {
  8. uint8_t * buffer;
  9. //const uint8_t * end;
  10. uint32_t size;
  11. uint32_t mask;
  12. uint32_t read_offset;
  13. uint32_t write_offset;
  14. } ring_buffer_t;
  15. int ring_buffer_init( ring_buffer_t *ctx, int buffer_size);
  16. void ring_buffer_free( ring_buffer_t *ctx );
  17. uint32_t ring_buffer_write(ring_buffer_t *ctx, uint8_t *buffer, uint32_t len);
  18. uint32_t ring_buffer_read(ring_buffer_t *ctx, uint8_t *buffer, uint32_t len);
  19. /*#define ring_buffer_get_read_ptr( RING ) ( &(RING)->buffer[ (RING)->read_offset & (RING)->mask ] )
  20. #define ring_buffer_get_write_ptr( RING ) ( &(RING)->buffer[ (RING)->write_offset & (RING)->mask ] )
  21. #define ring_buffer_read_advance( RING, COUNT ) do { (RING)->read_offset += (COUNT); } while( 0 )
  22. #define ring_buffer_write_advance( RING, COUNT ) do { (RING)->write_offset += (COUNT); } while( 0 )
  23. #define ring_buffer_reset( RING ) do { (RING)->read_offset = (RING)->write_offset; } while( 0 )*/
  24. #define ring_buffer_get_bytes_used( RING ) ( (uint32_t)( (RING)->write_offset - (RING)->read_offset ) )
  25. #define ring_buffer_get_bytes_free( RING ) ( (RING)->size - ring_buffer_get_bytes_used( RING ) )
  26. #endif