MAX_CARLINK_A270S/MXC_A27-PCB4.5-270T/app/carlink/common/carlink_utils.h

32 lines
1.4 KiB
C
Raw Permalink Normal View History

2025-01-21 16:49:37 +08:00
#ifndef __CARLINK_UTILS_H
#define __CARLINK_UTILS_H
void hex2str(const uint8_t *input, uint16_t input_len, char *output);
int string2hex(char *input, int input_len, char *output, int max_len);
void str2asiistr(const char *input, int input_len, char *output, int max_len);
typedef struct
{
uint8_t * buffer;
//const uint8_t * end;
uint32_t size;
uint32_t mask;
uint32_t read_offset;
uint32_t write_offset;
} ring_buffer_t;
int ring_buffer_init( ring_buffer_t *ctx, int buffer_size);
void ring_buffer_free( ring_buffer_t *ctx );
uint32_t ring_buffer_write(ring_buffer_t *ctx, uint8_t *buffer, uint32_t len);
uint32_t ring_buffer_read(ring_buffer_t *ctx, uint8_t *buffer, uint32_t len);
/*#define ring_buffer_get_read_ptr( RING ) ( &(RING)->buffer[ (RING)->read_offset & (RING)->mask ] )
#define ring_buffer_get_write_ptr( RING ) ( &(RING)->buffer[ (RING)->write_offset & (RING)->mask ] )
#define ring_buffer_read_advance( RING, COUNT ) do { (RING)->read_offset += (COUNT); } while( 0 )
#define ring_buffer_write_advance( RING, COUNT ) do { (RING)->write_offset += (COUNT); } while( 0 )
#define ring_buffer_reset( RING ) do { (RING)->read_offset = (RING)->write_offset; } while( 0 )*/
#define ring_buffer_get_bytes_used( RING ) ( (uint32_t)( (RING)->write_offset - (RING)->read_offset ) )
#define ring_buffer_get_bytes_free( RING ) ( (RING)->size - ring_buffer_get_bytes_used( RING ) )
#endif