diff --git a/src/LoRaPhy/LoRaTransmitter.cc b/src/LoRaPhy/LoRaTransmitter.cc index 2d609b2..865e733 100644 --- a/src/LoRaPhy/LoRaTransmitter.cc +++ b/src/LoRaPhy/LoRaTransmitter.cc @@ -73,7 +73,9 @@ const ITransmission *LoRaTransmitter::createTransmission(const IRadio *transmitt int payloadBytes = 0; if(iAmGateway) payloadBytes = 15; else payloadBytes = 20; - int payloadSymbNb = 8 + math::max(ceil((8*payloadBytes - 4*frame->getLoRaSF() + 28 + 16 - 20*0)/(4*(frame->getLoRaSF()-2*0)))*(frame->getLoRaCR() + 4), 0); + short de = 0; + if ((frame->getLoRaSF() == 11) || (frame->getLoRaSF() == 12)) de = 1; + int payloadSymbNb = 8 + math::max(ceil((8*payloadBytes - 4*frame->getLoRaSF() + 28 + 16 - 20*0)/(4*(frame->getLoRaSF()-2*de)))*(frame->getLoRaCR() + 4), 0); simtime_t Theader = 0.5 * (8+payloadSymbNb) * Tsym / 1000; simtime_t Tpayload = 0.5 * (8+payloadSymbNb) * Tsym / 1000;