Skip to content

Commit 71ac1ce

Browse files
committed
sub 1
1 parent 01bf044 commit 71ac1ce

File tree

2 files changed

+30
-1
lines changed

2 files changed

+30
-1
lines changed

src/LoRa.cpp

+28
Original file line numberDiff line numberDiff line change
@@ -751,4 +751,32 @@ ISR_PREFIX void LoRaClass::onDio0Rise()
751751
LoRa.handleDio0Rise();
752752
}
753753

754+
double LoRaClass::Airtime_Message()
755+
{
756+
int SF = getSpreadingFactor();
757+
int BW = getSignalBandwidth();
758+
int H = _implicitHeaderMode;
759+
int PL = readRegister(REG_PAYLOAD_LENGTH);
760+
int DE = 0;
761+
if (((BW == 125E3) && ((SF == 11) || (SF == 12))) ||
762+
((BW == 250E3) && (SF == 12)))
763+
{
764+
DE = 1;
765+
}
766+
else
767+
{
768+
DE = 0;
769+
}
770+
771+
int CR = (readRegister(REG_MODEM_CONFIG_1) & 0xf1) + 4;
772+
773+
double Tsym = pow(2, SF) / (BW)*1000;
774+
double Tpreamble = (8 + 4.25) * Tsym;
775+
int PrePay = ceil((8.0 * PL - 4.0 * SF + 28 + 16 - 20 * (1 - H)) / (4.0 * (SF - 2.0 * DE))) * (CR);
776+
int payloadSymbNb = 8 + _max(PrePay, 0);
777+
double Tpayload = payloadSymbNb * Tsym;
778+
double Tpacket = Tpreamble + Tpayload;
779+
return Tpacket;
780+
}
781+
754782
LoRaClass LoRa;

src/LoRa.h

+2-1
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ class LoRaClass : public Stream {
9393
void setSPIFrequency(uint32_t frequency);
9494

9595
void dumpRegisters(Stream& out);
96-
96+
double Airtime_Message();
9797
private:
9898
void explicitHeaderMode();
9999
void implicitHeaderMode();
@@ -123,6 +123,7 @@ class LoRaClass : public Stream {
123123
int _implicitHeaderMode;
124124
void (*_onReceive)(int);
125125
void (*_onTxDone)();
126+
int _coderate;
126127
};
127128

128129
extern LoRaClass LoRa;

0 commit comments

Comments
 (0)