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

@@ -82,7 +82,7 @@ esp_err_t DataLinkManager::store_fragment(GenericFrame* fragment, uint8_t channe
}
FragmentMetadata& metadata = fragment_map[channel][fragment->receiver_id][fragment->seq_num];
if ((fragment->frag_num-1) > metadata.fragments.size()){
if ((fragment->frag_num == 0) || (fragment->frag_num - 1) >= metadata.fragments.size()){
xSemaphoreGive(rx_fragment_mutex[channel]);
return ESP_ERR_INVALID_STATE;
}
@@ -151,7 +151,7 @@ esp_err_t DataLinkManager::complete_fragment(uint16_t board_id, uint16_t sequenc
if (metadata.num_fragments_rx != metadata.fragments.size()){
return ESP_ERR_INVALID_STATE;
}
uint16_t total_data_len = metadata.num_fragments_rx*MAX_FRAME_SIZE; //max data size with n fragments
uint16_t total_data_len = metadata.num_fragments_rx * MAX_GENERIC_DATA_LEN; //max data size with n fragments
xSemaphoreGive(rx_fragment_mutex[channel]);
auto combined_data = std::make_unique<std::vector<uint8_t>>();