revert to working getPowerLevel()
This commit is contained in:
parent
e038dcfaa8
commit
e29316c40e
29
RFM69.cpp
29
RFM69.cpp
|
|
@ -290,33 +290,8 @@ uint8_t RFM69::getOutputPower() {
|
||||||
return readReg(REG_PALEVEL) & 0x1F;
|
return readReg(REG_PALEVEL) & 0x1F;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t RFM69::getPowerLevel() {
|
// return stored _powerLevel
|
||||||
uint8_t val = readReg(REG_PALEVEL);
|
uint8_t RFM69::getPowerLevel() { return _powerLevel; }
|
||||||
uint8_t outputPower = getOutputPower();
|
|
||||||
|
|
||||||
bool pa0 = (val & 0b10000000) > 0;
|
|
||||||
bool pa1 = (val & 0b01000000) > 0;
|
|
||||||
bool pa2 = (val & 0b00100000) > 0;
|
|
||||||
|
|
||||||
if (pa0 && !pa1 && !pa2) {
|
|
||||||
// -18 to 13 dBm range
|
|
||||||
return -18 + outputPower;
|
|
||||||
}
|
|
||||||
if (!pa0 && pa1 && !pa2) {
|
|
||||||
// -2 to 13 dBm range
|
|
||||||
return -18 + outputPower;
|
|
||||||
}
|
|
||||||
if (!pa0 && pa1 && pa2 && !_isRFM69HW) {
|
|
||||||
// 2 to 17 dBm range
|
|
||||||
return -14 + outputPower;
|
|
||||||
}
|
|
||||||
if (!pa0 && pa1 && pa2 && _isRFM69HW) {
|
|
||||||
// 5 to 20 dBm range
|
|
||||||
return -11 + outputPower;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 255;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set TX Output power in dBm:
|
// Set TX Output power in dBm:
|
||||||
// [-18..+13]dBm in RFM69 W/CW
|
// [-18..+13]dBm in RFM69 W/CW
|
||||||
|
|
|
||||||
3
RFM69.h
3
RFM69.h
|
|
@ -232,12 +232,11 @@ class RFM69 {
|
||||||
//void promiscuous(bool onOff=true); // replaced with spyMode()
|
//void promiscuous(bool onOff=true); // replaced with spyMode()
|
||||||
virtual void setHighPower(bool _isRFM69HW_HCW=true); // has to be called after initialize() for RFM69 HW/HCW
|
virtual void setHighPower(bool _isRFM69HW_HCW=true); // has to be called after initialize() for RFM69 HW/HCW
|
||||||
bool isHighPower();
|
bool isHighPower();
|
||||||
|
virtual uint8_t getPowerLevel(); // get powerLevel
|
||||||
virtual void setPowerLevel(uint8_t level); // reduce/increase transmit power level
|
virtual void setPowerLevel(uint8_t level); // reduce/increase transmit power level
|
||||||
virtual int8_t setPowerDBm(int8_t dBm); // reduce/increase transmit power level, in dBm
|
virtual int8_t setPowerDBm(int8_t dBm); // reduce/increase transmit power level, in dBm
|
||||||
double dBm_to_mW(uint8_t dBm); // convert dBm to mW
|
double dBm_to_mW(uint8_t dBm); // convert dBm to mW
|
||||||
|
|
||||||
uint8_t getOutputPower();
|
uint8_t getOutputPower();
|
||||||
uint8_t getPowerLevel(); // get powerLevel
|
|
||||||
void sleep();
|
void sleep();
|
||||||
uint8_t readTemperature(uint8_t calFactor=0); // get CMOS temperature (8bit)
|
uint8_t readTemperature(uint8_t calFactor=0); // get CMOS temperature (8bit)
|
||||||
void rcCalibration(); // calibrate the internal RC oscillator for use in wide temperature variations - see datasheet section [4.3.5. RC Timer Accuracy]
|
void rcCalibration(); // calibrate the internal RC oscillator for use in wide temperature variations - see datasheet section [4.3.5. RC Timer Accuracy]
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue