Added the printPayloadBytes function used to print byte content of any received payload, this can help the debugging process when receiving malformatted payloads

This commit is contained in:
Th3maz1ng 2025-12-26 12:12:57 +01:00
parent fc5359ec03
commit ebdff6f0e7

View File

@ -221,6 +221,7 @@ void loop()
{ {
//Payload already retrieved in LoRa module IRQ or in the previous code part //Payload already retrieved in LoRa module IRQ or in the previous code part
memcpy(&packetHeader, payload, sizeof(packetHeader)); memcpy(&packetHeader, payload, sizeof(packetHeader));
//printPayloadBytes(payload, sizeof payload);
switch(packetHeader.header) switch(packetHeader.header)
{ {
case WEATHER_STATION: case WEATHER_STATION:
@ -564,3 +565,20 @@ void printStruct(MailboxDataPacket *p)
break; break;
} }
} }
void printPayloadBytes(const uint8_t *payload, size_t payload_size)
{
if(!payload || !payload_size)return;
uint8_t buffer[32];
size_t safeSize = (payload_size > sizeof(buffer)) ? sizeof(buffer) : payload_size;
memset(buffer, 0xFF, sizeof buffer);
memcpy(buffer, payload, safeSize);
if(safeSize < payload_size)
Serial.println("/!\\ Payload size was truncated /!\\");
for(size_t i = 0; i < safeSize; i++)
{
Serial.printf("[%d]=0x%02X\n",i ,buffer[i]);
}
}