From 7c9f422e0c9820c4af2d96b889eda5089353b743 Mon Sep 17 00:00:00 2001 From: jgromes Date: Tue, 7 Apr 2020 13:42:30 +0200 Subject: [PATCH] [SX128x] Fixed type conflict in max() --- src/modules/SX128x/SX128x.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/modules/SX128x/SX128x.cpp b/src/modules/SX128x/SX128x.cpp index a11b1788..186e7d86 100644 --- a/src/modules/SX128x/SX128x.cpp +++ b/src/modules/SX128x/SX128x.cpp @@ -841,8 +841,8 @@ uint32_t SX128x::getTimeOnAir(size_t len) { // get SF coefficients float coeff1 = 0; - uint8_t coeff2 = 0; - uint8_t coeff3 = 0; + int16_t coeff2 = 0; + int16_t coeff3 = 0; if(sf < 7) { // SF5, SF6 coeff1 = 6.25; @@ -861,13 +861,13 @@ uint32_t SX128x::getTimeOnAir(size_t len) { } // get CRC length - uint8_t N_bitCRC = 16; + int16_t N_bitCRC = 16; if(_crcLoRa == SX128X_LORA_CRC_OFF) { N_bitCRC = 0; } // get header length - uint8_t N_symbolHeader = 20; + int16_t N_symbolHeader = 20; if(_headerType == SX128X_LORA_HEADER_IMPLICIT) { N_symbolHeader = 0; } @@ -876,7 +876,7 @@ uint32_t SX128x::getTimeOnAir(size_t len) { uint32_t N_symbolPreamble = (_preambleLengthLoRa & 0x0F) * (uint32_t(1) << ((_preambleLengthLoRa & 0xF0) >> 4)); // calculate the number of symbols - N_symbol = (float)N_symbolPreamble + coeff1 + 8.0 + ceil(max(8 * len + N_bitCRC - coeff2 + N_symbolHeader, 0) / (float)coeff3) * (float)(_cr + 4); + N_symbol = (float)N_symbolPreamble + coeff1 + 8.0 + ceil(max((int16_t)(8 * len + N_bitCRC - coeff2 + N_symbolHeader), (int16_t)0) / (float)coeff3) * (float)(_cr + 4); } else { // long interleaving - abandon hope all ye who enter here