diff --git a/AdaptiveBrightnessFirmware/Inc/vcp_receiver.hpp b/AdaptiveBrightnessFirmware/Inc/vcp_receiver.hpp deleted file mode 100644 index a410473..0000000 --- a/AdaptiveBrightnessFirmware/Inc/vcp_receiver.hpp +++ /dev/null @@ -1,53 +0,0 @@ -#pragma once - -#include -#include -#include - -extern "C" void vcpReceiveCallback(uint8_t*, uint32_t); - -namespace detail { - -constexpr auto VCP_RECEIVE_BUFFER_SIZE = 64; - -} // namespace detail - -class VcpReceiver { - public: - static inline bool rxByte(uint8_t& data) - { - if(m_receiveBuffer.head == m_receiveBuffer.tail) - return false; - - const uint8_t newTail = (m_receiveBuffer.tail + 1) % detail::VCP_RECEIVE_BUFFER_SIZE; - data = m_receiveBuffer.data[newTail]; - m_receiveBuffer.tail = newTail; - - return true; - } - - private: - friend void vcpReceiveCallback(uint8_t*, uint32_t); - - template - struct RingBuffer { - size_t head = 0; - size_t tail = 0; - uint8_t data[Size]; - }; - - static volatile RingBuffer m_receiveBuffer; - - static inline void rxHandler(const uint8_t& data) - { - const uint8_t newHead = (m_receiveBuffer.head + 1) % detail::VCP_RECEIVE_BUFFER_SIZE; - - if(newHead != m_receiveBuffer.tail) { - m_receiveBuffer.head = newHead; - m_receiveBuffer.data[newHead] = data; - } - else { - // TODO: Handle overflow - } - } -}; diff --git a/AdaptiveBrightnessFirmware/Makefile b/AdaptiveBrightnessFirmware/Makefile index b0a53db..fc9cbe4 100644 --- a/AdaptiveBrightnessFirmware/Makefile +++ b/AdaptiveBrightnessFirmware/Makefile @@ -74,8 +74,7 @@ Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c # C++ sources CXX_SOURCES = \ Src/main.cpp \ -Src/uart_vcp.cpp \ -Src/vcp_receiver.cpp +Src/uart_vcp.cpp # ASM sources ASM_SOURCES = \ diff --git a/AdaptiveBrightnessFirmware/Src/vcp_receiver.cpp b/AdaptiveBrightnessFirmware/Src/vcp_receiver.cpp deleted file mode 100644 index d56bada..0000000 --- a/AdaptiveBrightnessFirmware/Src/vcp_receiver.cpp +++ /dev/null @@ -1,10 +0,0 @@ -#include "vcp_receiver.hpp" - -extern "C" void vcpReceiveCallback(uint8_t* buf, uint32_t len) -{ - for(uint32_t i = 0; i < len; ++i) { - VcpReceiver::rxHandler(buf[i]); - } -} - -volatile VcpReceiver::RingBuffer VcpReceiver::m_receiveBuffer;