|
|
|
@ -485,21 +485,30 @@ int sx126x::endPacket() |
|
|
|
|
|
|
|
|
|
executeOpcodeRead(OP_GET_IRQ_STATUS_6X, buf, 2); |
|
|
|
|
|
|
|
|
|
bool timed_out = false; |
|
|
|
|
uint32_t w_timeout = millis()+LORA_MODEM_TIMEOUT_MS; |
|
|
|
|
// wait for TX done
|
|
|
|
|
while ((buf[1] & IRQ_TX_DONE_MASK_6X) == 0) { |
|
|
|
|
while ((millis() < w_timeout) && ((buf[1] & IRQ_TX_DONE_MASK_6X) == 0)) { |
|
|
|
|
buf[0] = 0x00; |
|
|
|
|
buf[1] = 0x00; |
|
|
|
|
executeOpcodeRead(OP_GET_IRQ_STATUS_6X, buf, 2); |
|
|
|
|
yield(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (!(millis() < w_timeout)) { timed_out = true; } |
|
|
|
|
|
|
|
|
|
// clear IRQ's
|
|
|
|
|
|
|
|
|
|
uint8_t mask[2]; |
|
|
|
|
mask[0] = 0x00; |
|
|
|
|
mask[1] = IRQ_TX_DONE_MASK_6X; |
|
|
|
|
executeOpcode(OP_CLEAR_IRQ_STATUS_6X, mask, 2); |
|
|
|
|
|
|
|
|
|
if (timed_out) { |
|
|
|
|
return 0; |
|
|
|
|
} else { |
|
|
|
|
return 1; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
uint8_t sx126x::modemStatus() { |
|
|
|
|