This commit is contained in:
@CarlWachter 2024-01-01 16:26:02 +01:00
parent 7635cfe4ad
commit c327ec2ede
2 changed files with 8 additions and 12 deletions

View File

@ -8,7 +8,6 @@
#include <sta/tacos/thread.hpp>
#include <sta/rtos/queue.hpp>
#include <sta/debug/assert.hpp>
#include <sta/rtos/system/can_bus.hpp>
@ -101,12 +100,11 @@ namespace sta
RtosQueue<CanDataMsg> canBusDataQueue_;
RtosQueue<CanDataMsg> canBusSysQueue_;
CanDataMsg canBusDataQueueBuffer[queueLength];
CanSysMsg canBusSysQueueBuffer[queueLength];
CanDataMsg canBusDataQueueBuffer_[queueLength];
CanSysMsg canBusSysQueueBuffer_[queueLength];
uint32_t canBusStack[256];
sta::STM32CanController * canBusController_;
const size_t queueLength_;
AlpakaCanBus canBus_;
}

View File

@ -9,8 +9,6 @@ namespace sta
CanBus::CanBus(CAN_HandleTypeDef * handle)
: TacosThread{"Can Bus", STA_TACOS_CAN_BUS_PRIORITY},
canBusController_{handle},
canBusDataQueueBuffer{nullptr},
canBusSysQueueBuffer{nullptr},
canSysDataQueue_{STA_RTOS_CAN_BUS_QUEUE_LENGTH},
canBusDataQueue_{STA_RTOS_CAN_BUS_QUEUE_LENGTH},
canBus_{&canBusController_, HAL_GetTick, dummy::handleSysMessage, dummy::handleDataMessage}
@ -67,7 +65,7 @@ namespace sta
canBus.processTx();
}
bool 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));
@ -84,7 +82,7 @@ namespace sta
}
}
bool 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);
@ -101,14 +99,14 @@ namespace sta
}
bool getCanBusMsg(CanDataMsg * msg, uint32_t timeout)
bool CanBus::getCanBusMsg(CanDataMsg * msg, uint32_t timeout)
{
return (osOK == osMessageQueueGet(canBusDataQueueHandle, msg, 0, timeout));
return (canBusDataQueueBuffer_.get(msg, timeout));
}
bool getCanBusMsg(CanSysMsg * msg, uint32_t timeout)
bool CanBus::getCanBusMsg(CanSysMsg * msg, uint32_t timeout)
{
return (osOK == osMessageQueueGet(canBusSysQueueHandle, msg, 0, timeout));
return (canBusSysQueueBuffer_.get(msg, timeout));
}
} /* namespace tacos */