Syntax fixes

This commit is contained in:
@CarlWachter 2024-01-02 21:04:10 +01:00
parent 72395bd0c1
commit 090d325b10
2 changed files with 56 additions and 52 deletions

View File

@ -3,8 +3,7 @@
#include <sta/config.hpp>
//TODO UNCOMMENT THIS
//#ifdef STA_RTOS_CAN_BUS_ENABLE
#ifdef STA_RTOS_CAN_BUS_ENABLE
#include <sta/tacos/thread.hpp>
#include <sta/rtos/queue.hpp>
@ -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<CanDataMsg> canBusDataQueue_;
RtosQueue<CanDataMsg> 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_ */
#endif /* INCLUDE_TACOS_CAN_BUS_HPP_ */

View File

@ -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 */
} /* namespace sta */