mirror of
https://github.com/meshtastic/firmware.git
synced 2025-09-06 03:29:17 +00:00
added debugging and fixed byte writes to coverage_filter
This commit is contained in:
parent
6a8e6c15e0
commit
f9c7471c31
@ -77,19 +77,20 @@ bool FloodingRouter::perhapsRebroadcast(const meshtastic_MeshPacket *p)
|
||||
}
|
||||
#endif
|
||||
|
||||
LOG_INFO("Rebroadcasting packet ID=0x%x with ForwardProb=%.2f", p->id, forwardProb);
|
||||
|
||||
CoverageFilter updatedCoverage = incomingCoverage;
|
||||
mergeMyCoverage(updatedCoverage);
|
||||
storeCoverageFilterInPacket(updatedCoverage, tosend);
|
||||
|
||||
LOG_INFO("Rebroadcasting packet ID=0x%x with ForwardProb=%.2f", p->id, forwardProb);
|
||||
|
||||
// Note: we are careful to resend using the original senders node id
|
||||
// We are careful not to call our hooked version of send() - because we don't want to check this again
|
||||
Router::send(tosend);
|
||||
|
||||
return true;
|
||||
} else {
|
||||
LOG_DEBUG("No rebroadcast: Random number %f > Forward Probability %f", rnd, forwardProb);
|
||||
LOG_INFO("No rebroadcast: Random number %f > Forward Probability %f", rnd, forwardProb);
|
||||
}
|
||||
} else {
|
||||
LOG_DEBUG("No rebroadcast: Role = CLIENT_MUTE or Rebroadcast Mode = NONE");
|
||||
@ -129,6 +130,7 @@ void FloodingRouter::loadCoverageFilterFromPacket(const meshtastic_MeshPacket *p
|
||||
void FloodingRouter::storeCoverageFilterInPacket(const CoverageFilter &filter, meshtastic_MeshPacket *p)
|
||||
{
|
||||
auto bits = filter.getBits();
|
||||
p->coverage_filter.size = BLOOM_FILTER_SIZE_BYTES;
|
||||
memcpy(p->coverage_filter.bytes, bits.data(), BLOOM_FILTER_SIZE_BYTES);
|
||||
}
|
||||
|
||||
|
@ -315,6 +315,25 @@ void printPacket(const char *prefix, const meshtastic_MeshPacket *p)
|
||||
out += " encrypted";
|
||||
}
|
||||
|
||||
// --- Coverage filter logging ---
|
||||
if (p->coverage_filter.size > 0) {
|
||||
// If the coverage_filter.size is 0, you might skip printing or
|
||||
// choose to indicate it differently. Usually it will be 16 though.
|
||||
std::string coverageHex;
|
||||
// Reserve enough space for 2 hex characters per byte.
|
||||
coverageHex.reserve(p->coverage_filter.size * 2);
|
||||
|
||||
for (int i = 0; i < p->coverage_filter.size; i++) {
|
||||
coverageHex += DEBUG_PORT.mt_sprintf("%02x", p->coverage_filter.bytes[i]);
|
||||
}
|
||||
|
||||
// Append the coverage filter to output
|
||||
out += DEBUG_PORT.mt_sprintf(" coverageFilter=0x%s", coverageHex.c_str());
|
||||
} else {
|
||||
out += DEBUG_PORT.mt_sprintf(" coverageFilter=empty");
|
||||
}
|
||||
// --- End coverage filter logging ---
|
||||
|
||||
if (p->rx_time != 0)
|
||||
out += DEBUG_PORT.mt_sprintf(" rxtime=%u", p->rx_time);
|
||||
if (p->rx_snr != 0.0)
|
||||
|
Loading…
Reference in New Issue
Block a user