Module redvox.api1000.wrapped_redvox_packet.sensors.single

This module provides functionality for working with single channel API M sensors.

Expand source code
"""
This module provides functionality for working with single channel API M sensors.
"""
from typing import List, Optional

import redvox.api1000.common.common as common
import redvox.api1000.common.generic
import redvox.api1000.common.typing
import redvox.api1000.proto.redvox_api_m_pb2 as redvox_api_m_pb2


class Single(
    redvox.api1000.common.generic.ProtoBase[
        redvox_api_m_pb2.RedvoxPacketM.Sensors.Single
    ]
):
    """
    This class encapsulates single channel sensors data and metadata
    """

    def __init__(self, proto: redvox_api_m_pb2.RedvoxPacketM.Sensors.Single):
        super().__init__(proto)
        self._timestamps: common.TimingPayload = common.TimingPayload(proto.timestamps)
        self._samples: common.SamplePayload = common.SamplePayload(proto.samples)

    @staticmethod
    def new() -> "Single":
        """
        :return: A new, empty Single sensor instance
        """
        return Single(redvox_api_m_pb2.RedvoxPacketM.Sensors.Single())

    def get_sensor_description(self) -> str:
        """
        :return: The sensor description
        """
        return self._proto.sensor_description

    def set_sensor_description(self, sensor_description: str) -> "Single":
        """
        Sets the sensor description.
        :param sensor_description: Description to set.
        :return: A modified instance of self
        """
        redvox.api1000.common.typing.check_type(sensor_description, [str])
        self._proto.sensor_description = sensor_description
        return self

    def get_timestamps(self) -> common.TimingPayload:
        """
        :return: The TimingPayload which contains timestamps associated with each sample
        """
        return self._timestamps

    def set_timestamps(self, timestamps: common.TimingPayload) -> "Single":
        """
        Sets the timestamps associated with the sensor payload.
        :param timestamps: Timestamps to set.
        :return: A modified instance of self.
        """
        common.check_type(timestamps, [common.TimingPayload])
        self.get_proto().timestamps.CopyFrom(timestamps.get_proto())
        self._timestamps = common.TimingPayload(self.get_proto().timestamps)
        return self

    def get_samples(self) -> common.SamplePayload:
        """
        :return: The sample payload
        """
        return self._samples

    def set_samples(self, samples: common.SamplePayload) -> "Single":
        """
        Sets the samples for this sensor.
        :param samples: Samples to set.
        :return: A modified instance of self.
        """
        common.check_type(samples, [common.SamplePayload])
        # noinspection Mypy
        self.get_proto().samples.CopyFrom(samples.get_proto())
        self._samples = common.SamplePayload(self.get_proto().samples)
        return self


def validate_single(
    single_sensor: Single, payload_unit: Optional[common.Unit] = None
) -> List[str]:
    """
    Validates the single channel sensor.
    :param single_sensor: Sensor to validate.
    :param payload_unit: Expected unit
    :return: A list of validated errors
    """
    errors_list = common.validate_timing_payload(single_sensor.get_timestamps())
    errors_list.extend(
        common.validate_sample_payload(
            single_sensor.get_samples(),
            single_sensor.get_sensor_description(),
            payload_unit,
        )
    )
    return errors_list

Functions

def validate_single(single_sensor: Single, payload_unit: Optional[Unit] = None) ‑> List[str]

Validates the single channel sensor. :param single_sensor: Sensor to validate. :param payload_unit: Expected unit :return: A list of validated errors

Expand source code
def validate_single(
    single_sensor: Single, payload_unit: Optional[common.Unit] = None
) -> List[str]:
    """
    Validates the single channel sensor.
    :param single_sensor: Sensor to validate.
    :param payload_unit: Expected unit
    :return: A list of validated errors
    """
    errors_list = common.validate_timing_payload(single_sensor.get_timestamps())
    errors_list.extend(
        common.validate_sample_payload(
            single_sensor.get_samples(),
            single_sensor.get_sensor_description(),
            payload_unit,
        )
    )
    return errors_list

Classes

class Single (proto: src.redvox_api_m.redvox_api_m_pb2.Single)

This class encapsulates single channel sensors data and metadata

