summaryrefslogtreecommitdiff
path: root/src/utils
diff options
context:
space:
mode:
authorHampusM <hampus@hampusmat.com>2022-02-15 12:33:52 +0100
committerHampusM <hampus@hampusmat.com>2022-02-15 12:33:52 +0100
commitbcdce9633dc351d3bc7f347a165348b8fab87cd9 (patch)
tree88c2f5d8f0c5fac2bca28e4b543e5209f3bc98fb /src/utils
parent917adc6a2b6b166e37fc3d4f94b41488f0c245a5 (diff)
refactor: reorganize files & improve classes
Diffstat (limited to 'src/utils')
-rw-r--r--src/utils/general.cpp37
-rw-r--r--src/utils/general.hpp36
-rw-r--r--src/utils/memory.hpp33
-rw-r--r--src/utils/memory.tpp93
-rw-r--r--src/utils/serial.cpp68
-rw-r--r--src/utils/serial.hpp29
-rw-r--r--src/utils/smart_string.cpp65
-rw-r--r--src/utils/smart_string.hpp20
-rw-r--r--src/utils/time.cpp41
-rw-r--r--src/utils/time.hpp52
10 files changed, 0 insertions, 474 deletions
diff --git a/src/utils/general.cpp b/src/utils/general.cpp
deleted file mode 100644
index 3464c30..0000000
--- a/src/utils/general.cpp
+++ /dev/null
@@ -1,37 +0,0 @@
-#include "general.hpp"
-
-void stop()
-{
- while (true) {}
-}
-
-UniquePtr<SmartString> doubleToStr(double num, unsigned int width, unsigned int precision)
-{
- auto str = make_unique<SmartString>(width + precision);
-
- dtostrf(num, static_cast<signed char>(width), precision, str->c_str);
-
- return str;
-}
-
-UniquePtr<SmartString> intToStr(int num)
-{
- auto width = static_cast<unsigned int>(log10(num));
-
- auto str = make_unique<SmartString>(width + 1U);
-
- dtostrf(num, static_cast<signed char>(width + 1U), 0, str->c_str);
-
- return str;
-}
-
-UniquePtr<SmartString> uintToStr(unsigned int num)
-{
- auto width = static_cast<unsigned int>(log10(num));
-
- auto str = make_unique<SmartString>(width + 1U);
-
- dtostrf(num, static_cast<signed char>(width + 1U), 0, str->c_str);
-
- return str;
-}
diff --git a/src/utils/general.hpp b/src/utils/general.hpp
deleted file mode 100644
index dbdbdfc..0000000
--- a/src/utils/general.hpp
+++ /dev/null
@@ -1,36 +0,0 @@
-#pragma once
-
-#include "memory.hpp"
-#include "smart_string.hpp"
-
-/**
- * Stops code execution.
- */
-void stop();
-
-/**
- * Converts a double number to a string.
- *
- * @param num A double number
- * @param width The desired double width
- * @param precision The desired double precision
- * @returns The double as a string.
- */
-UniquePtr<SmartString> doubleToStr(double num, unsigned int width = 3,
- unsigned int precision = 2);
-
-/**
- * Converts a integer to a string.
- *
- * @param num A number
- * @returns The number as a string.
- */
-UniquePtr<SmartString> intToStr(int num);
-
-/**
- * Converts a unsigned integer to a string.
- *
- * @param num A number
- * @returns The number as a string.
- */
-UniquePtr<SmartString> uintToStr(unsigned int num);
diff --git a/src/utils/memory.hpp b/src/utils/memory.hpp
deleted file mode 100644
index e870b0b..0000000
--- a/src/utils/memory.hpp
+++ /dev/null
@@ -1,33 +0,0 @@
-#pragma once
-
-#include <stddef.h>
-
-template <typename memType>
-memType *malloc_s(unsigned int size);
-
-template <class Target>
-class UniquePtr
-{
-public:
- explicit UniquePtr();
- explicit UniquePtr(Target *target);
- UniquePtr(const UniquePtr &unique_ptr);
- UniquePtr(UniquePtr &&unique_ptr) noexcept;
-
- UniquePtr &operator=(const UniquePtr &unique_ptr);
-
- UniquePtr &operator=(UniquePtr &&unique_ptr) noexcept;
-
- ~UniquePtr();
-
- Target operator*() const;
- Target *operator->() const;
-
-private:
- Target *_target = nullptr;
-};
-
-template <typename Target, typename... Args>
-UniquePtr<Target> make_unique(Args... args);
-
-#include "memory.tpp"
diff --git a/src/utils/memory.tpp b/src/utils/memory.tpp
deleted file mode 100644
index 6261c81..0000000
--- a/src/utils/memory.tpp
+++ /dev/null
@@ -1,93 +0,0 @@
-#pragma once
-
-#include "general.hpp"
-
-#include <Arduino.h>
-
-template <typename memType>
-memType *malloc_s(unsigned int size)
-{
- auto *mem = malloc(size);
-
- if (mem == nullptr)
- {
- Serial.println("Error: Memory allocation failed");
- while (true) {}
- }
-
- return static_cast<memType *>(mem);
-}
-
-template <class Target>
-UniquePtr<Target>::UniquePtr() = default;
-
-template <class Target>
-UniquePtr<Target>::UniquePtr(Target *target) : _target(target)
-{
-}
-
-template <class Target>
-UniquePtr<Target>::UniquePtr(const UniquePtr &unique_ptr)
- : _target(new Target(*(unique_ptr._target)))
-{
-}
-
-template <class Target>
-UniquePtr<Target>::UniquePtr(UniquePtr &&unique_ptr) noexcept
- : _target(unique_ptr._target)
-{
- unique_ptr._target = nullptr;
-}
-
-template <class Target>
-UniquePtr<Target> &UniquePtr<Target>::operator=(const UniquePtr &unique_ptr)
-{
- if (&unique_ptr != this)
- {
- delete _target;
- _target = nullptr;
- _target = new Target(*(unique_ptr._target));
- }
-
- return *this;
-}
-
-template <class Target>
-UniquePtr<Target> &UniquePtr<Target>::operator=(UniquePtr &&unique_ptr) noexcept
-{
- if (&unique_ptr != this)
- {
- delete _target;
- _target = unique_ptr._target;
- unique_ptr._target = nullptr;
- }
-
- return *this;
-}
-
-template <class Target>
-UniquePtr<Target>::~UniquePtr()
-{
- if (this->_target != nullptr)
- {
- delete this->_target;
- }
-}
-
-template <class Target>
-Target UniquePtr<Target>::operator*() const
-{
- return *(this->_target);
-}
-
-template <class Target>
-Target *UniquePtr<Target>::operator->() const
-{
- return this->_target;
-}
-
-template <class Target, typename... Args>
-UniquePtr<Target> make_unique(Args... args)
-{
- return UniquePtr<Target>(new Target(args...));
-}
diff --git a/src/utils/serial.cpp b/src/utils/serial.cpp
deleted file mode 100644
index 8e4194f..0000000
--- a/src/utils/serial.cpp
+++ /dev/null
@@ -1,68 +0,0 @@
-#include "serial.hpp"
-
-#include "general.hpp"
-
-SerialStream::SerialStream(Serial_ serial, uint64_t baud_rate) : _serial(serial)
-{
- this->_serial.begin(baud_rate);
-
- while (!this->_serial) {}
-}
-
-SerialStream &SerialStream::operator<<(const char *str)
-{
- this->write(str);
- return *this;
-}
-
-SerialStream &SerialStream::operator<<(const SmartString &str)
-{
- this->write(str.c_str);
- return *this;
-}
-
-SerialStream &SerialStream::operator<<(const double &num)
-{
- this->write(doubleToStr(num)->c_str);
- return *this;
-}
-
-SerialStream &SerialStream::operator<<(const int &num)
-{
- this->write(intToStr(num)->c_str);
- return *this;
-}
-
-SerialStream &SerialStream::operator<<(const unsigned int &num)
-{
- this->write(uintToStr(num)->c_str);
- return *this;
-}
-
-SerialStream &SerialStream::operator<<(const uint32_t &num)
-{
- this->write(uintToStr(num)->c_str);
- return *this;
-}
-
-SerialStream &SerialStream::operator<<(void (*manipulator)(SerialStream *))
-{
- manipulator(this);
- return *this;
-}
-
-void SerialStream::write(const char *str)
-{
- this->_serial.write(str);
-}
-
-void SerialStream::flush()
-{
- this->_serial.flush();
-}
-
-void endl(SerialStream *serial_stream)
-{
- serial_stream->write("\n");
- serial_stream->flush();
-}
diff --git a/src/utils/serial.hpp b/src/utils/serial.hpp
deleted file mode 100644
index 0d4f929..0000000
--- a/src/utils/serial.hpp
+++ /dev/null
@@ -1,29 +0,0 @@
-#pragma once
-
-#include "smart_string.hpp"
-
-#include <USBAPI.h>
-
-class SerialStream
-{
-public:
- SerialStream(Serial_ serial, uint64_t baud_rate);
-
- SerialStream &operator<<(const char *str);
- SerialStream &operator<<(const SmartString &str);
- SerialStream &operator<<(const double &num);
- SerialStream &operator<<(const int &num);
- SerialStream &operator<<(const unsigned int &num);
- SerialStream &operator<<(const uint32_t &num);
-
- SerialStream &operator<<(void (*manipulator)(SerialStream *));
-
- void write(const char *str);
-
- void flush();
-
-private:
- Serial_ _serial;
-};
-
-void endl(SerialStream *serial_stream);
diff --git a/src/utils/smart_string.cpp b/src/utils/smart_string.cpp
deleted file mode 100644
index ac9a862..0000000
--- a/src/utils/smart_string.cpp
+++ /dev/null
@@ -1,65 +0,0 @@
-#include "smart_string.hpp"
-
-#include "memory.hpp"
-
-#include <stdlib.h>
-
-SmartString::SmartString(char *c_string) : c_str(c_string)
-{
-}
-
-SmartString::SmartString(unsigned int size) : c_str(malloc_s<char>(size + 1))
-{
-}
-
-SmartString::SmartString(const SmartString &smart_str)
- : c_str(malloc_s<char>(strlen(smart_str.c_str) + 1))
-{
- memcpy(c_str, smart_str.c_str, strlen(smart_str.c_str) + 1);
-}
-
-SmartString::SmartString(SmartString &&smart_str) noexcept : c_str(smart_str.c_str)
-{
- smart_str.c_str = nullptr;
-}
-
-SmartString &SmartString::operator=(const SmartString &smart_str)
-{
- if (&smart_str != this)
- {
- free(c_str);
- c_str = nullptr;
-
- auto str_size = strlen(smart_str.c_str) + 1;
-
- c_str = malloc_s<char>(str_size);
- memcpy(c_str, smart_str.c_str, str_size);
- }
-
- return *this;
-}
-
-SmartString &SmartString::operator=(SmartString &&smart_str) noexcept
-{
- if (&smart_str != this)
- {
- free(c_str);
- c_str = smart_str.c_str;
- smart_str.c_str = nullptr;
- }
-
- return *this;
-}
-
-SmartString::~SmartString()
-{
- if (c_str != nullptr)
- {
- free(c_str);
- }
-}
-
-SmartString::operator char *() const
-{
- return c_str;
-}
diff --git a/src/utils/smart_string.hpp b/src/utils/smart_string.hpp
deleted file mode 100644
index 6390465..0000000
--- a/src/utils/smart_string.hpp
+++ /dev/null
@@ -1,20 +0,0 @@
-#pragma once
-
-class SmartString
-{
-public:
- explicit SmartString(char *c_str);
- explicit SmartString(unsigned int size);
- SmartString(const SmartString &smart_str);
- SmartString(SmartString &&smart_str) noexcept;
-
- SmartString &operator=(const SmartString &smart_str);
-
- SmartString &operator=(SmartString &&smart_str) noexcept;
-
- ~SmartString();
-
- explicit operator char *() const;
-
- char *c_str = nullptr;
-};
diff --git a/src/utils/time.cpp b/src/utils/time.cpp
deleted file mode 100644
index c6d981c..0000000
--- a/src/utils/time.cpp
+++ /dev/null
@@ -1,41 +0,0 @@
-#include "time.hpp"
-
-#include <Arduino.h>
-
-Time::Time(uint64_t time_micros) : _time_micros(time_micros)
-{
-}
-
-void Time::update()
-{
- _time_micros = micros();
-}
-
-Time Time::diff(Time prev_time)
-{
- return Time(_time_micros - prev_time.microsecs());
-}
-
-double Time::secs()
-{
- const double micros_to_secs = 0.000001;
-
- return static_cast<double>(_time_micros) * micros_to_secs;
-}
-
-double Time::millisecs()
-{
- const double micros_to_millis = 0.001;
-
- return static_cast<double>(_time_micros) * micros_to_millis;
-}
-
-uint64_t Time::microsecs()
-{
- return _time_micros;
-}
-
-Time time_now()
-{
- return Time(micros());
-}
diff --git a/src/utils/time.hpp b/src/utils/time.hpp
deleted file mode 100644
index 1577bb7..0000000
--- a/src/utils/time.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-#pragma once
-
-#include <stdint.h>
-
-/**
- * A representation of time.
- */
-class Time
-{
-public:
- /**
- * A representation of time.
- *
- * @param time_micros Time in microseconds
- */
- explicit Time(uint64_t time_micros);
-
- /**
- * Updates the time to the current time.
- */
- void update();
-
- /**
- * Returns the difference between two points in time.
- *
- * @param prev_time A previous point in time
- */
- Time diff(Time prev_time);
-
- /**
- * Returns the time in seconds.
- */
- double secs();
-
- /**
- * Returns the time in milliseconds.
- */
- double millisecs();
-
- /**
- * Returns the time in microseconds.
- */
- uint64_t microsecs();
-
-private:
- uint64_t _time_micros;
-};
-
-/**
- * Returns a time object for the time since the program started.
- */
-Time time_now();