Fix generic UDP frame type

This commit is contained in:
Johnathon Slightham
2026-02-28 12:09:35 -05:00
committed by Johnathon Slightham
parent f8b43036b3
commit 71ff7b63ac
6 changed files with 33 additions and 23 deletions

View File

@@ -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;
}
}
}