Expand source code
class Single(
    redvox.api1000.common.generic.ProtoBase[
        redvox_api_m_pb2.RedvoxPacketM.Sensors.Single
    ]
):
    """
    This class encapsulates single channel sensors data and metadata
    """

    def __init__(self, proto: redvox_api_m_pb2.RedvoxPacketM.Sensors.Single):
        super().__init__(proto)
        self._timestamps: common.TimingPayload = common.TimingPayload(proto.timestamps)
        self._samples: common.SamplePayload = common.SamplePayload(proto.samples)

    @staticmethod
    def new() -> "Single":
        """
        :return: A new, empty Single sensor instance
        """
        return Single(redvox_api_m_pb2.RedvoxPacketM.Sensors.Single())

    def get_sensor_description(self) -> str:
        """
        :return: The sensor description
        """
        return self._proto.sensor_description

    def set_sensor_description(self, sensor_description: str) -> "Single":
        """
        Sets the sensor description.
        :param sensor_description: Description to set.
        :return: A modified instance of self
        """
        redvox.api1000.common.typing.check_type(sensor_description, [str])
        self._proto.sensor_description = sensor_description
        return self

    def get_timestamps(self) -> common.TimingPayload:
        """
        :return: The TimingPayload which contains timestamps associated with each sample
        """
        return self._timestamps

    def set_timestamps(self, timestamps: common.TimingPayload) -> "Single":
        """
        Sets the timestamps associated with the sensor payload.
        :param timestamps: Timestamps to set.
        :return: A modified instance of self.
        """
        common.check_type(timestamps, [common.TimingPayload])
        self.get_proto().timestamps.CopyFrom(timestamps.get_proto())
        self._timestamps = common.TimingPayload(self.get_proto().timestamps)
        return self

    def get_samples(self) -> common.SamplePayload:
        """
        :return: The sample payload
        """
        return self._samples

    def set_samples(self, samples: common.SamplePayload) -> "Single":
        """
        Sets the samples for this sensor.
        :param samples: Samples to set.
        :return: A modified instance of self.
        """
        common.check_type(samples, [common.SamplePayload])
        # noinspection Mypy
        self.get_proto().samples.CopyFrom(samples.get_proto())
        self._samples = common.SamplePayload(self.get_proto().samples)
        return self

Ancestors

Static methods

def new() ‑> Single

:return: A new, empty Single sensor instance

Expand source code
@staticmethod
def new() -> "Single":
    """
    :return: A new, empty Single sensor instance
    """
    return Single(redvox_api_m_pb2.RedvoxPacketM.Sensors.Single())

Methods

def get_samples(self) ‑> SamplePayload

:return: The sample payload

Expand source code
def get_samples(self) -> common.SamplePayload:
    """
    :return: The sample payload
    """
    return self._samples
def get_sensor_description(self) ‑> str

:return: The sensor description

Expand source code
def get_sensor_description(self) -> str:
    """
    :return: The sensor description
    """
    return self._proto.sensor_description
def get_timestamps(self) ‑> TimingPayload

:return: The TimingPayload which contains timestamps associated with each sample

Expand source code
def get_timestamps(self) -> common.TimingPayload:
    """
    :return: The TimingPayload which contains timestamps associated with each sample
    """
    return self._timestamps
def set_samples(self, samples: SamplePayload) ‑> Single

Sets the samples for this sensor. :param samples: Samples to set. :return: A modified instance of self.

Expand source code
def set_samples(self, samples: common.SamplePayload) -> "Single":
    """
    Sets the samples for this sensor.
    :param samples: Samples to set.
    :return: A modified instance of self.
    """
    common.check_type(samples, [common.SamplePayload])
    # noinspection Mypy
    self.get_proto().samples.CopyFrom(samples.get_proto())
    self._samples = common.SamplePayload(self.get_proto().samples)
    return self
def set_sensor_description(self, sensor_description: str) ‑> Single

Sets the sensor description. :param sensor_description: Description to set. :return: A modified instance of self

Expand source code
def set_sensor_description(self, sensor_description: str) -> "Single":
    """
    Sets the sensor description.
    :param sensor_description: Description to set.
    :return: A modified instance of self
    """
    redvox.api1000.common.typing.check_type(sensor_description, [str])
    self._proto.sensor_description = sensor_description
    return self
def set_timestamps(self, timestamps: TimingPayload) ‑> Single

Sets the timestamps associated with the sensor payload. :param timestamps: Timestamps to set. :return: A modified instance of self.

Expand source code
def set_timestamps(self, timestamps: common.TimingPayload) -> "Single":
    """
    Sets the timestamps associated with the sensor payload.
    :param timestamps: Timestamps to set.
    :return: A modified instance of self.
    """
    common.check_type(timestamps, [common.TimingPayload])
    self.get_proto().timestamps.CopyFrom(timestamps.get_proto())
    self._timestamps = common.TimingPayload(self.get_proto().timestamps)
    return self

Inherited members