Skip to content
Snippets Groups Projects
Select Git revision
  • 71be1ddeb128e6068d2f1df605ec9c8c10f67091
  • master default protected
  • schneider/ir
  • rahix/user-space-ctx
  • schneider/iaq-python
  • schneider/ble-mini-demo
  • schneider/ble-ecg-stream-visu
  • schneider/mp-exception-print
  • schneider/sleep-display
  • schneider/deepsleep4
  • schneider/deepsleep2
  • schneider/deepsleep
  • schneider/ble-central
  • rahix/bluetooth-app-favorite
  • schneider/v1.17-changelog
  • schneider/ancs
  • schneider/png
  • schneider/freertos-list-debug
  • schneider/212-reset-hardware-when-entering-repl
  • schneider/bonding-fail-if-full
  • schneider/ble-fixes-2020-3
  • v1.18
  • v1.17
  • v1.16
  • v1.15
  • v1.14
  • v1.13
  • v1.12
  • v1.11
  • v1.10
  • v1.9
  • v1.8
  • v1.7
  • v1.6
  • v1.5
  • v1.4
  • v1.3
  • v1.2
  • v1.1
  • v1.0
  • release-1
41 results

group__UART__BAUD1.html

Blame
  • max30001.py 1.72 KiB
    import sys_max30001
    import interrupt
    import ucollections
    
    
    class MAX30001:
        def __init__(
            self,
            usb=False,
            bias=True,
            sample_rate=128,
            callback=None,
            sample_buffer_len=256,
        ):
            self.sample_rate = sample_rate
            self.callback = callback
            self.sample_buffer_len = sample_buffer_len
            self.interrupt_id = interrupt.MAX30001_ECG
            self.usb = usb
            self.bias = bias
            self._callback = callback
            self.enable_sensor()
    
        def enable_sensor(self):
            interrupt.disable_callback(self.interrupt_id)
            interrupt.set_callback(self.interrupt_id, self._interrupt)
            self.stream_id = sys_max30001.enable_sensor(
                self.usb, self.bias, self.sample_rate, self.sample_buffer_len
            )
    
            if self.stream_id < 0:
                raise ValueError("Enable sensor returned %i", self.stream_id)
    
            self.active = True
    
            if self._callback:
                interrupt.enable_callback(self.interrupt_id)
    
        def __enter__(self):
            return self
    
        def __exit__(self, _et, _ev, _t):
            self.close()
    
        def close(self):
            if self.active:
                self.active = False
                ret = sys_max30001.disable_sensor(self.sensor_id)
    
                if ret < 0:
                    raise ValueError("Disable sensor returned %i", ret)
    
                interrupt.disable_callback(self.interrupt_id)
                interrupt.set_callback(self.interrupt_id, None)
    
        def read(self):
            if self.active:
                return sys_max30001.read_sensor(self.stream_id)
            return []
    
        def _interrupt(self, _):
            if self.active:
                data = self.read()
                if self._callback:
                    self._callback(data)