Refactor
This commit is contained in:
@@ -7,9 +7,10 @@
|
|||||||
|
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
#include "Start.hpp"
|
#include "Start.hpp"
|
||||||
#include "DebugFIFO.hpp"
|
|
||||||
|
|
||||||
DebugFIFO debug(12);
|
#include "StaticFIFO.hpp"
|
||||||
|
|
||||||
|
StaticFIFO debug(12);
|
||||||
|
|
||||||
void Start(){
|
void Start(){
|
||||||
debug.push("string 1");
|
debug.push("string 1");
|
||||||
|
|||||||
@@ -5,66 +5,67 @@
|
|||||||
* Author: Gabriel
|
* Author: Gabriel
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "DebugFIFO.hpp"
|
#include "StaticFIFO.hpp"
|
||||||
|
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
|
|
||||||
DebugFIFO::DebugFIFO(uint32_t fifoSize) : fifoSize(fifoSize){
|
StaticFIFO::StaticFIFO(uint32_t fifoSize) : fifoSize(fifoSize){
|
||||||
fifo = new DebugString[fifoSize];
|
fifo = new StringContainer[fifoSize];
|
||||||
}
|
}
|
||||||
|
|
||||||
DebugFIFO::~DebugFIFO() {
|
StaticFIFO::~StaticFIFO() {
|
||||||
delete fifo;
|
delete fifo;
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t DebugFIFO::push(const char* string){
|
int32_t StaticFIFO::push(const char* string){
|
||||||
if (((fifoSize + firstIdx) - lastIdx) % fifoSize == 1) {
|
if (((fifoSize + firstIdx) - lastIdx) % fifoSize == 1) {
|
||||||
return 0; //overflow
|
return 0; //overflow
|
||||||
}else if(strlen(string) + 1 > bufSize){
|
}else if(strlen(string) + 1 > bufSize){
|
||||||
return -1; //length limit
|
return -1; //length limit
|
||||||
}
|
}
|
||||||
DebugString debugString;
|
StringContainer stringContainer;
|
||||||
for(uint32_t i=0; i < (strlen(string) + 1); i++){
|
for(uint32_t i=0; i < (strlen(string) + 1); i++){
|
||||||
debugString.buffer[i] = string[i];
|
stringContainer.buffer[i] = string[i];
|
||||||
}
|
}
|
||||||
debugString.length = strlen(string) + 1;
|
stringContainer.length = strlen(string) + 1;
|
||||||
fifo[lastIdx] = debugString;
|
fifo[lastIdx] = stringContainer;
|
||||||
lastIdx = (lastIdx + 1) % fifoSize;
|
lastIdx = (lastIdx + 1) % fifoSize;
|
||||||
return (((fifoSize + lastIdx) - firstIdx) % fifoSize);
|
return (((fifoSize + lastIdx) - firstIdx) % fifoSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t DebugFIFO::push(uint8_t* pointer, uint32_t length){
|
int32_t StaticFIFO::push(uint8_t* pointer, uint32_t length){
|
||||||
if (((fifoSize + firstIdx) - lastIdx) % fifoSize == 1) {
|
if (((fifoSize + firstIdx) - lastIdx) % fifoSize == 1) {
|
||||||
return 0; //overflow
|
return 0; //overflow
|
||||||
}else if(length > bufSize){
|
}else if(length > bufSize){
|
||||||
return -1; //length limit
|
return -1; //length limit
|
||||||
}
|
}
|
||||||
DebugString debugString;
|
StringContainer stringContainer;
|
||||||
for(uint32_t i=0; i < length; i++){
|
for(uint32_t i=0; i < length; i++){
|
||||||
debugString.buffer[i] = pointer[i];
|
stringContainer.buffer[i] = pointer[i];
|
||||||
}
|
}
|
||||||
debugString.length = length;
|
stringContainer.length = length;
|
||||||
fifo[lastIdx] = debugString;
|
fifo[lastIdx] = stringContainer;
|
||||||
lastIdx = (lastIdx + 1) % fifoSize;
|
lastIdx = (lastIdx + 1) % fifoSize;
|
||||||
return (((fifoSize + lastIdx) - firstIdx) % fifoSize);
|
return (((fifoSize + lastIdx) - firstIdx) % fifoSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t DebugFIFO::push(char* stringPointer, uint32_t stringLength){
|
int32_t StaticFIFO::push(char* stringPointer, uint32_t stringLength){
|
||||||
if (((fifoSize + firstIdx) - lastIdx) % fifoSize == 1) {
|
if (((fifoSize + firstIdx) - lastIdx) % fifoSize == 1) {
|
||||||
return 0; //overflow
|
return 0; //overflow
|
||||||
}else if(stringLength + 1 > bufSize){
|
}else if(stringLength + 1 > bufSize){
|
||||||
return -1; //length limit
|
return -1; //length limit
|
||||||
}
|
}
|
||||||
DebugString debugString;
|
StringContainer stringContainer;
|
||||||
for(uint32_t i=0; i < (stringLength + 1); i++){
|
for(uint32_t i=0; i < (stringLength + 1); i++){
|
||||||
debugString.buffer[i] = stringPointer[i];
|
stringContainer.buffer[i] = stringPointer[i];
|
||||||
}
|
}
|
||||||
debugString.length = stringLength + 1;
|
stringContainer.length = stringLength + 1;
|
||||||
fifo[lastIdx] = debugString;
|
fifo[lastIdx] = stringContainer;
|
||||||
lastIdx = (lastIdx + 1) % fifoSize;
|
lastIdx = (lastIdx + 1) % fifoSize;
|
||||||
return (((fifoSize + lastIdx) - firstIdx) % fifoSize);
|
return (((fifoSize + lastIdx) - firstIdx) % fifoSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t DebugFIFO::pop(uint8_t* pointer, uint8_t* length, uint32_t max_length){
|
int32_t StaticFIFO::pop(uint8_t* pointer, uint8_t* length, uint32_t max_length){
|
||||||
if (lastIdx == firstIdx){
|
if (lastIdx == firstIdx){
|
||||||
return 0; //underrun
|
return 0; //underrun
|
||||||
}else if(fifo[firstIdx].length > max_length){
|
}else if(fifo[firstIdx].length > max_length){
|
||||||
@@ -5,15 +5,15 @@
|
|||||||
* Author: Gabriel
|
* Author: Gabriel
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef SRC_COMPONENTS_DEBUGFIFO_HPP_
|
#ifndef SRC_COMPONENTS_STATICFIFO_HPP_
|
||||||
#define SRC_COMPONENTS_DEBUGFIFO_HPP_
|
#define SRC_COMPONENTS_STATICFIFO_HPP_
|
||||||
|
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
|
|
||||||
class DebugFIFO {
|
class StaticFIFO {
|
||||||
public:
|
public:
|
||||||
DebugFIFO(uint32_t fifoSize);
|
StaticFIFO(uint32_t fifoSize);
|
||||||
virtual ~DebugFIFO();
|
virtual ~StaticFIFO();
|
||||||
int32_t push(const char* string);
|
int32_t push(const char* string);
|
||||||
int32_t push(uint8_t* pointer, uint32_t length);
|
int32_t push(uint8_t* pointer, uint32_t length);
|
||||||
int32_t push(char* stringPointer, uint32_t stringLength);
|
int32_t push(char* stringPointer, uint32_t stringLength);
|
||||||
@@ -21,14 +21,14 @@ public:
|
|||||||
private:
|
private:
|
||||||
static const uint32_t bufSize = 256;
|
static const uint32_t bufSize = 256;
|
||||||
uint32_t fifoSize;
|
uint32_t fifoSize;
|
||||||
class DebugString{
|
class StringContainer{
|
||||||
public:
|
public:
|
||||||
uint8_t buffer[bufSize];
|
uint8_t buffer[bufSize];
|
||||||
uint32_t length;
|
uint32_t length;
|
||||||
};
|
};
|
||||||
DebugString* fifo;
|
StringContainer* fifo;
|
||||||
uint32_t firstIdx = 0;
|
uint32_t firstIdx = 0;
|
||||||
uint32_t lastIdx = 0;
|
uint32_t lastIdx = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* SRC_COMPONENTS_DEBUGFIFO_HPP_ */
|
#endif /* SRC_COMPONENTS_STATICFIFO_HPP_ */
|
||||||
Reference in New Issue
Block a user