From 1565c9891d7a37d46906c3001e787b02f958c4b0 Mon Sep 17 00:00:00 2001 From: Terri Oda Date: Mon, 6 May 2019 11:59:15 -0700 Subject: [PATCH 1/2] adafruit_rfm9x.py: improve error messages --- adafruit_rfm9x.py | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/adafruit_rfm9x.py b/adafruit_rfm9x.py index 8d84a66..f0cbe62 100644 --- a/adafruit_rfm9x.py +++ b/adafruit_rfm9x.py @@ -362,16 +362,17 @@ def __init__(self, spi, cs, reset, frequency, *, preamble_length=8, self.reset() # No device type check! Catch an error from the very first request and # throw a nicer message to indicate possible wiring problems. - try: - # Set sleep mode, wait 10s and confirm in sleep mode (basic device check). - # Also set long range mode (LoRa mode) as it can only be done in sleep. - self.sleep() - time.sleep(0.01) - self.long_range_mode = True - if self.operation_mode != SLEEP_MODE or not self.long_range_mode: - raise RuntimeError('Failed to configure radio for LoRa mode, check wiring!') - except OSError: - raise RuntimeError('Failed to communicate with radio, check wiring!') + version = self._read_u8(_RH_RF95_REG_42_VERSION) + if (version != 18): + raise RuntimeError('failed to find rfm9x with expected version -- check wiring') + + # Set sleep mode, wait 10s and confirm in sleep mode (basic device check). + # Also set long range mode (LoRa mode) as it can only be done in sleep. + self.sleep() + time.sleep(0.01) + self.long_range_mode = True + if self.operation_mode != SLEEP_MODE or not self.long_range_mode: + raise RuntimeError('Failed to configure radio for LoRa mode, check wiring!') # clear default setting for access to LF registers if frequency > 525MHz if frequency > 525: self.low_frequency_mode = 0 @@ -496,7 +497,8 @@ def frequency_mhz(self): @frequency_mhz.setter def frequency_mhz(self, val): - assert 240 <= val <= 960 + if (val < 240 or val > 960): + raise RuntimeError("Frequency must be between 240 and 960") # Calculate FRF register 24-bit value. frf = int((val * 1000000.0) / _RH_RF95_FSTEP) & 0xFFFFFF # Extract byte values and update registers. @@ -526,7 +528,8 @@ def tx_power(self): def tx_power(self, val): val = int(val) if self.high_power: - assert 5 <= val <= 23 + if val < 5 or val > 23: + raise RuntimeError("tx_power must be between 5 and 23") # Enable power amp DAC if power is above 20 dB. # Lower setting by 3db when PA_BOOST enabled - see Data Sheet Section 6.4 if val > 20: From 322fd74a6866100dcabaf5a0a7cb822b10645511 Mon Sep 17 00:00:00 2001 From: Terri Oda Date: Mon, 6 May 2019 12:13:28 -0700 Subject: [PATCH 2/2] pylint fix --- adafruit_rfm9x.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/adafruit_rfm9x.py b/adafruit_rfm9x.py index f0cbe62..64beb09 100644 --- a/adafruit_rfm9x.py +++ b/adafruit_rfm9x.py @@ -363,8 +363,8 @@ def __init__(self, spi, cs, reset, frequency, *, preamble_length=8, # No device type check! Catch an error from the very first request and # throw a nicer message to indicate possible wiring problems. version = self._read_u8(_RH_RF95_REG_42_VERSION) - if (version != 18): - raise RuntimeError('failed to find rfm9x with expected version -- check wiring') + if version != 18: + raise RuntimeError('Failed to find rfm9x with expected version -- check wiring') # Set sleep mode, wait 10s and confirm in sleep mode (basic device check). # Also set long range mode (LoRa mode) as it can only be done in sleep. @@ -497,8 +497,8 @@ def frequency_mhz(self): @frequency_mhz.setter def frequency_mhz(self, val): - if (val < 240 or val > 960): - raise RuntimeError("Frequency must be between 240 and 960") + if val < 240 or val > 960: + raise RuntimeError('frequency_mhz must be between 240 and 960') # Calculate FRF register 24-bit value. frf = int((val * 1000000.0) / _RH_RF95_FSTEP) & 0xFFFFFF # Extract byte values and update registers. @@ -529,7 +529,7 @@ def tx_power(self, val): val = int(val) if self.high_power: if val < 5 or val > 23: - raise RuntimeError("tx_power must be between 5 and 23") + raise RuntimeError('tx_power must be between 5 and 23') # Enable power amp DAC if power is above 20 dB. # Lower setting by 3db when PA_BOOST enabled - see Data Sheet Section 6.4 if val > 20: