mirror of
https://git.intern.spaceteamaachen.de/ALPAKA/TACOS.git
synced 2025-06-12 01:25:59 +00:00
Syntax fixes
This commit is contained in:
parent
72395bd0c1
commit
090d325b10
@ -3,8 +3,7 @@
|
|||||||
|
|
||||||
#include <sta/config.hpp>
|
#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/tacos/thread.hpp>
|
||||||
#include <sta/rtos/queue.hpp>
|
#include <sta/rtos/queue.hpp>
|
||||||
@ -29,6 +28,9 @@ namespace sta
|
|||||||
class CanBus : public TacosThread
|
class CanBus : public TacosThread
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
CanBus(CAN_HandleTypeDef * controller);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Getter function for the singleton instance.
|
* @brief Getter function for the singleton instance.
|
||||||
*/
|
*/
|
||||||
@ -45,40 +47,42 @@ namespace sta
|
|||||||
return _instance;
|
return _instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Place data message in CAN driver TX queue.
|
* @brief Place data message in CAN driver TX queue.
|
||||||
*
|
*
|
||||||
* @param msg Message to transmit
|
* @param msg Message to transmit
|
||||||
* @param timeout Timeout for placing message (0 = no wait, osWaitForever = blocking)
|
* @param timeout Timeout for placing message (0 = no wait, osWaitForever = blocking)
|
||||||
* @return True if message was queued successfully
|
* @return True if message was queued successfully
|
||||||
*/
|
*/
|
||||||
bool queueCanBusMsg(const CanDataMsg & msg, uint32_t timeout);
|
bool queueCanBusMsg(const CanDataMsg & msg, uint32_t timeout);
|
||||||
/**
|
/**
|
||||||
* @brief Place system message in CAN driver TX queue.
|
* @brief Place system message in CAN driver TX queue.
|
||||||
*
|
*
|
||||||
* @param msg Message to transmit
|
* @param msg Message to transmit
|
||||||
* @param timeout Timeout for placing message (0 = no wait, osWaitForever = blocking)
|
* @param timeout Timeout for placing message (0 = no wait, osWaitForever = blocking)
|
||||||
* @return True if message was queued successfully
|
* @return True if message was queued successfully
|
||||||
*/
|
*/
|
||||||
bool queueCanBusMsg(const CanSysMsg & msg, uint32_t timeout);
|
bool queueCanBusMsg(const CanSysMsg & msg, uint32_t timeout);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Retrieve data message from CAN driver TX queue.
|
* @brief Retrieve data message from CAN driver TX queue.
|
||||||
*
|
*
|
||||||
* @param[out] msg Output address for retrieved message
|
* @param[out] msg Output address for retrieved message
|
||||||
* @param timeout Timeout for retrieving message (0 = no wait, osWaitForever = blocking)
|
* @param timeout Timeout for retrieving message (0 = no wait, osWaitForever = blocking)
|
||||||
* @return True if message was retrieved successfully
|
* @return True if message was retrieved successfully
|
||||||
*/
|
*/
|
||||||
bool getCanBusMsg(CanDataMsg * msg, uint32_t timeout);
|
bool getCanBusMsg(CanDataMsg * msg, uint32_t timeout);
|
||||||
/**
|
/**
|
||||||
* @brief Retrieve system message from CAN driver TX queue.
|
* @brief Retrieve system message from CAN driver TX queue.
|
||||||
*
|
*
|
||||||
* @param[out] msg Destination for retrieved message
|
* @param[out] msg Destination for retrieved message
|
||||||
* @param timeout Timeout for retrieving message (0 = no wait, osWaitForever = blocking)
|
* @param timeout Timeout for retrieving message (0 = no wait, osWaitForever = blocking)
|
||||||
* @return True if message was retrieved successfully
|
* @return True if message was retrieved successfully
|
||||||
*/
|
*/
|
||||||
bool getCanBusMsg(CanSysMsg * msg, uint32_t timeout);
|
bool getCanBusMsg(CanSysMsg * msg, uint32_t timeout);
|
||||||
|
|
||||||
|
void init() override;
|
||||||
|
void func() override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static CanBus * _instance;
|
static CanBus * _instance;
|
||||||
@ -100,17 +104,17 @@ namespace sta
|
|||||||
RtosQueue<CanDataMsg> canBusDataQueue_;
|
RtosQueue<CanDataMsg> canBusDataQueue_;
|
||||||
RtosQueue<CanDataMsg> canBusSysQueue_;
|
RtosQueue<CanDataMsg> canBusSysQueue_;
|
||||||
|
|
||||||
CanDataMsg canBusDataQueueBuffer_[queueLength];
|
CanDataMsg canBusDataQueueBuffer_[STA_RTOS_CAN_BUS_QUEUE_LENGTH];
|
||||||
CanSysMsg canBusSysQueueBuffer_[queueLength];
|
CanSysMsg canBusSysQueueBuffer_[STA_RTOS_CAN_BUS_QUEUE_LENGTH];
|
||||||
uint32_t canBusStack[256];
|
uint32_t canBusStack[256];
|
||||||
|
|
||||||
sta::STM32CanController * canBusController_;
|
sta::STM32CanController * canBusController_;
|
||||||
AlpakaCanBus canBus_;
|
AlpakaCanBus canBus_;
|
||||||
}
|
};
|
||||||
|
|
||||||
} /* namespace tacos */
|
} /* namespace tacos */
|
||||||
|
|
||||||
} /* namespace sta */
|
} /* namespace sta */
|
||||||
|
|
||||||
#endif /* STA_RTOS_CAN_BUS_ENABLE */
|
#endif /* STA_RTOS_CAN_BUS_ENABLE */
|
||||||
#endif /* INCLUDE_TACOS_CAN_BUS_HPP_ */
|
#endif /* INCLUDE_TACOS_CAN_BUS_HPP_ */
|
||||||
|
@ -6,10 +6,10 @@ namespace sta
|
|||||||
{
|
{
|
||||||
namespace tacos
|
namespace tacos
|
||||||
{
|
{
|
||||||
CanBus::CanBus(STM32CanController * controller)
|
CanBus::CanBus(CAN_HandleTypeDef * controller)
|
||||||
: TacosThread{"Can Bus", STA_TACOS_CAN_BUS_PRIORITY},
|
: TacosThread{"Can Bus", STA_TACOS_CAN_BUS_PRIORITY},
|
||||||
canBusController_{controller},
|
canBusController_(controller),
|
||||||
canSysDataQueue_{STA_RTOS_CAN_BUS_QUEUE_LENGTH},
|
canBusSysQueue_{STA_RTOS_CAN_BUS_QUEUE_LENGTH},
|
||||||
canBusDataQueue_{STA_RTOS_CAN_BUS_QUEUE_LENGTH},
|
canBusDataQueue_{STA_RTOS_CAN_BUS_QUEUE_LENGTH},
|
||||||
canBus_{&canBusController_, HAL_GetTick, dummy::handleSysMessage, dummy::handleDataMessage}
|
canBus_{&canBusController_, HAL_GetTick, dummy::handleSysMessage, dummy::handleDataMessage}
|
||||||
{
|
{
|
||||||
@ -17,7 +17,7 @@ namespace sta
|
|||||||
|
|
||||||
void CanBus::init()
|
void CanBus::init()
|
||||||
{
|
{
|
||||||
canBusController_.start();
|
canBusController_->start();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CanBus::func()
|
void CanBus::func()
|
||||||
@ -32,7 +32,7 @@ namespace sta
|
|||||||
{
|
{
|
||||||
// Take messages from queue until empty
|
// Take messages from queue until empty
|
||||||
CanSysMsg msg;
|
CanSysMsg msg;
|
||||||
while (rtos::getCanBusMsg(&msg, 0))
|
while (CanBus::_instance->getCanBusMsg(&msg, 0))
|
||||||
{
|
{
|
||||||
canBus_.send(msg);
|
canBus_.send(msg);
|
||||||
}
|
}
|
||||||
@ -42,7 +42,7 @@ namespace sta
|
|||||||
{
|
{
|
||||||
// Take messages from queue until empty
|
// Take messages from queue until empty
|
||||||
CanDataMsg msg;
|
CanDataMsg msg;
|
||||||
while (rtos::getCanBusMsg(&msg, 0))
|
while (CanBus::_instance->getCanBusMsg(&msg, 0))
|
||||||
{
|
{
|
||||||
canBus_.send(msg);
|
canBus_.send(msg);
|
||||||
}
|
}
|
||||||
@ -62,15 +62,15 @@ namespace sta
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Process ISOTP transmissions
|
// 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.sid & STA_CAN_SID_SYS_BITS) == 0);
|
||||||
STA_ASSERT(msg.header.payloadLength <= sizeof(msg.payload));
|
STA_ASSERT(msg.header.payloadLength <= sizeof(msg.payload));
|
||||||
|
|
||||||
if (canBusDataQueue_.put(&msg, timeout))
|
if (canBusDataQueue_.put(msg, timeout))
|
||||||
{
|
{
|
||||||
// Signal thread
|
// Signal thread
|
||||||
notify(STA_RTOS_CAN_FLAG_DATA_QUEUED);
|
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);
|
STA_ASSERT((msg.header.sid & ~STA_CAN_SID_SYS_BITS) == 0);
|
||||||
|
|
||||||
if (canBusSysQueue_.put(&msg, timeout))
|
if (canBusSysQueue_.put(msg, timeout))
|
||||||
{
|
{
|
||||||
// Signal thread
|
// Signal thread
|
||||||
notify(STA_RTOS_CAN_FLAG_SYS_QUEUED);
|
notify(STA_RTOS_CAN_FLAG_SYS_QUEUED);
|
||||||
@ -101,13 +101,13 @@ namespace sta
|
|||||||
|
|
||||||
bool CanBus::getCanBusMsg(CanDataMsg * msg, uint32_t timeout)
|
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)
|
bool CanBus::getCanBusMsg(CanSysMsg * msg, uint32_t timeout)
|
||||||
{
|
{
|
||||||
return (canBusSysQueueBuffer_.get(msg, timeout));
|
return (canBusSysQueue_.get(msg, timeout));
|
||||||
}
|
}
|
||||||
|
|
||||||
} /* namespace tacos */
|
} /* namespace tacos */
|
||||||
} /* namespace sta */
|
} /* namespace sta */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user