[SX127x] Fixes from cppcheck scan

This commit is contained in:
jgromes 2020-07-04 14:49:05 +02:00
parent 95e7bdb7c6
commit a367a3fe69
6 changed files with 41 additions and 38 deletions

View file

@ -218,7 +218,7 @@ int16_t SX1272::setOutputPower(int8_t power) {
state |= _mod->SPIsetRegValue(SX127X_REG_PA_CONFIG, SX127X_PA_SELECT_RFO, 7, 7);
state |= _mod->SPIsetRegValue(SX127X_REG_PA_CONFIG, (power + 1), 3, 0);
state |= _mod->SPIsetRegValue(SX1272_REG_PA_DAC, SX127X_PA_BOOST_OFF, 2, 0);
} else if((power >= 2) && (power <= 17)) {
} else if(power <= 17) {
// power is 2 - 17 dBm, enable PA1 + PA2 on PA_BOOST
state |= _mod->SPIsetRegValue(SX127X_REG_PA_CONFIG, SX127X_PA_SELECT_BOOST, 7, 7);
state |= _mod->SPIsetRegValue(SX127X_REG_PA_CONFIG, (power - 2), 3, 0);

View file

@ -159,7 +159,7 @@ class SX1272: public SX127x {
/*!
\brief Reset method. Will reset the chip to the default state using RST pin.
*/
void reset();
void reset() override;
// configuration methods
@ -226,7 +226,7 @@ class SX1272: public SX127x {
\returns \ref status_codes
*/
int16_t setDataShaping(float sh);
int16_t setDataShaping(float sh) override;
/*!
\brief Sets filter cutoff frequency that will be used for data shaping.

View file

@ -290,7 +290,7 @@ int16_t SX1278::setOutputPower(int8_t power) {
state |= _mod->SPIsetRegValue(SX127X_REG_PA_CONFIG, SX127X_PA_SELECT_RFO, 7, 7);
state |= _mod->SPIsetRegValue(SX127X_REG_PA_CONFIG, SX1278_LOW_POWER | (power + 3), 6, 0);
state |= _mod->SPIsetRegValue(SX1278_REG_PA_DAC, SX127X_PA_BOOST_OFF, 2, 0);
} else if((power >= 2) && (power <= 17)) {
} else if(power <= 17) {
// power is 2 - 17 dBm, enable PA1 + PA2 on PA_BOOST
state |= _mod->SPIsetRegValue(SX127X_REG_PA_CONFIG, SX127X_PA_SELECT_BOOST, 7, 7);
state |= _mod->SPIsetRegValue(SX127X_REG_PA_CONFIG, SX1278_MAX_POWER | (power - 2), 6, 0);

View file

@ -168,7 +168,7 @@ class SX1278: public SX127x {
/*!
\brief Reset method. Will reset the chip to the default state using RST pin.
*/
void reset();
void reset() override;
// configuration methods
@ -235,7 +235,7 @@ class SX1278: public SX127x {
\returns \ref status_codes
*/
int16_t setDataShaping(float sh);
int16_t setDataShaping(float sh) override;
/*!
\brief Sets filter cutoff frequency that will be used for data shaping.

View file

@ -3,7 +3,6 @@
SX127x::SX127x(Module* mod) : PhysicalLayer(SX127X_FREQUENCY_STEP_SIZE, SX127X_MAX_PACKET_LENGTH) {
_mod = mod;
_packetLengthQueried = false;
}
int16_t SX127x::begin(uint8_t chipVersion, uint8_t syncWord, uint8_t currentLimit, uint16_t preambleLength) {
@ -122,6 +121,7 @@ int16_t SX127x::beginFSK(uint8_t chipVersion, float br, float freqDev, float rxB
int16_t SX127x::transmit(uint8_t* data, size_t len, uint8_t addr) {
// set mode to standby
int16_t state = setMode(SX127X_STANDBY);
RADIOLIB_ASSERT(state);
int16_t modem = getActiveModem();
uint32_t start = 0;
@ -188,6 +188,7 @@ int16_t SX127x::transmit(uint8_t* data, size_t len, uint8_t addr) {
int16_t SX127x::receive(uint8_t* data, size_t len) {
// set mode to standby
int16_t state = setMode(SX127X_STANDBY);
RADIOLIB_ASSERT(state);
int16_t modem = getActiveModem();
if(modem == SX127X_LORA) {
@ -284,7 +285,7 @@ int16_t SX127x::standby() {
return(setMode(SX127X_STANDBY));
}
int16_t SX127x::transmitDirect(uint32_t FRF) {
int16_t SX127x::transmitDirect(uint32_t frf) {
// check modem
if(getActiveModem() != SX127X_FSK_OOK) {
return(ERR_WRONG_MODEM);
@ -294,10 +295,10 @@ int16_t SX127x::transmitDirect(uint32_t FRF) {
_mod->setRfSwitchState(LOW, HIGH);
// user requested to start transmitting immediately (required for RTTY)
if(FRF != 0) {
_mod->SPIwriteRegister(SX127X_REG_FRF_MSB, (FRF & 0xFF0000) >> 16);
_mod->SPIwriteRegister(SX127X_REG_FRF_MID, (FRF & 0x00FF00) >> 8);
_mod->SPIwriteRegister(SX127X_REG_FRF_LSB, FRF & 0x0000FF);
if(frf != 0) {
_mod->SPIwriteRegister(SX127X_REG_FRF_MSB, (frf & 0xFF0000) >> 16);
_mod->SPIwriteRegister(SX127X_REG_FRF_MID, (frf & 0x00FF00) >> 8);
_mod->SPIwriteRegister(SX127X_REG_FRF_LSB, frf & 0x0000FF);
return(setMode(SX127X_TX));
}
@ -352,11 +353,12 @@ int16_t SX127x::packetMode() {
int16_t SX127x::startReceive(uint8_t len, uint8_t mode) {
// set mode to standby
int16_t state = setMode(SX127X_STANDBY);
RADIOLIB_ASSERT(state);
int16_t modem = getActiveModem();
if(modem == SX127X_LORA) {
// set DIO pin mapping
state |= _mod->SPIsetRegValue(SX127X_REG_DIO_MAPPING_1, SX127X_DIO0_RX_DONE | SX127X_DIO1_RX_TIMEOUT, 7, 4);
state = _mod->SPIsetRegValue(SX127X_REG_DIO_MAPPING_1, SX127X_DIO0_RX_DONE | SX127X_DIO1_RX_TIMEOUT, 7, 4);
// set expected packet length for SF6
if(_sf == 6) {
@ -373,7 +375,8 @@ int16_t SX127x::startReceive(uint8_t len, uint8_t mode) {
} else if(modem == SX127X_FSK_OOK) {
// set DIO pin mapping
state |= _mod->SPIsetRegValue(SX127X_REG_DIO_MAPPING_1, SX127X_DIO0_PACK_PAYLOAD_READY, 7, 6);
state = _mod->SPIsetRegValue(SX127X_REG_DIO_MAPPING_1, SX127X_DIO0_PACK_PAYLOAD_READY, 7, 6);
RADIOLIB_ASSERT(state);
// clear interrupt flags
clearIRQFlags();
@ -651,7 +654,7 @@ float SX127x::getSNR() {
return(rawSNR / 4.0);
}
float SX127x::getDataRate() {
float SX127x::getDataRate() const {
return(_dataRate);
}

View file

@ -602,7 +602,7 @@ class SX127x: public PhysicalLayer {
\returns \ref status_codes
*/
int16_t transmit(uint8_t* data, size_t len, uint8_t addr = 0);
int16_t transmit(uint8_t* data, size_t len, uint8_t addr = 0) override;
/*!
\brief Binary receive method. Will attempt to receive arbitrary binary data up to 255 bytes long using %LoRa or up to 63 bytes using FSK modem.
@ -614,7 +614,7 @@ class SX127x: public PhysicalLayer {
\returns \ref status_codes
*/
int16_t receive(uint8_t* data, size_t len);
int16_t receive(uint8_t* data, size_t len) override;
/*!
\brief Performs scan for valid %LoRa preamble in the current channel.
@ -636,17 +636,17 @@ class SX127x: public PhysicalLayer {
\returns \ref status_codes
*/
int16_t standby();
int16_t standby() override;
/*!
\brief Enables direct transmission mode on pins DIO1 (clock) and DIO2 (data).
While in direct mode, the module will not be able to transmit or receive packets. Can only be activated in FSK mode.
\param FRF 24-bit raw frequency value to start transmitting at. Required for quick frequency shifts in RTTY.
\param frf 24-bit raw frequency value to start transmitting at. Required for quick frequency shifts in RTTY.
\returns \ref status_codes
*/
int16_t transmitDirect(uint32_t FRF = 0);
int16_t transmitDirect(uint32_t frf = 0) override;
/*!
\brief Enables direct reception mode on pins DIO1 (clock) and DIO2 (data).
@ -654,7 +654,7 @@ class SX127x: public PhysicalLayer {
\returns \ref status_codes
*/
int16_t receiveDirect();
int16_t receiveDirect() override;
/*!
\brief Disables direct mode and enables packet mode, allowing the module to receive packets. Can only be activated in FSK mode.
@ -700,7 +700,7 @@ class SX127x: public PhysicalLayer {
\returns \ref status_codes
*/
int16_t startTransmit(uint8_t* data, size_t len, uint8_t addr = 0);
int16_t startTransmit(uint8_t* data, size_t len, uint8_t addr = 0) override;
/*!
\brief Interrupt-driven receive method. DIO0 will be activated when full valid packet is received.
@ -722,7 +722,7 @@ class SX127x: public PhysicalLayer {
\returns \ref status_codes
*/
int16_t readData(uint8_t* data, size_t len);
int16_t readData(uint8_t* data, size_t len) override;
// configuration methods
@ -775,7 +775,7 @@ class SX127x: public PhysicalLayer {
\returns Last packet data rate in bps (bits per second).
*/
float getDataRate();
float getDataRate() const;
/*!
\brief Sets FSK bit rate. Allowed values range from 1.2 to 300 kbps. Only available in FSK mode.
@ -793,7 +793,7 @@ class SX127x: public PhysicalLayer {
\returns \ref status_codes
*/
int16_t setFrequencyDeviation(float freqDev);
int16_t setFrequencyDeviation(float freqDev) override;
/*!
\brief Sets FSK receiver bandwidth. Allowed values range from 2.6 to 250 kHz. Only available in FSK mode.
@ -856,7 +856,7 @@ class SX127x: public PhysicalLayer {
\returns Length of last received packet in bytes.
*/
size_t getPacketLength(bool update = true);
size_t getPacketLength(bool update = true) override;
/*!
\brief Set modem in fixed packet length mode. Available in FSK mode only.
@ -895,7 +895,7 @@ class SX127x: public PhysicalLayer {
\returns \ref status_codes
*/
int16_t setEncoding(uint8_t encoding);
int16_t setEncoding(uint8_t encoding) override;
/*!
\brief Reads currently active IRQ flags, can be used to check which event caused an interrupt.
@ -936,13 +936,13 @@ class SX127x: public PhysicalLayer {
#endif
Module* _mod;
float _freq;
float _bw;
uint8_t _sf;
uint8_t _cr;
float _br;
float _rxBw;
bool _ook;
float _freq = 0;
float _bw = 0;
uint8_t _sf = 0;
uint8_t _cr = 0;
float _br = 0;
float _rxBw = 0;
bool _ook = false;
int16_t setFrequencyRaw(float newFreq);
int16_t config();
@ -954,10 +954,10 @@ class SX127x: public PhysicalLayer {
#ifndef RADIOLIB_GODMODE
private:
#endif
float _dataRate;
size_t _packetLength;
bool _packetLengthQueried; // FSK packet length is the first byte in FIFO, length can only be queried once
uint8_t _packetLengthConfig;
float _dataRate = 0;
size_t _packetLength = 0;
bool _packetLengthQueried = false; // FSK packet length is the first byte in FIFO, length can only be queried once
uint8_t _packetLengthConfig = SX127X_PACKET_VARIABLE;
bool findChip(uint8_t ver);
int16_t setMode(uint8_t mode);