Add LoRa TX timing diagnostics
- Log idle/begin/write/end timing for LoRa TX under SERIAL_DEBUG_MODE - Document TX timing logs in README
This commit is contained in:
@@ -33,6 +33,18 @@ bool lora_send(const LoraPacket &pkt) {
|
||||
if (LORA_SEND_BYPASS) {
|
||||
return true;
|
||||
}
|
||||
uint32_t t0 = 0;
|
||||
uint32_t t1 = 0;
|
||||
uint32_t t2 = 0;
|
||||
uint32_t t3 = 0;
|
||||
uint32_t t4 = 0;
|
||||
if (SERIAL_DEBUG_MODE) {
|
||||
t0 = millis();
|
||||
}
|
||||
LoRa.idle();
|
||||
if (SERIAL_DEBUG_MODE) {
|
||||
t1 = millis();
|
||||
}
|
||||
uint8_t buffer[5 + LORA_MAX_PAYLOAD + 2];
|
||||
size_t idx = 0;
|
||||
buffer[idx++] = pkt.protocol_version;
|
||||
@@ -53,8 +65,24 @@ bool lora_send(const LoraPacket &pkt) {
|
||||
buffer[idx++] = static_cast<uint8_t>(crc & 0xFF);
|
||||
|
||||
LoRa.beginPacket();
|
||||
if (SERIAL_DEBUG_MODE) {
|
||||
t2 = millis();
|
||||
}
|
||||
LoRa.write(buffer, idx);
|
||||
int result = LoRa.endPacket();
|
||||
if (SERIAL_DEBUG_MODE) {
|
||||
t3 = millis();
|
||||
}
|
||||
int result = LoRa.endPacket(false);
|
||||
if (SERIAL_DEBUG_MODE) {
|
||||
t4 = millis();
|
||||
Serial.printf("lora_tx: idle=%lums begin=%lums write=%lums end=%lums total=%lums len=%u\n",
|
||||
static_cast<unsigned long>(t1 - t0),
|
||||
static_cast<unsigned long>(t2 - t1),
|
||||
static_cast<unsigned long>(t3 - t2),
|
||||
static_cast<unsigned long>(t4 - t3),
|
||||
static_cast<unsigned long>(t4 - t0),
|
||||
static_cast<unsigned>(idx));
|
||||
}
|
||||
return result == 1;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user