ringbuffer and tests

This commit is contained in:
2020-10-28 19:40:08 +01:00
parent 73239f4436
commit b8e676299a
12 changed files with 520 additions and 72 deletions

6
cube/User/Inc/logger.h Normal file
View File

@ -0,0 +1,6 @@
#ifndef _LOGGER_H_
#define _LOGGER_H_
void log(char *msg);
#endif // _LOGGER_H_

8
cube/User/Inc/mbusComm.h Normal file
View File

@ -0,0 +1,8 @@
#ifndef _MBUSCOMM_H_
#define _MBUSCOMM_H_
#include <stdint.h>
void mbusCommRequest(uint8_t cmd, uint8_t addr);
#endif // _MBUSCOMM_H_

View File

@ -0,0 +1,23 @@
#ifndef _RINGBUFFER_H_
#define _RINGBUFFER_H_
#include <stdint.h>
#include <stdbool.h>
typedef struct {
uint32_t bufferReadIdx;
uint32_t bufferWriteIdx;
uint32_t bufferSize;
uint8_t* buffer;
} ringbuffer_t;
void ringbufferInit(ringbuffer_t *handle, uint32_t bufferSize);
void ringbufferFree(ringbuffer_t *handle);
int ringbufferPut(ringbuffer_t *handle, uint8_t *data, uint32_t dataLen);
uint8_t *ringbufferGet(ringbuffer_t *handle, uint32_t dataLen);
bool ringbufferEmpty(ringbuffer_t *handle);
int ringbufferGetOne(ringbuffer_t *handle); // if positive, cast to uint8_t and be happy, if negative error
#endif // _RINGBUFFER_H_