From 090d325b10f2474646bad35b5981784082d77341 Mon Sep 17 00:00:00 2001 From: "@CarlWachter" Date: Tue, 2 Jan 2024 21:04:10 +0100 Subject: [PATCH] Syntax fixes --- include/sta/tacos/can_bus.hpp | 80 ++++++++++++++++++----------------- src/can_bus.cpp | 28 ++++++------ 2 files changed, 56 insertions(+), 52 deletions(-) diff --git a/include/sta/tacos/can_bus.hpp b/include/sta/tacos/can_bus.hpp index 562970c..9704f20 100644 --- a/include/sta/tacos/can_bus.hpp +++ b/include/sta/tacos/can_bus.hpp @@ -3,8 +3,7 @@ #include -//TODO UNCOMMENT THIS -//#ifdef STA_RTOS_CAN_BUS_ENABLE +#ifdef STA_RTOS_CAN_BUS_ENABLE #include #include @@ -29,6 +28,9 @@ namespace sta class CanBus : public TacosThread { public: + + CanBus(CAN_HandleTypeDef * controller); + /** * @brief Getter function for the singleton instance. */ @@ -45,40 +47,42 @@ namespace sta return _instance; } - /** - * @brief Place data message in CAN driver TX queue. - * - * @param msg Message to transmit - * @param timeout Timeout for placing message (0 = no wait, osWaitForever = blocking) - * @return True if message was queued successfully - */ - bool queueCanBusMsg(const CanDataMsg & msg, uint32_t timeout); - /** - * @brief Place system message in CAN driver TX queue. - * - * @param msg Message to transmit - * @param timeout Timeout for placing message (0 = no wait, osWaitForever = blocking) - * @return True if message was queued successfully - */ - bool queueCanBusMsg(const CanSysMsg & msg, uint32_t timeout); + /** + * @brief Place data message in CAN driver TX queue. + * + * @param msg Message to transmit + * @param timeout Timeout for placing message (0 = no wait, osWaitForever = blocking) + * @return True if message was queued successfully + */ + bool queueCanBusMsg(const CanDataMsg & msg, uint32_t timeout); + /** + * @brief Place system message in CAN driver TX queue. + * + * @param msg Message to transmit + * @param timeout Timeout for placing message (0 = no wait, osWaitForever = blocking) + * @return True if message was queued successfully + */ + bool queueCanBusMsg(const CanSysMsg & msg, uint32_t timeout); - /** - * @brief Retrieve data message from CAN driver TX queue. - * - * @param[out] msg Output address for retrieved message - * @param timeout Timeout for retrieving message (0 = no wait, osWaitForever = blocking) - * @return True if message was retrieved successfully - */ - bool getCanBusMsg(CanDataMsg * msg, uint32_t timeout); - /** - * @brief Retrieve system message from CAN driver TX queue. - * - * @param[out] msg Destination for retrieved message - * @param timeout Timeout for retrieving message (0 = no wait, osWaitForever = blocking) - * @return True if message was retrieved successfully - */ - bool getCanBusMsg(CanSysMsg * msg, uint32_t timeout); + /** + * @brief Retrieve data message from CAN driver TX queue. + * + * @param[out] msg Output address for retrieved message + * @param timeout Timeout for retrieving message (0 = no wait, osWaitForever = blocking) + * @return True if message was retrieved successfully + */ + bool getCanBusMsg(CanDataMsg * msg, uint32_t timeout); + /** + * @brief Retrieve system message from CAN driver TX queue. + * + * @param[out] msg Destination for retrieved message + * @param timeout Timeout for retrieving message (0 = no wait, osWaitForever = blocking) + * @return True if message was retrieved successfully + */ + bool getCanBusMsg(CanSysMsg * msg, uint32_t timeout); + void init() override; + void func() override; private: static CanBus * _instance; @@ -100,17 +104,17 @@ namespace sta RtosQueue canBusDataQueue_; RtosQueue canBusSysQueue_; - CanDataMsg canBusDataQueueBuffer_[queueLength]; - CanSysMsg canBusSysQueueBuffer_[queueLength]; + CanDataMsg canBusDataQueueBuffer_[STA_RTOS_CAN_BUS_QUEUE_LENGTH]; + CanSysMsg canBusSysQueueBuffer_[STA_RTOS_CAN_BUS_QUEUE_LENGTH]; uint32_t canBusStack[256]; sta::STM32CanController * canBusController_; AlpakaCanBus canBus_; - } + }; } /* namespace tacos */ } /* namespace sta */ #endif /* STA_RTOS_CAN_BUS_ENABLE */ -#endif /* INCLUDE_TACOS_CAN_BUS_HPP_ */ \ No newline at end of file +#endif /* INCLUDE_TACOS_CAN_BUS_HPP_ */ diff --git a/src/can_bus.cpp b/src/can_bus.cpp index 78ad971..ee14e16 100644 --- a/src/can_bus.cpp +++ b/src/can_bus.cpp @@ -6,10 +6,10 @@ namespace sta { namespace tacos { - CanBus::CanBus(STM32CanController * controller) + CanBus::CanBus(CAN_HandleTypeDef * controller) : TacosThread{"Can Bus", STA_TACOS_CAN_BUS_PRIORITY}, - canBusController_{controller}, - canSysDataQueue_{STA_RTOS_CAN_BUS_QUEUE_LENGTH}, + canBusController_(controller), + canBusSysQueue_{STA_RTOS_CAN_BUS_QUEUE_LENGTH}, canBusDataQueue_{STA_RTOS_CAN_BUS_QUEUE_LENGTH}, canBus_{&canBusController_, HAL_GetTick, dummy::handleSysMessage, dummy::handleDataMessage} { @@ -17,7 +17,7 @@ namespace sta void CanBus::init() { - canBusController_.start(); + canBusController_->start(); } void CanBus::func() @@ -32,7 +32,7 @@ namespace sta { // Take messages from queue until empty CanSysMsg msg; - while (rtos::getCanBusMsg(&msg, 0)) + while (CanBus::_instance->getCanBusMsg(&msg, 0)) { canBus_.send(msg); } @@ -42,7 +42,7 @@ namespace sta { // Take messages from queue until empty CanDataMsg msg; - while (rtos::getCanBusMsg(&msg, 0)) + while (CanBus::_instance->getCanBusMsg(&msg, 0)) { canBus_.send(msg); } @@ -62,15 +62,15 @@ namespace sta } // Process ISOTP transmissions - canBus.processTx(); + canBus_.processTx(); } - bool CanBus::queueCanBusMsg(const CanDataMsg & msg, uint32_t timeout) + bool CanBus::queueCanBusMsg(const CanDataMsg& msg, uint32_t timeout) { STA_ASSERT((msg.header.sid & STA_CAN_SID_SYS_BITS) == 0); STA_ASSERT(msg.header.payloadLength <= sizeof(msg.payload)); - if (canBusDataQueue_.put(&msg, timeout)) + if (canBusDataQueue_.put(msg, timeout)) { // Signal thread notify(STA_RTOS_CAN_FLAG_DATA_QUEUED); @@ -82,11 +82,11 @@ namespace sta } } - bool CanBus::queueCanBusMsg(const CanSysMsg & msg, uint32_t timeout) + bool CanBus::queueCanBusMsg(const CanSysMsg& msg, uint32_t timeout) { STA_ASSERT((msg.header.sid & ~STA_CAN_SID_SYS_BITS) == 0); - if (canBusSysQueue_.put(&msg, timeout)) + if (canBusSysQueue_.put(msg, timeout)) { // Signal thread notify(STA_RTOS_CAN_FLAG_SYS_QUEUED); @@ -101,13 +101,13 @@ namespace sta bool CanBus::getCanBusMsg(CanDataMsg * msg, uint32_t timeout) { - return (canBusDataQueueBuffer_.get(msg, timeout)); + return (canBusDataQueue_.get(msg, timeout)); } bool CanBus::getCanBusMsg(CanSysMsg * msg, uint32_t timeout) { - return (canBusSysQueueBuffer_.get(msg, timeout)); + return (canBusSysQueue_.get(msg, timeout)); } } /* namespace tacos */ -} /* namespace sta */ \ No newline at end of file +} /* namespace sta */