def intr_pin(self, source, value=None): """ Configures output pin of interrupts. """ mask = dict_key_by_value(INTERRUPT_SOURCES, source) if value == None: res = self.read(CTRL_REG5) & mask else: self._require_standby_mode() val = dict_key_by_value(INTERRUPT_PINS, value) res = self.read_write(CTRL_REG5, mask, val * mask) & mask ret = INTERRUPT_PINS.get(res / mask) return ret
def auto_sleep_rate(self, value=None): """ """ if value == None: res = self.read(CTRL_REG1) & CTRL_REG1_ASLP_RATE_MASK else: self._require_standby_mode() val = dict_key_by_value(ASLP_RATES, value) res = self.read_write(CTRL_REG1, CTRL_REG1_ASLP_RATE_MASK, val) & CTRL_REG1_ASLP_RATE_MASK ret = ASLP_RATES.get(res) return ret
def data_rate(self, value=None): """ """ if value == None: res = self.read(CTRL_REG1) & CTRL_REG1_DR_MASK else: self._require_standby_mode() val = dict_key_by_value(DATA_RATES, value) res = self.read_write(CTRL_REG1, CTRL_REG1_DR_MASK, val) & CTRL_REG1_DR_MASK # Always update data rate instance variable self._data_rate = DATA_RATES.get(res) return self._data_rate
def wake(self, source, value=None): """ Enable/disable wake up sources. """ mask = dict_key_by_value(WAKE_SOURCES, source) if value == None: res = self.read(CTRL_REG3) & mask else: self._require_standby_mode() val = mask if bool(value) else 0 res = self.read_write(CTRL_REG3, mask, val) & mask ret = bool(res) return ret
def intr(self, source, value=None): """ Enable/disable interrupts. """ mask = dict_key_by_value(INTERRUPT_SOURCES, source) if value == None: res = self.read(CTRL_REG4) & mask else: self._require_standby_mode() val = mask if bool(value) else 0 res = self.read_write(CTRL_REG4, mask, val) & mask ret = bool(res) return ret
def range(self, value=None): """ Get or set dynamic range. """ if value == None: res = self.read(XYZ_DATA_CFG) & XYZ_DATA_CFG_FS_MASK else: self._require_standby_mode() val = dict_key_by_value(RANGES, value) res = self.read_write(XYZ_DATA_CFG, XYZ_DATA_CFG_FS_MASK, val) & XYZ_DATA_CFG_FS_MASK # Always update range instance variable self._range = RANGES.get(res) return self._range
def fifo_mode(self, value=None): """ Setup FIFO buffer overflow mode. """ if value == None: res = self.read(F_SETUP) & F_SETUP_MODE_MASK else: if value != FIFO_MODES[ FIFO_MODE_DISABLED] and self._fifo_mode != FIFO_MODES[ FIFO_MODE_DISABLED]: raise Exception( "Must be disabled first before changing to different mode") val = dict_key_by_value(FIFO_MODES, value) res = self.read_write(F_SETUP, F_SETUP_MODE_MASK, val) & F_SETUP_MODE_MASK # Always update FIFO mode instance variable self._fifo_mode = FIFO_MODES.get(res) return self._fifo_mode