mirror of
https://github.com/BotChain-Robots/firmware.git
synced 2026-07-08 17:47:21 +02:00
Fix generic UDP frame type
This commit is contained in:
@@ -4,6 +4,7 @@
|
||||
|
||||
#include "AngleControlMessageBuilder.h"
|
||||
#include "CommunicationRouter.h"
|
||||
#include "Frames.h"
|
||||
#include "MPIMessageBuilder.h"
|
||||
#include "OrientationDetection.h"
|
||||
#include "PtrQueue.h"
|
||||
@@ -121,7 +122,7 @@ void CommunicationRouter::route(uint8_t *buffer, size_t size) const {
|
||||
u_buffer->resize(size);
|
||||
memcpy(u_buffer->data(), buffer, size);
|
||||
|
||||
this->m_data_link_manager->send(dest, std::move(u_buffer), FrameType::MOTOR_TYPE, 0);
|
||||
this->m_data_link_manager->send(dest, std::move(u_buffer), get_frame_type(mpi_message->is_durable(), mpi_message->length()), 0);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -144,10 +145,9 @@ void CommunicationRouter::route(std::unique_ptr<std::vector<uint8_t>>&& buffer)
|
||||
this->m_lossy_server->send_msg(buffer->data(), buffer->size());
|
||||
}
|
||||
} else if (mpi_message->destination() == PC_ADDR) {
|
||||
this->m_data_link_manager->send(this->m_leader, std::move(buffer), FrameType::MOTOR_TYPE, 0);
|
||||
this->m_data_link_manager->send(this->m_leader, std::move(buffer), get_frame_type(mpi_message->is_durable(), mpi_message->length()), 0);
|
||||
} else {
|
||||
this->m_data_link_manager->send(mpi_message->destination(), std::move(buffer), FrameType::MOTOR_TYPE,
|
||||
0);
|
||||
this->m_data_link_manager->send(mpi_message->destination(), std::move(buffer), get_frame_type(mpi_message->is_durable(), mpi_message->length()), 0);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -185,3 +185,15 @@ CommunicationRouter::get_physically_connected_modules() const {
|
||||
[[nodiscard]] uint8_t CommunicationRouter::get_leader() const {
|
||||
return this->m_leader;
|
||||
}
|
||||
|
||||
FrameType CommunicationRouter::get_frame_type(bool durable, size_t size) {
|
||||
if (durable) {
|
||||
return FrameType::MISC_GENERIC_TYPE;
|
||||
} else {
|
||||
if (size > MAX_FRAME_SIZE) {
|
||||
return FrameType::MISC_UDP_GENERIC_TYPE;
|
||||
} else {
|
||||
return FrameType::MISC_CONTROL_TYPE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user