Ejemplo n.º 1
0
    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
Ejemplo n.º 2
0
    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
Ejemplo n.º 3
0
    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
Ejemplo n.º 4
0
    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
Ejemplo n.º 5
0
    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
Ejemplo n.º 6
0
    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
Ejemplo n.º 7
0
    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