MCPcopy Create free account
hub / github.com/LowPowerLab/RFM69 / setPowerDBm

Method setPowerDBm

RFM69.cpp:299–315  ·  view source on GitHub ↗

Set TX Output power in dBm: [-18..+13]dBm in RFM69 W/CW [ -2..+20]dBm in RFM69 HW/HCW

Source from the content-addressed store, hash-verified

297// [-18..+13]dBm in RFM69 W/CW
298// [ -2..+20]dBm in RFM69 HW/HCW
299int8_t RFM69::setPowerDBm(int8_t dBm) {
300 if (_isRFM69HW) {
301 //fix any out of bounds
302 if (dBm < -2) dBm=-2;
303 else if (dBm>20) dBm=20;
304
305 //map dBm to _powerLevel according to implementation in setPowerLevel()
306 if (dBm < 12) setPowerLevel(2+dBm);
307 else if (dBm < 16) setPowerLevel(4+dBm);
308 else setPowerLevel(3+dBm);
309 } else { //W/CW
310 if (dBm < -18) dBm=-18;
311 else if (dBm > 13) dBm=13;
312 setPowerLevel(18+dBm);
313 }
314 return dBm;
315}
316
317double RFM69::dBm_to_mW(uint8_t dBm) {
318 return pow(10, (dBm / 10.0));

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected