Skip to content

Commit 3e4bf56

Browse files
committed
Fix Python 3 TypeError crashes by using floor division explicitly
The / operator in Python 3 returns a float, which was causing TypeErrors when being passed to the << or >> operators.
1 parent d997015 commit 3e4bf56

File tree

2 files changed

+9
-9
lines changed

2 files changed

+9
-9
lines changed

library/bme680/__init__.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -314,9 +314,9 @@ def _calc_pressure(self, pressure_adc):
314314
calc_pressure = ((calc_pressure - (var2 >> 12)) * (3125))
315315

316316
if calc_pressure >= (1 << 31):
317-
calc_pressure = ((calc_pressure / var1) << 1)
317+
calc_pressure = ((calc_pressure // var1) << 1)
318318
else:
319-
calc_pressure = ((calc_pressure << 1) / var1)
319+
calc_pressure = ((calc_pressure << 1) // var1)
320320

321321
var1 = (self.calibration_data.par_p9 * (((calc_pressure >> 3) *
322322
(calc_pressure >> 3)) >> 13)) >> 12
@@ -334,14 +334,14 @@ def _calc_pressure(self, pressure_adc):
334334
def _calc_humidity(self, humidity_adc):
335335
temp_scaled = ((self.calibration_data.t_fine * 5) + 128) >> 8
336336
var1 = (humidity_adc - ((self.calibration_data.par_h1 * 16))) \
337-
- (((temp_scaled * self.calibration_data.par_h3) / (100)) >> 1)
337+
- (((temp_scaled * self.calibration_data.par_h3) // (100)) >> 1)
338338
var2 = (self.calibration_data.par_h2
339-
* (((temp_scaled * self.calibration_data.par_h4) / (100))
340-
+ (((temp_scaled * ((temp_scaled * self.calibration_data.par_h5) / (100))) >> 6)
341-
/ (100)) + (1 * 16384))) >> 10
339+
* (((temp_scaled * self.calibration_data.par_h4) // (100))
340+
+ (((temp_scaled * ((temp_scaled * self.calibration_data.par_h5) // (100))) >> 6)
341+
// (100)) + (1 * 16384))) >> 10
342342
var3 = var1 * var2
343343
var4 = self.calibration_data.par_h6 << 7
344-
var4 = ((var4) + ((temp_scaled * self.calibration_data.par_h7) / (100))) >> 4
344+
var4 = ((var4) + ((temp_scaled * self.calibration_data.par_h7) // (100))) >> 4
345345
var5 = ((var3 >> 14) * (var3 >> 14)) >> 10
346346
var6 = (var4 * var5) >> 1
347347
calc_hum = (((var3 + var6) >> 10) * (1000)) >> 12

library/bme680/constants.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -323,9 +323,9 @@ def set_from_array(self, calibration):
323323
self.par_gh3 = twos_comp(calibration[GH3_REG], bits=8)
324324

325325
def set_other(self, heat_range, heat_value, sw_error):
326-
self.res_heat_range = (heat_range & RHRANGE_MSK) / 16
326+
self.res_heat_range = (heat_range & RHRANGE_MSK) // 16
327327
self.res_heat_val = heat_value
328-
self.range_sw_err = (sw_error * RSERROR_MSK) / 16
328+
self.range_sw_err = (sw_error * RSERROR_MSK) // 16
329329

330330
# BME680 sensor settings structure which comprises of ODR,
331331
# over-sampling and filter settings.

0 commit comments

Comments
 (0)