|
62 | 62 | * Adafruit's Register library: https://github.com/adafruit/Adafruit_CircuitPython_Register
|
63 | 63 | """
|
64 | 64 |
|
65 |
| -__version__ = "0.0.0-auto.0" |
66 |
| -__repo__ = "https://github.com/adafruit/Adafruit_CircuitPython_LSM6DSOX.git" |
67 |
| - |
68 | 65 | __version__ = "0.0.0-auto.0"
|
69 | 66 | __repo__ = "https://github.com/adafruit/Adafruit_CircuitPython_LSM6DS.git"
|
70 | 67 |
|
@@ -212,7 +209,8 @@ def __init__(self, i2c_bus, address=LSM6DS_DEFAULT_ADDRESS):
|
212 | 209 | "Failed to find %s - check your wiring!" % self.__class__.__name__
|
213 | 210 | )
|
214 | 211 | self.reset()
|
215 |
| - self._add_gyro_ranges() |
| 212 | + if not hasattr(GyroRange, "string"): |
| 213 | + self._add_gyro_ranges() |
216 | 214 | self._bdu = True
|
217 | 215 |
|
218 | 216 | self._add_accel_ranges()
|
@@ -296,30 +294,29 @@ def accelerometer_range(self, value):
|
296 | 294 |
|
297 | 295 | @property
|
298 | 296 | 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`.""" |
302 | 299 | return self._cached_gyro_range
|
303 | 300 |
|
304 | 301 | @gyro_range.setter
|
305 | 302 | def gyro_range(self, value):
|
| 303 | + self._set_gyro_range(value) |
| 304 | + sleep(0.2) |
| 305 | + |
| 306 | + def _set_gyro_range(self, value): |
306 | 307 | if not GyroRange.is_valid(value):
|
307 | 308 | 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 |
315 | 313 | self._gyro_range_125dps = False
|
316 |
| - self._gyro_range_4000dps = False |
317 | 314 | 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 |
318 | 318 |
|
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 |
323 | 320 |
|
324 | 321 | @property
|
325 | 322 | def accelerometer_data_rate(self):
|
|
0 commit comments