diff --git a/src/shared/drivers/runcam/Runcam.h b/src/shared/drivers/runcam/Runcam.h index fe089afee56c02845d0f084be8ec3ceb7bbaea00..eabb564aee0b43d768e2b0c15fa0f490f4d2310f 100644 --- a/src/shared/drivers/runcam/Runcam.h +++ b/src/shared/drivers/runcam/Runcam.h @@ -130,7 +130,7 @@ public: private: /** - * @brief Confiugre Serial Communication + * @brief Configure Serial Communication */ bool configureSerialCommunication(); diff --git a/src/shared/events/EventBroker.cpp b/src/shared/events/EventBroker.cpp index 543005be8a30c7ba8fc97d838d5a4aaa910b77e6..b748fc1e91393133da2709cab2a761fe341ed442 100644 --- a/src/shared/events/EventBroker.cpp +++ b/src/shared/events/EventBroker.cpp @@ -29,7 +29,6 @@ namespace Boardcore { EventBroker::EventBroker() {} - void EventBroker::post(const Event& ev, uint8_t topic) { #ifdef TRACE_EVENTS @@ -66,6 +65,34 @@ void EventBroker::removeDelayed(uint16_t id) } } +void EventBroker::subscribe(EventHandlerBase* subscriber, uint8_t topic) +{ + Lock<FastMutex> lock(mtxSubscribers); + subscribers[topic].push_back(subscriber); +} + +void EventBroker::unsubscribe(EventHandlerBase* subscriber, uint8_t topic) +{ + Lock<FastMutex> lock(mtxSubscribers); + + deleteSubscriber(subscribers.at(topic), subscriber); +} + +void EventBroker::unsubscribe(EventHandlerBase* subscriber) +{ + Lock<FastMutex> lock(mtxSubscribers); + for (auto it = subscribers.begin(); it != subscribers.end(); it++) + { + deleteSubscriber(it->second, subscriber); + } +} + +void EventBroker::clearDelayedEvents() +{ + Lock<FastMutex> lock(mtxDelayedEvents); + delayedEvents.clear(); +} + // Posts delayed events with expired deadline void EventBroker::run() { @@ -110,28 +137,6 @@ void EventBroker::run() } } -void EventBroker::subscribe(EventHandlerBase* subscriber, uint8_t topic) -{ - Lock<FastMutex> lock(mtxSubscribers); - subscribers[topic].push_back(subscriber); -} - -void EventBroker::unsubscribe(EventHandlerBase* subscriber, uint8_t topic) -{ - Lock<FastMutex> lock(mtxSubscribers); - - deleteSubscriber(subscribers.at(topic), subscriber); -} - -void EventBroker::unsubscribe(EventHandlerBase* subscriber) -{ - Lock<FastMutex> lock(mtxSubscribers); - for (auto it = subscribers.begin(); it != subscribers.end(); it++) - { - deleteSubscriber(it->second, subscriber); - } -} - void EventBroker::deleteSubscriber(vector<EventHandlerBase*>& subs, EventHandlerBase* subscriber) { @@ -150,10 +155,4 @@ void EventBroker::deleteSubscriber(vector<EventHandlerBase*>& subs, } } -void EventBroker::clearDelayedEvents() -{ - Lock<FastMutex> lock(mtxDelayedEvents); - delayedEvents.clear(); -} - } // namespace Boardcore diff --git a/src/shared/events/EventBroker.h b/src/shared/events/EventBroker.h index d769bca420e4bcc06773ec87147267116ca46ee2..581ff8011164a47766542460c3959b9fcad1ec4f 100644 --- a/src/shared/events/EventBroker.h +++ b/src/shared/events/EventBroker.h @@ -148,14 +148,12 @@ public: /** * @brief Construct a new Event Broker object. + * * Public access required for testing purposes. Use the singleton interface * to access this class in production code. - * */ EventBroker(); - virtual ~EventBroker(){}; - private: /** * Private structure for holding a delayed event data in the list. diff --git a/src/shared/sensors/HX711/HX711.cpp b/src/shared/sensors/HX711/HX711.cpp index ff8c65addf6d14eabd79b555ec7badb9725041ca..8e3fa92694daa960e71db8a1463147e11bdd3e9d 100644 --- a/src/shared/sensors/HX711/HX711.cpp +++ b/src/shared/sensors/HX711/HX711.cpp @@ -87,9 +87,9 @@ void HX711::setScale(float scale) { this->scale = scale; } float HX711::getScale() { return scale; } -void HX711::setOffset(float offset) { this->offset = offset * scale; } +void HX711::setOffset(float offset) { this->offset = offset / scale; } -void HX711::updateOffset(float offset) { this->offset += offset * scale; } +void HX711::updateOffset(float offset) { this->offset += offset / scale; } float HX711::getOffset() { return offset; } diff --git a/src/shared/utils/MovingAverage.h b/src/shared/utils/MovingAverage.h index 94e8fda20d5577c21c9de585a6f3081547c2a0e3..6a6efd1bbcf6790efa89a17919146cb6bc770b37 100644 --- a/src/shared/utils/MovingAverage.h +++ b/src/shared/utils/MovingAverage.h @@ -45,12 +45,21 @@ public: value += newValue * movingAverageCoeff; } + void reset() { value = 0; } + + void setN(int movingAverageN) + { + this->movingAverageN = movingAverageN; + movingAverageCoeff = 1 / (float)movingAverageN; + movingAverageCompCoeff = 1 - movingAverageCoeff; + } + private: T value = 0; - const int movingAverageN = 20; - const float movingAverageCoeff = 1 / (float)movingAverageN; - const float movingAverageCompCoeff = 1 - movingAverageCoeff; + int movingAverageN = 20; + float movingAverageCoeff = 1 / (float)movingAverageN; + float movingAverageCompCoeff = 1 - movingAverageCoeff; }; } // namespace Boardcore