test: add lora frame and chunk reassembly logic suite

This commit is contained in:
2026-02-20 21:26:51 +01:00
parent cef1d184ed
commit ca2cd1880a
7 changed files with 380 additions and 91 deletions

View File

@@ -0,0 +1,28 @@
#pragma once
#include <Arduino.h>
struct BatchReassemblyState {
bool active;
uint16_t batch_id;
uint8_t next_index;
uint8_t expected_chunks;
uint16_t total_len;
uint16_t received_len;
uint32_t last_rx_ms;
uint32_t timeout_ms;
};
enum class BatchReassemblyStatus : uint8_t {
InProgress = 0,
Complete = 1,
ErrorReset = 2
};
void batch_reassembly_reset(BatchReassemblyState &state);
BatchReassemblyStatus batch_reassembly_push(BatchReassemblyState &state, uint16_t batch_id, uint8_t chunk_index,
uint8_t chunk_count, uint16_t total_len, const uint8_t *chunk_data,
size_t chunk_len, uint32_t now_ms, uint32_t timeout_ms_for_new_batch,
uint16_t max_total_len, uint8_t *buffer, size_t buffer_cap,
uint16_t &out_complete_len);