Skip to content

Commit ea28ea3

Browse files
committed
removed duplicate __version__, adjusted gyro_range
1 parent b28544c commit ea28ea3

File tree

3 files changed

+39
-24
lines changed

3 files changed

+39
-24
lines changed

adafruit_lsm6ds/__init__.py

Lines changed: 16 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -62,9 +62,6 @@
6262
* Adafruit's Register library: https://github.com/adafruit/Adafruit_CircuitPython_Register
6363
"""
6464

65-
__version__ = "0.0.0-auto.0"
66-
__repo__ = "https://github.com/adafruit/Adafruit_CircuitPython_LSM6DSOX.git"
67-
6865
__version__ = "0.0.0-auto.0"
6966
__repo__ = "https://github.com/adafruit/Adafruit_CircuitPython_LSM6DS.git"
7067

@@ -212,7 +209,8 @@ def __init__(self, i2c_bus, address=LSM6DS_DEFAULT_ADDRESS):
212209
"Failed to find %s - check your wiring!" % self.__class__.__name__
213210
)
214211
self.reset()
215-
self._add_gyro_ranges()
212+
if not hasattr(GyroRange, "string"):
213+
self._add_gyro_ranges()
216214
self._bdu = True
217215

218216
self._add_accel_ranges()
@@ -296,30 +294,29 @@ def accelerometer_range(self, value):
296294

297295
@property
298296
def gyro_range(self):
299-
"""Adjusts the range of values that the sensor can measure, from 125 Degrees/second to 4000
300-
degrees/s. Note that larger ranges will be less accurate. Must be a `GyroRange`. 4000 DPS
301-
is only available for the ISM330DHCX"""
297+
"""Adjusts the range of values that the sensor can measure, from 125 Degrees/s to 2000
298+
degrees/s. Note that larger ranges will be less accurate. Must be a `GyroRange`."""
302299
return self._cached_gyro_range
303300

304301
@gyro_range.setter
305302
def gyro_range(self, value):
303+
self._set_gyro_range(value)
304+
sleep(0.2)
305+
306+
def _set_gyro_range(self, value):
306307
if not GyroRange.is_valid(value):
307308
raise AttributeError("range must be a `GyroRange`")
308-
if value is GyroRange.RANGE_125_DPS:
309-
self._gyro_range_125dps = True
310-
self._gyro_range_4000dps = False
311-
elif value == 4000:
312-
self._gyro_range_125dps = False
313-
self._gyro_range_4000dps = True
314-
else:
309+
self._gyro_range_4000dps = False
310+
311+
# range uses `FS_G` enum
312+
if value <= GyroRange.RANGE_2000_DPS: # pylint: disable=no-member
315313
self._gyro_range_125dps = False
316-
self._gyro_range_4000dps = False
317314
self._gyro_range = value
315+
# range uses the `FS_125` bit
316+
if value is GyroRange.RANGE_125_DPS: # pylint: disable=no-member
317+
self._gyro_range_125dps = True
318318

319-
self._cached_gyro_range = value
320-
sleep(0.2) # needed to let new range settle
321-
322-
# pylint: enable=no-member
319+
self._cached_gyro_range = value # needed to let new range settle
323320

324321
@property
325322
def accelerometer_data_rate(self):

adafruit_lsm6ds/ism330dhcx.py

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
"""
55
This module provides the ISM330DHCX subclass of LSM6DS for using ISM330DHCX sensors.
66
"""
7+
from time import sleep
78
from . import LSM6DS, LSM6DS_DEFAULT_ADDRESS, GyroRange
89

910

@@ -19,11 +20,6 @@ class ISM330DHCX(LSM6DS): # pylint: disable=too-many-instance-attributes
1920
CHIP_ID = 0x6B
2021

2122
def __init__(self, i2c_bus, address=LSM6DS_DEFAULT_ADDRESS):
22-
super().__init__(i2c_bus, address)
23-
24-
# Called DEVICE_CONF in the datasheet, but it recommends setting it
25-
self._i3c_disable = True
26-
2723
GyroRange.add_values(
2824
(
2925
("RANGE_125_DPS", 125, 125, 4.375),
@@ -34,3 +30,25 @@ def __init__(self, i2c_bus, address=LSM6DS_DEFAULT_ADDRESS):
3430
("RANGE_4000_DPS", 4000, 4000, 140.0),
3531
)
3632
)
33+
super().__init__(i2c_bus, address)
34+
35+
# Called DEVICE_CONF in the datasheet, but it recommends setting it
36+
self._i3c_disable = True
37+
38+
@property
39+
def gyro_range(self):
40+
"""Adjusts the range of values that the sensor can measure, from 125 Degrees/s to 4000
41+
degrees/s. Note that larger ranges will be less accurate. Must be a `GyroRange`. 4000 DPS
42+
is only available for the ISM330DHCX"""
43+
return self._cached_gyro_range
44+
45+
@gyro_range.setter
46+
def gyro_range(self, value):
47+
super()._set_gyro_range(value)
48+
49+
# range uses the `FS_4000` bit
50+
if value is GyroRange.RANGE_4000_DPS: # pylint: disable=no-member
51+
self._gyro_range_125dps = False
52+
self._gyro_range_4000dps = True
53+
54+
sleep(0.2) # needed to let new range settle

0 commit comments

Comments
 (0)