TM STM32Fxxx HAL Libraries  v1.0.0
Libraries for STM32Fxxx (F0, F4 and F7 series) devices based on HAL drivers from ST from Tilen Majerle
tm_stm32_buffer.h
1 
37 #ifndef TM_BUFFER_H
38 #define TM_BUFFER_H 130
39 
40 /* C++ detection */
41 #ifdef __cplusplus
42 extern "C" {
43 #endif
44 
105 #include "stm32fxxx_hal.h"
106 #include "defines.h"
107 #include "stdlib.h"
108 #include "string.h"
109 
116 #define BUFFER_INITIALIZED 0x01
117 #define BUFFER_MALLOC 0x02
119 /* Custom allocation and free functions if needed */
120 #ifndef LIB_ALLOC_FUNC
121 #define LIB_ALLOC_FUNC malloc
122 #endif
123 #ifndef LIB_FREE_FUNC
124 #define LIB_FREE_FUNC free
125 #endif
126 
127 #ifndef BUFFER_FAST
128 #define BUFFER_FAST 1
129 #endif
130 
144 typedef struct _TM_BUFFER_t {
145  uint32_t Size;
146  uint32_t In;
147  uint32_t Out;
148  uint8_t* Buffer;
149  uint8_t Flags;
150  uint8_t StringDelimiter;
152 } TM_BUFFER_t;
153 
174 uint8_t TM_BUFFER_Init(TM_BUFFER_t* Buffer, uint32_t Size, uint8_t* BufferPtr);
175 
182 void TM_BUFFER_Free(TM_BUFFER_t* Buffer);
183 
191 uint32_t TM_BUFFER_Write(TM_BUFFER_t* Buffer, uint8_t* Data, uint32_t count);
192 
201 uint32_t TM_BUFFER_WriteToTop(TM_BUFFER_t* Buffer, uint8_t* Data, uint32_t count);
202 
210 uint32_t TM_BUFFER_Read(TM_BUFFER_t* Buffer, uint8_t* Data, uint32_t count);
211 
217 uint32_t TM_BUFFER_GetFree(TM_BUFFER_t* Buffer);
218 
224 uint32_t TM_BUFFER_GetFull(TM_BUFFER_t* Buffer);
225 
231 void TM_BUFFER_Reset(TM_BUFFER_t* Buffer);
232 
242 int32_t TM_BUFFER_FindElement(TM_BUFFER_t* Buffer, uint8_t Element);
243 
253 int32_t TM_BUFFER_Find(TM_BUFFER_t* Buffer, uint8_t* Data, uint32_t Size);
254 
261 #define TM_BUFFER_SetStringDelimiter(Buffer, StrDel) ((Buffer)->StringDelimiter = (StrDel))
262 
269 uint32_t TM_BUFFER_WriteString(TM_BUFFER_t* Buffer, char* buff);
270 
278 uint32_t TM_BUFFER_ReadString(TM_BUFFER_t* Buffer, char* buff, uint32_t buffsize);
279 
289 int8_t TM_BUFFER_CheckElement(TM_BUFFER_t* Buffer, uint32_t pos, uint8_t* element);
290 
303 /* C++ detection */
304 #ifdef __cplusplus
305 }
306 #endif
307 
308 #endif
uint8_t Flags
Definition: tm_stm32_buffer.h:149
int32_t TM_BUFFER_Find(TM_BUFFER_t *Buffer, uint8_t *Data, uint32_t Size)
Checks if specific data sequence are stored in buffer.
int32_t TM_BUFFER_FindElement(TM_BUFFER_t *Buffer, uint8_t Element)
Checks if specific element value is stored in buffer.
int8_t TM_BUFFER_CheckElement(TM_BUFFER_t *Buffer, uint32_t pos, uint8_t *element)
Checks if character exists in location in buffer.
uint8_t StringDelimiter
Definition: tm_stm32_buffer.h:150
uint32_t TM_BUFFER_Write(TM_BUFFER_t *Buffer, uint8_t *Data, uint32_t count)
Writes data to buffer.
void * UserParameters
Definition: tm_stm32_buffer.h:151
void TM_BUFFER_Reset(TM_BUFFER_t *Buffer)
Resets (clears) buffer pointers.
uint32_t Out
Definition: tm_stm32_buffer.h:147
void TM_BUFFER_Free(TM_BUFFER_t *Buffer)
Free memory for buffer allocated using malloc.
uint32_t TM_BUFFER_GetFree(TM_BUFFER_t *Buffer)
Gets number of free elements in buffer.
uint8_t * Buffer
Definition: tm_stm32_buffer.h:148
uint32_t In
Definition: tm_stm32_buffer.h:146
Buffer structure.
Definition: tm_stm32_buffer.h:144
uint32_t TM_BUFFER_GetFull(TM_BUFFER_t *Buffer)
Gets number of elements in buffer.
uint8_t TM_BUFFER_Init(TM_BUFFER_t *Buffer, uint32_t Size, uint8_t *BufferPtr)
Initializes buffer structure for work.
uint32_t TM_BUFFER_WriteString(TM_BUFFER_t *Buffer, char *buff)
Writes string formatted data to buffer.
struct _TM_BUFFER_t TM_BUFFER_t
Buffer structure.
uint32_t Size
Definition: tm_stm32_buffer.h:145
uint32_t TM_BUFFER_ReadString(TM_BUFFER_t *Buffer, char *buff, uint32_t buffsize)
Reads from buffer as string.
uint32_t TM_BUFFER_WriteToTop(TM_BUFFER_t *Buffer, uint8_t *Data, uint32_t count)
Writes data to buffer to top of buffer in reversed order.
uint32_t TM_BUFFER_Read(TM_BUFFER_t *Buffer, uint8_t *Data, uint32_t count)
Reads data from buffer.