Module redvox.api1000.wrapped_redvox_packet.sensors.sensors
This module encapsulates available sensor types.
Expand source code
"""
This module encapsulates available sensor types.
"""
from typing import Optional, List
import redvox.api1000.common.common as common
import redvox.api1000.common.typing
import redvox.api1000.proto.redvox_api_m_pb2 as redvox_api_m_pb2
import redvox.api1000.common.generic
import redvox.api1000.wrapped_redvox_packet.sensors.audio as audio
import redvox.api1000.wrapped_redvox_packet.sensors.image as image
import redvox.api1000.wrapped_redvox_packet.sensors.location as location
import redvox.api1000.wrapped_redvox_packet.sensors.single as single
import redvox.api1000.wrapped_redvox_packet.sensors.xyz as xyz
class Sensors(
redvox.api1000.common.generic.ProtoBase[redvox_api_m_pb2.RedvoxPacketM.Sensors]
):
"""
This class encapsulated available API M sensors.
"""
# These are used for checking if a field is present or not
__ACCELEROMETER_FIELD_NAME: str = "accelerometer"
__AMBIENT_TEMPERATURE_FIELD_NAME: str = "ambient_temperature"
__AUDIO_FIELD_NAME: str = "audio"
__COMPRESSED_AUDIO_FIELD_NAME: str = "compressed_audio"
__GRAVITY_FIELD_NAME: str = "gravity"
__GYROSCOPE_FIELD_NAME: str = "gyroscope"
__IMAGE_FIELD_NAME: str = "image"
__LIGHT_FIELD_NAME: str = "light"
__LINEAR_ACCELERATION_FIELD_NAME: str = "linear_acceleration"
__LOCATION_FIELD_NAME: str = "location"
__MAGNETOMETER_FIELD_NAME: str = "magnetometer"
__ORIENTATION_FIELD_NAME: str = "orientation"
__PRESSURE_FIELD_NAME: str = "pressure"
__PROXIMITY_FIELD_NAME: str = "proximity"
__RELATIVE_HUMIDITY_FIELD_NAME: str = "relative_humidity"
__ROTATION_VECTOR: str = "rotation_vector"
__VELOCITY: str = "velocity"
def __init__(self, sensors_proto: redvox_api_m_pb2.RedvoxPacketM.Sensors):
super().__init__(sensors_proto)
self._accelerometer: xyz.Xyz = xyz.Xyz(sensors_proto.accelerometer)
self._ambient_temperature: single.Single = single.Single(
sensors_proto.ambient_temperature
)
self._audio: audio.Audio = audio.Audio(sensors_proto.audio)
self._compressed_audio: audio.CompressedAudio = audio.CompressedAudio(
sensors_proto.compressed_audio
)
self._gravity: xyz.Xyz = xyz.Xyz(sensors_proto.gravity)
self._gyroscope: xyz.Xyz = xyz.Xyz(sensors_proto.gyroscope)
self._image: image.Image = image.Image(sensors_proto.image)
self._light: single.Single = single.Single(sensors_proto.light)
self._linear_acceleration: xyz.Xyz = xyz.Xyz(sensors_proto.linear_acceleration)
self._location: location.Location = location.Location(sensors_proto.location)
self._magnetometer: xyz.Xyz = xyz.Xyz(sensors_proto.magnetometer)
self._orientation: xyz.Xyz = xyz.Xyz(sensors_proto.orientation)
self._pressure: single.Single = single.Single(sensors_proto.pressure)
self._proximity: single.Single = single.Single(sensors_proto.proximity)
self._relative_humidity: single.Single = single.Single(
sensors_proto.relative_humidity
)
self._rotation_vector: xyz.Xyz = xyz.Xyz(sensors_proto.rotation_vector)
self._velocity: xyz.Xyz = xyz.Xyz(sensors_proto.velocity)
@staticmethod
def new() -> "Sensors":
"""
:return: A new, empty Sensors instance
"""
return Sensors(redvox_api_m_pb2.RedvoxPacketM.Sensors())
def has_accelerometer(self) -> bool:
"""
:return: If this packet contains this channel
"""
# noinspection PyTypeChecker
return self.get_proto().HasField(Sensors.__ACCELEROMETER_FIELD_NAME)
def get_accelerometer(self) -> Optional[xyz.Xyz]:
"""
:return: The this sensor if it exists otherwise None
"""
return self._accelerometer if self.has_accelerometer() else None
def new_accelerometer(self) -> xyz.Xyz:
"""
:return: A new empty sensor
"""
self.remove_accelerometer()
self.get_proto().accelerometer.SetInParent()
self._accelerometer = xyz.Xyz(self.get_proto().accelerometer)
self._accelerometer.get_timestamps().set_default_unit()
# noinspection PyTypeChecker
self._accelerometer.set_unit_xyz(common.Unit.METERS_PER_SECOND_SQUARED)
return self._accelerometer
def set_accelerometer(self, accelerometer: xyz.Xyz) -> "Sensors":
"""
Sets the channel
:param accelerometer: Channel to set
:return: A modified instance of self
"""
redvox.api1000.common.typing.check_type(accelerometer, [xyz.Xyz])
self.get_proto().accelerometer.CopyFrom(accelerometer.get_proto())
self._accelerometer = xyz.Xyz(self.get_proto().accelerometer)
return self
def remove_accelerometer(self) -> "Sensors":
"""
Removes this channel
:return: A modified instance of self
"""
# noinspection PyTypeChecker
self.get_proto().ClearField(Sensors.__ACCELEROMETER_FIELD_NAME)
return self
def validate_accelerometer(self) -> bool:
"""
Checks if there are no errors with the accelerometer and it contains at least 1 data entry
:return: True if no errors
"""
# noinspection PyTypeChecker
return (
len(
xyz.validate_xyz(
self._accelerometer, common.Unit.METERS_PER_SECOND_SQUARED
)
)
< 1
and self._accelerometer.get_x_samples().get_values_count() > 0
)
def has_ambient_temperature(self) -> bool:
"""
:return: If this packet contains this channel
"""
# noinspection PyTypeChecker
return self.get_proto().HasField(Sensors.__AMBIENT_TEMPERATURE_FIELD_NAME)
def get_ambient_temperature(self) -> Optional[single.Single]:
"""
:return: The this sensor if it exists otherwise None
"""
return self._ambient_temperature if self.has_ambient_temperature() else None
def new_ambient_temperature(self) -> single.Single:
"""
:return: A new empty sensor
"""
self.remove_ambient_temperature()
self.get_proto().ambient_temperature.SetInParent()
self._ambient_temperature = single.Single(self.get_proto().ambient_temperature)
self._ambient_temperature.get_timestamps().set_default_unit()
# noinspection PyTypeChecker
self._ambient_temperature.get_samples().set_unit(common.Unit.DEGREES_CELSIUS)
return self._ambient_temperature
def set_ambient_temperature(self, ambient_temperature: single.Single) -> "Sensors":
"""
Sets the channel
:param ambient_temperature: Channel to set
:return: A modified instance of self
"""
redvox.api1000.common.typing.check_type(ambient_temperature, [single.Single])
self.get_proto().ambient_temperature.CopyFrom(ambient_temperature.get_proto())
self._ambient_temperature = single.Single(self.get_proto().ambient_temperature)
return self
def remove_ambient_temperature(self) -> "Sensors":
"""
Removes this channel
:return: A modified instance of self
"""
# noinspection PyTypeChecker
self.get_proto().ClearField(Sensors.__AMBIENT_TEMPERATURE_FIELD_NAME)
return self
def validate_ambient_temperature(self) -> bool:
"""
Checks if there are no errors with the ambient temperature sensor and it contains at least 1 data entry
:return: True if no errors
"""
# noinspection PyTypeChecker
return (
len(
single.validate_single(
self._ambient_temperature, common.Unit.DEGREES_CELSIUS
)
)
< 1
and self._ambient_temperature.get_samples().get_values_count() > 0
)
def has_audio(self) -> bool:
"""
:return: If this packet contains this channel
"""
# noinspection PyTypeChecker
return self.get_proto().HasField(Sensors.__AUDIO_FIELD_NAME)
def get_audio(self) -> Optional[audio.Audio]:
"""
:return: The this sensor if it exists otherwise None
"""
return self._audio if self.has_audio() else None
def new_audio(self) -> audio.Audio:
"""
:return: A new empty sensor
"""
self.remove_audio()
self.get_proto().audio.SetInParent()
self._audio = audio.Audio(self.get_proto().audio)
# noinspection PyTypeChecker
self._audio.get_samples().set_unit(common.Unit.LSB_PLUS_MINUS_COUNTS)
return self._audio
def set_audio(self, _audio: audio.Audio) -> "Sensors":
"""
Sets the channel
:param _audio: Channel to set
:return: A modified instance of self
"""
redvox.api1000.common.typing.check_type(_audio, [audio.Audio])
self.get_proto().audio.CopyFrom(_audio.get_proto())
self._audio = audio.Audio(self.get_proto().audio)
return self
def remove_audio(self) -> "Sensors":
"""
Removes this channel
:return: A modified instance of self
"""
# noinspection PyTypeChecker
self.get_proto().ClearField(Sensors.__AUDIO_FIELD_NAME)
return self
def validate_audio(self) -> bool:
"""
Checks if there are no errors with the audio sensor and it contains at least 1 data entry
:return: True if no errors
"""
return (
len(audio.validate_audio(self._audio)) < 1
and self._audio.get_samples().get_values_count() > 0
)
def has_compressed_audio(self) -> bool:
"""
:return: If this packet contains this channel
"""
# noinspection PyTypeChecker
return self.get_proto().HasField(Sensors.__COMPRESSED_AUDIO_FIELD_NAME)
def get_compressed_audio(self) -> Optional[audio.CompressedAudio]:
"""
:return: The this sensor if it exists otherwise None
"""
return self._compressed_audio if self.has_compressed_audio() else None
def new_compressed_audio(self) -> audio.CompressedAudio:
"""
:return: A new empty sensor
"""
self.remove_compressed_audio()
self.get_proto().compressed_audio.SetInParent()
self._compressed_audio = audio.CompressedAudio(
self.get_proto().compressed_audio
)
return self._compressed_audio
def set_compressed_audio(
self, compressed_audio: audio.CompressedAudio
) -> "Sensors":
"""
Sets the channel
:param compressed_audio: Channel to set
:return: A modified instance of self
"""
redvox.api1000.common.typing.check_type(
compressed_audio, [audio.CompressedAudio]
)
# noinspection Mypy
self.get_proto().compressed_audio.CopyFrom(compressed_audio.get_proto())
self._compressed_audio = audio.CompressedAudio(
self.get_proto().compressed_audio
)
return self
def remove_compressed_audio(self) -> "Sensors":
"""
Removes this channel
:return: A modified instance of self
"""
# noinspection PyTypeChecker
self.get_proto().ClearField(Sensors.__COMPRESSED_AUDIO_FIELD_NAME)
return self
def validate_compressed_audio(self) -> bool:
"""
Checks if there are no errors with the compressed audio sensor and it contains at least 1 data entry
:return: True if no errors
"""
return len(audio.validate_compressed_audio(self._compressed_audio)) < 1
def has_gravity(self) -> bool:
"""
:return: If this packet contains this channel
"""
# noinspection PyTypeChecker,Mypy
return self.get_proto().HasField(Sensors.__GRAVITY_FIELD_NAME)
def get_gravity(self) -> Optional[xyz.Xyz]:
"""
:return: The this sensor if it exists otherwise None
"""
return self._gravity if self.has_gravity() else None
def new_gravity(self) -> xyz.Xyz:
"""
:return: A new empty sensor
"""
self.remove_gravity()
self.get_proto().gravity.SetInParent()
self._gravity = xyz.Xyz(self.get_proto().gravity)
self._gravity.get_timestamps().set_default_unit()
# noinspection PyTypeChecker
self._gravity.set_unit_xyz(common.Unit.METERS_PER_SECOND_SQUARED)
return self._gravity
def set_gravity(self, gravity: xyz.Xyz) -> "Sensors":
"""
Sets the channel
:param gravity: Channel to set
:return: A modified instance of self
"""
redvox.api1000.common.typing.check_type(gravity, [xyz.Xyz])
self.get_proto().gravity.CopyFrom(gravity.get_proto())
self._gravity = xyz.Xyz(self.get_proto().gravity)
return self
def remove_gravity(self) -> "Sensors":
"""
Removes this channel
:return: A modified instance of self
"""
# noinspection PyTypeChecker
self.get_proto().ClearField(Sensors.__GRAVITY_FIELD_NAME)
return self
def validate_gravity(self) -> bool:
"""
Checks if there are no errors with the gravity sensor and it contains at least 1 data entry
:return: True if no errors
"""
# noinspection PyTypeChecker
return (
len(xyz.validate_xyz(self._gravity, common.Unit.METERS_PER_SECOND_SQUARED))
< 1
and self._gravity.get_x_samples().get_values_count() > 0
)
def has_gyroscope(self) -> bool:
"""
:return: If this packet contains this channel
"""
# noinspection PyTypeChecker
return self.get_proto().HasField(Sensors.__GYROSCOPE_FIELD_NAME)
def get_gyroscope(self) -> Optional[xyz.Xyz]:
"""
:return: The this sensor if it exists otherwise None
"""
return self._gyroscope if self.has_gyroscope() else None
def new_gyroscope(self) -> xyz.Xyz:
"""
:return: A new empty sensor
"""
self.remove_gyroscope()
self.get_proto().gyroscope.SetInParent()
self._gyroscope = xyz.Xyz(self.get_proto().gyroscope)
self._gyroscope.get_timestamps().set_default_unit()
# noinspection PyTypeChecker
self._gyroscope.set_unit_xyz(common.Unit.RADIANS_PER_SECOND)
return self._gyroscope
def set_gyroscope(self, gyroscope: xyz.Xyz) -> "Sensors":
"""
Sets the channel
:param gyroscope: Channel to set
:return: A modified instance of self
"""
redvox.api1000.common.typing.check_type(gyroscope, [xyz.Xyz])
self.get_proto().gyroscope.CopyFrom(gyroscope.get_proto())
self._gyroscope = xyz.Xyz(self.get_proto().gyroscope)
return self
def remove_gyroscope(self) -> "Sensors":
"""
Removes this sensor
:return: A modified instance of self
"""
# noinspection PyTypeChecker
self.get_proto().ClearField(Sensors.__GYROSCOPE_FIELD_NAME)
return self
def validate_gyroscope(self) -> bool:
"""
Checks if there are no errors with the gyroscope and it contains at least 1 data entry
:return: True if no errors
"""
# noinspection PyTypeChecker
return (
len(xyz.validate_xyz(self._gyroscope, common.Unit.RADIANS_PER_SECOND)) < 1
and self._gyroscope.get_x_samples().get_values_count() > 0
)
def has_image(self) -> bool:
"""
:return: If this packet contains this channel
"""
# noinspection PyTypeChecker
return self.get_proto().HasField(Sensors.__IMAGE_FIELD_NAME)
def get_image(self) -> Optional[image.Image]:
"""
:return: The this sensor if it exists otherwise None
"""
return self._image if self.has_image() else None
def new_image(self) -> image.Image:
"""
:return: A new empty sensor
"""
self.remove_image()
self.get_proto().image.SetInParent()
self._image = image.Image(self.get_proto().image)
# noinspection PyTypeChecker
self._image.set_image_codec(image.ImageCodec.PNG)
return self._image
def set_image(self, _image: image.Image) -> "Sensors":
"""
Sets the channel
:param _image: Channel to set
:return: A modified instance of self
"""
redvox.api1000.common.typing.check_type(_image, [image.Image])
self.get_proto().image.CopyFrom(_image.get_proto())
self._image = image.Image(self.get_proto().image)
return self
def remove_image(self) -> "Sensors":
"""
Removes this sensor
:return: A modified instance of self
"""
# noinspection PyTypeChecker
self.get_proto().ClearField(Sensors.__IMAGE_FIELD_NAME)
return self
def validate_image(self) -> bool:
"""
Checks if there are no errors with the image sensor and it contains at least 1 data entry
:return: True if no errors
"""
return (
len(image.validate_image(self._image)) < 1
and self._image.get_num_images() > 0
)
def has_light(self) -> bool:
"""
:return: If this packet contains this channel
"""
# noinspection PyTypeChecker
return self.get_proto().HasField(Sensors.__LIGHT_FIELD_NAME)
def get_light(self) -> Optional[single.Single]:
"""
:return: The this sensor if it exists otherwise None
"""
return self._light if self.has_light() else None
def new_light(self) -> single.Single:
"""
:return: A new empty sensor
"""
self.remove_light()
self.get_proto().light.SetInParent()
self._light = single.Single(self.get_proto().light)
self._light.get_timestamps().set_default_unit()
# noinspection PyTypeChecker
self._light.get_samples().set_unit(common.Unit.LUX)
return self._light
def set_light(self, light: single.Single) -> "Sensors":
"""
Sets the channel
:param light: Channel to set
:return: A modified instance of self
"""
redvox.api1000.common.typing.check_type(light, [single.Single])
self.get_proto().light.CopyFrom(light.get_proto())
self._light = single.Single(self.get_proto().light)
return self
def remove_light(self) -> "Sensors":
"""
Removes this sensor
:return: A modified instance of self
"""
# noinspection PyTypeChecker
self.get_proto().ClearField(Sensors.__LIGHT_FIELD_NAME)
return self
def validate_light(self) -> bool:
"""
Checks if there are no errors with the light sensor and it contains at least 1 data entry
:return: True if no errors
"""
# noinspection PyTypeChecker
return (
len(single.validate_single(self._light, common.Unit.LUX)) < 1
and self._light.get_samples().get_values_count() > 0
)
def has_linear_acceleration(self) -> bool:
"""
:return: If this packet contains this channel
"""
# noinspection PyTypeChecker
return self.get_proto().HasField(Sensors.__LINEAR_ACCELERATION_FIELD_NAME)
def get_linear_acceleration(self) -> Optional[xyz.Xyz]:
"""
:return: The this sensor if it exists otherwise None
"""
return self._linear_acceleration if self.has_linear_acceleration() else None
def new_linear_acceleration(self) -> xyz.Xyz:
"""
:return: A new empty sensor
"""
self.remove_linear_acceleration()
self.get_proto().linear_acceleration.SetInParent()
self._linear_acceleration = xyz.Xyz(self.get_proto().linear_acceleration)
self._linear_acceleration.get_timestamps().set_default_unit()
# noinspection PyTypeChecker
self._linear_acceleration.set_unit_xyz(common.Unit.METERS_PER_SECOND_SQUARED)
return self._linear_acceleration
def set_linear_acceleration(self, linear_acceleration: xyz.Xyz) -> "Sensors":
"""
Sets the channel
:param linear_acceleration: Channel to set
:return: A modified instance of self
"""
redvox.api1000.common.typing.check_type(linear_acceleration, [xyz.Xyz])
self.get_proto().linear_acceleration.CopyFrom(linear_acceleration.get_proto())
self._linear_acceleration = xyz.Xyz(self.get_proto().linear_acceleration)
return self
def remove_linear_acceleration(self) -> "Sensors":
"""
Removes this sensor
:return: A modified instance of self
"""
# noinspection PyTypeChecker
self.get_proto().ClearField(Sensors.__LINEAR_ACCELERATION_FIELD_NAME)
return self
def validate_linear_acceleration(self) -> bool:
"""
Checks if there are no errors with the linear acceleration sensor and it contains at least 1 data entry
:return: True if no errors
"""
# noinspection PyTypeChecker
return (
len(
xyz.validate_xyz(
self._linear_acceleration, common.Unit.METERS_PER_SECOND_SQUARED
)
)
< 1
and self._linear_acceleration.get_x_samples().get_values_count() > 0
)
def has_location(self) -> bool:
"""
:return: If this packet contains this channel
"""
# noinspection PyTypeChecker
return self.get_proto().HasField(Sensors.__LOCATION_FIELD_NAME)
def get_location(self) -> Optional[location.Location]:
"""
:return: The this sensor if it exists otherwise None
"""
return self._location if self.has_location() else None
def new_location(self) -> location.Location:
"""
:return: A new empty sensor
"""
self.remove_location()
self.get_proto().location.SetInParent()
self._location = location.Location(self.get_proto().location)
self._location.get_timestamps().set_default_unit()
# noinspection PyTypeChecker
self._location.get_latitude_samples().set_unit(common.Unit.DECIMAL_DEGREES)
# noinspection PyTypeChecker
self._location.get_longitude_samples().set_unit(common.Unit.DECIMAL_DEGREES)
# noinspection PyTypeChecker
self._location.get_altitude_samples().set_unit(common.Unit.METERS)
# noinspection PyTypeChecker
self._location.get_speed_samples().set_unit(common.Unit.METERS_PER_SECOND)
# noinspection PyTypeChecker
self._location.get_bearing_samples().set_unit(common.Unit.DECIMAL_DEGREES)
# noinspection PyTypeChecker
self._location.get_horizontal_accuracy_samples().set_unit(common.Unit.METERS)
# noinspection PyTypeChecker
self._location.get_vertical_accuracy_samples().set_unit(common.Unit.METERS)
# noinspection PyTypeChecker
self._location.get_speed_accuracy_samples().set_unit(
common.Unit.METERS_PER_SECOND
)
# noinspection PyTypeChecker
self._location.get_bearing_accuracy_samples().set_unit(
common.Unit.DECIMAL_DEGREES
)
return self._location
def set_location(self, _location: location.Location) -> "Sensors":
"""
Sets the channel
:param _location: Channel to set
:return: A modified instance of self
"""
redvox.api1000.common.typing.check_type(_location, [location.Location])
self.get_proto().location.CopyFrom(_location.get_proto())
self._location = location.Location(self.get_proto().location)
return self
def remove_location(self) -> "Sensors":
"""
Removes this sensor
:return: A modified instance of self
"""
# noinspection PyTypeChecker
self.get_proto().ClearField(Sensors.__LOCATION_FIELD_NAME)
return self
def validate_location(self) -> bool:
"""
Checks if there are no errors with the location
:return: True if no errors
"""
return len(location.validate_location(self._location)) < 1
def has_magnetometer(self) -> bool:
"""
:return: If this packet contains this channel
"""
# noinspection PyTypeChecker
return self.get_proto().HasField(Sensors.__MAGNETOMETER_FIELD_NAME)
def get_magnetometer(self) -> Optional[xyz.Xyz]:
"""
:return: The this sensor if it exists otherwise None
"""
return self._magnetometer if self.has_magnetometer() else None
def new_magnetometer(self) -> xyz.Xyz:
"""
:return: A new empty sensor
"""
self.remove_magnetometer()
self.get_proto().magnetometer.SetInParent()
self._magnetometer = xyz.Xyz(self.get_proto().magnetometer)
self._magnetometer.get_timestamps().set_default_unit()
# noinspection PyTypeChecker
self._magnetometer.set_unit_xyz(common.Unit.MICROTESLA)
return self._magnetometer
def set_magnetometer(self, magnetometer: xyz.Xyz) -> "Sensors":
"""
Sets the channel
:param magnetometer: Channel to set
:return: A modified instance of self
"""
redvox.api1000.common.typing.check_type(magnetometer, [xyz.Xyz])
self.get_proto().magnetometer.CopyFrom(magnetometer.get_proto())
self._magnetometer = xyz.Xyz(self.get_proto().magnetometer)
return self
def remove_magnetometer(self) -> "Sensors":
"""
Removes this sensor
:return: A modified instance of self
"""
# noinspection PyTypeChecker
self.get_proto().ClearField(Sensors.__MAGNETOMETER_FIELD_NAME)
return self
def validate_magnetometer(self) -> bool:
"""
Checks if there are no errors with the magnetometer and it contains at least 1 data entry
:return: True if no errors
"""
# noinspection PyTypeChecker
return (
len(xyz.validate_xyz(self._magnetometer, common.Unit.MICROTESLA)) < 1
and self._magnetometer.get_x_samples().get_values_count() > 0
)
def has_orientation(self) -> bool:
"""
:return: If this packet contains this channel
"""
# noinspection PyTypeChecker
return self.get_proto().HasField(Sensors.__ORIENTATION_FIELD_NAME)
def get_orientation(self) -> Optional[xyz.Xyz]:
"""
:return: The this sensor if it exists otherwise None
"""
return self._orientation if self.has_orientation() else None
def new_orientation(self) -> xyz.Xyz:
"""
:return: A new empty sensor
"""
self.remove_orientation()
self.get_proto().orientation.SetInParent()
self._orientation = xyz.Xyz(self.get_proto().orientation)
self._orientation.get_timestamps().set_default_unit()
# noinspection PyTypeChecker
self._orientation.set_unit_xyz(common.Unit.RADIANS)
return self._orientation
def set_orientation(self, orientation: xyz.Xyz) -> "Sensors":
"""
Sets the channel
:param orientation: Channel to set
:return: A modified instance of self
"""
redvox.api1000.common.typing.check_type(orientation, [xyz.Xyz])
self.get_proto().orientation.CopyFrom(orientation.get_proto())
self._orientation = xyz.Xyz(self.get_proto().orientation)
return self
def remove_orientation(self) -> "Sensors":
"""
Removes this sensor
:return: A modified instance of self
"""
# noinspection PyTypeChecker
self.get_proto().ClearField(Sensors.__ORIENTATION_FIELD_NAME)
return self
def validate_orientation(self) -> bool:
"""
Checks if there are no errors with the orientation sensor and it contains at least 1 data entry
:return: True if no errors
"""
# noinspection PyTypeChecker
return (
len(xyz.validate_xyz(self._orientation, common.Unit.RADIANS)) < 1
and self._orientation.get_x_samples().get_values_count() > 0
)
def has_pressure(self) -> bool:
"""
:return: If this packet contains this channel
"""
# noinspection PyTypeChecker
return self.get_proto().HasField(Sensors.__PRESSURE_FIELD_NAME)
def get_pressure(self) -> Optional[single.Single]:
"""
:return: The this sensor if it exists otherwise None
"""
return self._pressure if self.has_pressure() else None
def new_pressure(self) -> single.Single:
"""
:return: A new empty sensor
"""
self.remove_pressure()
self.get_proto().pressure.SetInParent()
self._pressure = single.Single(self.get_proto().pressure)
self._pressure.get_timestamps().set_default_unit()
# noinspection PyTypeChecker
self._pressure.get_samples().set_unit(common.Unit.KILOPASCAL)
return self._pressure
def set_pressure(self, pressure: single.Single) -> "Sensors":
"""
Sets the channel
:param pressure: Channel to set
:return: A modified instance of self
"""
redvox.api1000.common.typing.check_type(pressure, [single.Single])
self.get_proto().pressure.CopyFrom(pressure.get_proto())
self._pressure = single.Single(self.get_proto().pressure)
return self
def remove_pressure(self) -> "Sensors":
"""
Removes this sensor
:return: A modified instance of self
"""
# noinspection PyTypeChecker
self.get_proto().ClearField(Sensors.__PRESSURE_FIELD_NAME)
return self
def validate_pressure(self) -> bool:
"""
Checks if there are no errors with the pressure sensor and it contains at least 1 data entry
:return: True if no errors
"""
# noinspection PyTypeChecker
return (
len(single.validate_single(self._pressure, common.Unit.KILOPASCAL)) < 1
and self._pressure.get_samples().get_values_count() > 0
)
def has_proximity(self) -> bool:
"""
:return: If this packet contains this channel
"""
# noinspection PyTypeChecker
return self.get_proto().HasField(Sensors.__PROXIMITY_FIELD_NAME)
def get_proximity(self) -> Optional[single.Single]:
"""
:return: The this sensor if it exists otherwise None
"""
return self._proximity if self.has_proximity() else None
def new_proximity(self) -> single.Single:
"""
:return: A new empty sensor
"""
self.remove_proximity()
self.get_proto().proximity.SetInParent()
self._proximity = single.Single(self.get_proto().proximity)
self._proximity.get_timestamps().set_default_unit()
# noinspection PyTypeChecker
self._proximity.get_samples().set_unit(common.Unit.CENTIMETERS)
return self._proximity
def set_proximity(self, proximity: single.Single) -> "Sensors":
"""
Sets the channel
:param proximity: Channel to set
:return: A modified instance of self
"""
redvox.api1000.common.typing.check_type(proximity, [single.Single])
self.get_proto().proximity.CopyFrom(proximity.get_proto())
self._proximity = single.Single(self.get_proto().proximity)
return self
def remove_proximity(self) -> "Sensors":
"""
Removes this sensor
:return: A modified instance of self
"""
# noinspection PyTypeChecker
self.get_proto().ClearField(Sensors.__PROXIMITY_FIELD_NAME)
return self
def validate_proximity(self) -> bool:
"""
Checks if there are no errors with the proximity sensor and it contains at least 1 data entry
:return: True if no errors
"""
# noinspection PyTypeChecker
return (
len(single.validate_single(self._proximity, common.Unit.CENTIMETERS)) < 1
and self._proximity.get_samples().get_values_count() > 0
)
def has_relative_humidity(self) -> bool:
"""
:return: If this packet contains this channel
"""
# noinspection PyTypeChecker
return self.get_proto().HasField(Sensors.__RELATIVE_HUMIDITY_FIELD_NAME)
def get_relative_humidity(self) -> Optional[single.Single]:
"""
:return: The this sensor if it exists otherwise None
"""
return self._relative_humidity if self.has_relative_humidity() else None
def new_relative_humidity(self) -> single.Single:
"""
:return: A new empty sensor
"""
self.remove_relative_humidity()
self.get_proto().relative_humidity.SetInParent()
self._relative_humidity = single.Single(self.get_proto().relative_humidity)
self._relative_humidity.get_timestamps().set_default_unit()
# noinspection PyTypeChecker
self._relative_humidity.get_samples().set_unit(common.Unit.PERCENTAGE)
return self._relative_humidity
def set_relative_humidity(self, relative_humidity: single.Single) -> "Sensors":
"""
Sets the channel
:param relative_humidity: Channel to set
:return: A modified instance of self
"""
redvox.api1000.common.typing.check_type(relative_humidity, [single.Single])
self.get_proto().relative_humidity.CopyFrom(relative_humidity.get_proto())
self._relative_humidity = single.Single(self.get_proto().relative_humidity)
return self
def remove_relative_humidity(self) -> "Sensors":
"""
Removes this sensor
:return: A modified instance of self
"""
# noinspection PyTypeChecker
self.get_proto().ClearField(Sensors.__RELATIVE_HUMIDITY_FIELD_NAME)
return self
def validate_relative_humidity(self) -> bool:
"""
Checks if there are no errors with the relative_humidity sensor and it contains at least 1 data entry
:return: True if no errors
"""
# noinspection PyTypeChecker
return (
len(single.validate_single(self._relative_humidity, common.Unit.PERCENTAGE))
< 1
and self._relative_humidity.get_samples().get_values_count() > 0
)
def has_rotation_vector(self) -> bool:
"""
:return: If this packet contains this channel
"""
# noinspection PyTypeChecker
return self.get_proto().HasField(Sensors.__ROTATION_VECTOR)
def get_rotation_vector(self) -> Optional[xyz.Xyz]:
"""
:return: The this sensor if it exists otherwise None
"""
return self._rotation_vector if self.has_rotation_vector() else None
def new_rotation_vector(self) -> xyz.Xyz:
"""
:return: A new empty sensor
"""
self.remove_rotation_vector()
self.get_proto().rotation_vector.SetInParent()
self._rotation_vector = xyz.Xyz(self.get_proto().rotation_vector)
self._rotation_vector.get_timestamps().set_default_unit()
# noinspection PyTypeChecker
self._rotation_vector.set_unit_xyz(common.Unit.UNITLESS)
return self._rotation_vector
def set_rotation_vector(self, rotation_vector: xyz.Xyz) -> "Sensors":
"""
Sets the channel
:param rotation_vector: Channel to set
:return: A modified instance of self
"""
redvox.api1000.common.typing.check_type(rotation_vector, [xyz.Xyz])
self.get_proto().rotation_vector.CopyFrom(rotation_vector.get_proto())
self._rotation_vector = xyz.Xyz(self.get_proto().rotation_vector)
return self
def remove_rotation_vector(self) -> "Sensors":
"""
Removes this sensor
:return: A modified instance of self
"""
# noinspection PyTypeChecker
self.get_proto().ClearField(Sensors.__ROTATION_VECTOR)
return self
def validate_rotation_vector(self) -> bool:
"""
Checks if there are no errors with the rotation vector sensor and it contains at least 1 data entry
:return: True if no errors
"""
# noinspection PyTypeChecker
return (
len(xyz.validate_xyz(self._rotation_vector, common.Unit.UNITLESS)) < 1
and self._rotation_vector.get_x_samples().get_values_count() > 0
)
def has_velocity(self) -> bool:
"""
:return: If this packet contains this channel
"""
# noinspection PyTypeChecker
return self.get_proto().HasField(Sensors.__VELOCITY)
def get_velocity(self) -> Optional[xyz.Xyz]:
"""
:return: The this sensor if it exists otherwise None
"""
return self._velocity if self.has_velocity() else None
def new_velocity(self) -> xyz.Xyz:
"""
:return: A new empty sensor
"""
self.remove_velocity()
self.get_proto().velocity.SetInParent()
self._velocity = xyz.Xyz(self.get_proto().velocity)
self._velocity.get_timestamps().set_default_unit()
# noinspection PyTypeChecker
self._velocity.set_unit_xyz(common.Unit.METERS_PER_SECOND)
return self._velocity
def set_velocity(self, velocity: xyz.Xyz) -> "Sensors":
"""
Sets the channel
:param velocity: Channel to set
:return: A modified instance of self
"""
redvox.api1000.common.typing.check_type(velocity, [xyz.Xyz])
self.get_proto().velocity.CopyFrom(velocity.get_proto())
self._velocity = xyz.Xyz(self.get_proto().velocity)
return self
def remove_velocity(self) -> "Sensors":
"""
Removes this sensor
:return: A modified instance of self
"""
# noinspection PyTypeChecker
self.get_proto().ClearField(Sensors.__VELOCITY)
return self
def validate_velocity(self) -> bool:
"""
Checks if there are no errors with the sensor and it contains at least 1 data entry
:return: True if no errors
"""
# noinspection PyTypeChecker
return (
len(xyz.validate_xyz(self._velocity, common.Unit.METERS_PER_SECOND)) < 1
and self._velocity.get_x_samples().get_values_count() > 0
)
def validate_sensors(sensors_list: Sensors) -> List[str]:
"""
Validates sensors.
:param sensors_list: Sensors to validate
:return: A list of validated errors
"""
# audio is the only sensor that every packet must have
errors_list = []
if not sensors_list.has_audio() and not sensors_list.has_compressed_audio():
errors_list.append("Sensors list missing audio sensor")
else:
if sensors_list.has_audio():
errors_list.extend(audio.validate_audio(sensors_list.get_audio()))
if sensors_list.has_compressed_audio():
errors_list.extend(
audio.validate_compressed_audio(sensors_list.get_compressed_audio())
)
if sensors_list.has_accelerometer():
errors_list.extend(
xyz.validate_xyz(
sensors_list.get_accelerometer(), common.Unit.METERS_PER_SECOND_SQUARED
)
)
if sensors_list.has_ambient_temperature():
errors_list.extend(
single.validate_single(
sensors_list.get_ambient_temperature(), common.Unit.DEGREES_CELSIUS
)
)
if sensors_list.has_gravity():
errors_list.extend(
xyz.validate_xyz(
sensors_list.get_gravity(), common.Unit.METERS_PER_SECOND_SQUARED
)
)
if sensors_list.has_gyroscope():
errors_list.extend(
xyz.validate_xyz(
sensors_list.get_gyroscope(), common.Unit.RADIANS_PER_SECOND
)
)
if sensors_list.has_image():
errors_list.extend(image.validate_image(sensors_list.get_image()))
if sensors_list.has_light():
errors_list.extend(
single.validate_single(sensors_list.get_light(), common.Unit.LUX)
)
if sensors_list.has_linear_acceleration():
errors_list.extend(
xyz.validate_xyz(
sensors_list.get_linear_acceleration(),
common.Unit.METERS_PER_SECOND_SQUARED,
)
)
if sensors_list.has_location():
errors_list.extend(location.validate_location(sensors_list.get_location()))
if sensors_list.has_magnetometer():
errors_list.extend(
xyz.validate_xyz(sensors_list.get_magnetometer(), common.Unit.MICROTESLA)
)
if sensors_list.has_orientation():
errors_list.extend(
xyz.validate_xyz(sensors_list.get_orientation(), common.Unit.RADIANS)
)
if sensors_list.has_pressure():
errors_list.extend(
single.validate_single(sensors_list.get_pressure(), common.Unit.KILOPASCAL)
)
if sensors_list.has_proximity():
errors_list.extend(
single.validate_single(
sensors_list.get_proximity(), common.Unit.CENTIMETERS
)
)
if sensors_list.has_relative_humidity():
errors_list.extend(
single.validate_single(
sensors_list.get_relative_humidity(), common.Unit.PERCENTAGE
)
)
if sensors_list.has_rotation_vector():
errors_list.extend(
xyz.validate_xyz(sensors_list.get_rotation_vector(), common.Unit.UNITLESS)
)
if sensors_list.has_velocity():
errors_list.extend(
xyz.validate_xyz(sensors_list.get_velocity(), common.Unit.METERS_PER_SECOND)
)
return errors_list
Functions
def validate_sensors(sensors_list: Sensors) ‑> List[str]
-
Validates sensors. :param sensors_list: Sensors to validate :return: A list of validated errors
Expand source code
def validate_sensors(sensors_list: Sensors) -> List[str]: """ Validates sensors. :param sensors_list: Sensors to validate :return: A list of validated errors """ # audio is the only sensor that every packet must have errors_list = [] if not sensors_list.has_audio() and not sensors_list.has_compressed_audio(): errors_list.append("Sensors list missing audio sensor") else: if sensors_list.has_audio(): errors_list.extend(audio.validate_audio(sensors_list.get_audio())) if sensors_list.has_compressed_audio(): errors_list.extend( audio.validate_compressed_audio(sensors_list.get_compressed_audio()) ) if sensors_list.has_accelerometer(): errors_list.extend( xyz.validate_xyz( sensors_list.get_accelerometer(), common.Unit.METERS_PER_SECOND_SQUARED ) ) if sensors_list.has_ambient_temperature(): errors_list.extend( single.validate_single( sensors_list.get_ambient_temperature(), common.Unit.DEGREES_CELSIUS ) ) if sensors_list.has_gravity(): errors_list.extend( xyz.validate_xyz( sensors_list.get_gravity(), common.Unit.METERS_PER_SECOND_SQUARED ) ) if sensors_list.has_gyroscope(): errors_list.extend( xyz.validate_xyz( sensors_list.get_gyroscope(), common.Unit.RADIANS_PER_SECOND ) ) if sensors_list.has_image(): errors_list.extend(image.validate_image(sensors_list.get_image())) if sensors_list.has_light(): errors_list.extend( single.validate_single(sensors_list.get_light(), common.Unit.LUX) ) if sensors_list.has_linear_acceleration(): errors_list.extend( xyz.validate_xyz( sensors_list.get_linear_acceleration(), common.Unit.METERS_PER_SECOND_SQUARED, ) ) if sensors_list.has_location(): errors_list.extend(location.validate_location(sensors_list.get_location())) if sensors_list.has_magnetometer(): errors_list.extend( xyz.validate_xyz(sensors_list.get_magnetometer(), common.Unit.MICROTESLA) ) if sensors_list.has_orientation(): errors_list.extend( xyz.validate_xyz(sensors_list.get_orientation(), common.Unit.RADIANS) ) if sensors_list.has_pressure(): errors_list.extend( single.validate_single(sensors_list.get_pressure(), common.Unit.KILOPASCAL) ) if sensors_list.has_proximity(): errors_list.extend( single.validate_single( sensors_list.get_proximity(), common.Unit.CENTIMETERS ) ) if sensors_list.has_relative_humidity(): errors_list.extend( single.validate_single( sensors_list.get_relative_humidity(), common.Unit.PERCENTAGE ) ) if sensors_list.has_rotation_vector(): errors_list.extend( xyz.validate_xyz(sensors_list.get_rotation_vector(), common.Unit.UNITLESS) ) if sensors_list.has_velocity(): errors_list.extend( xyz.validate_xyz(sensors_list.get_velocity(), common.Unit.METERS_PER_SECOND) ) return errors_list
Classes
class Sensors (sensors_proto: src.redvox_api_m.redvox_api_m_pb2.Sensors)
-
This class encapsulated available API M sensors.
Expand source code
class Sensors( redvox.api1000.common.generic.ProtoBase[redvox_api_m_pb2.RedvoxPacketM.Sensors] ): """ This class encapsulated available API M sensors. """ # These are used for checking if a field is present or not __ACCELEROMETER_FIELD_NAME: str = "accelerometer" __AMBIENT_TEMPERATURE_FIELD_NAME: str = "ambient_temperature" __AUDIO_FIELD_NAME: str = "audio" __COMPRESSED_AUDIO_FIELD_NAME: str = "compressed_audio" __GRAVITY_FIELD_NAME: str = "gravity" __GYROSCOPE_FIELD_NAME: str = "gyroscope" __IMAGE_FIELD_NAME: str = "image" __LIGHT_FIELD_NAME: str = "light" __LINEAR_ACCELERATION_FIELD_NAME: str = "linear_acceleration" __LOCATION_FIELD_NAME: str = "location" __MAGNETOMETER_FIELD_NAME: str = "magnetometer" __ORIENTATION_FIELD_NAME: str = "orientation" __PRESSURE_FIELD_NAME: str = "pressure" __PROXIMITY_FIELD_NAME: str = "proximity" __RELATIVE_HUMIDITY_FIELD_NAME: str = "relative_humidity" __ROTATION_VECTOR: str = "rotation_vector" __VELOCITY: str = "velocity" def __init__(self, sensors_proto: redvox_api_m_pb2.RedvoxPacketM.Sensors): super().__init__(sensors_proto) self._accelerometer: xyz.Xyz = xyz.Xyz(sensors_proto.accelerometer) self._ambient_temperature: single.Single = single.Single( sensors_proto.ambient_temperature ) self._audio: audio.Audio = audio.Audio(sensors_proto.audio) self._compressed_audio: audio.CompressedAudio = audio.CompressedAudio( sensors_proto.compressed_audio ) self._gravity: xyz.Xyz = xyz.Xyz(sensors_proto.gravity) self._gyroscope: xyz.Xyz = xyz.Xyz(sensors_proto.gyroscope) self._image: image.Image = image.Image(sensors_proto.image) self._light: single.Single = single.Single(sensors_proto.light) self._linear_acceleration: xyz.Xyz = xyz.Xyz(sensors_proto.linear_acceleration) self._location: location.Location = location.Location(sensors_proto.location) self._magnetometer: xyz.Xyz = xyz.Xyz(sensors_proto.magnetometer) self._orientation: xyz.Xyz = xyz.Xyz(sensors_proto.orientation) self._pressure: single.Single = single.Single(sensors_proto.pressure) self._proximity: single.Single = single.Single(sensors_proto.proximity) self._relative_humidity: single.Single = single.Single( sensors_proto.relative_humidity ) self._rotation_vector: xyz.Xyz = xyz.Xyz(sensors_proto.rotation_vector) self._velocity: xyz.Xyz = xyz.Xyz(sensors_proto.velocity) @staticmethod def new() -> "Sensors": """ :return: A new, empty Sensors instance """ return Sensors(redvox_api_m_pb2.RedvoxPacketM.Sensors()) def has_accelerometer(self) -> bool: """ :return: If this packet contains this channel """ # noinspection PyTypeChecker return self.get_proto().HasField(Sensors.__ACCELEROMETER_FIELD_NAME) def get_accelerometer(self) -> Optional[xyz.Xyz]: """ :return: The this sensor if it exists otherwise None """ return self._accelerometer if self.has_accelerometer() else None def new_accelerometer(self) -> xyz.Xyz: """ :return: A new empty sensor """ self.remove_accelerometer() self.get_proto().accelerometer.SetInParent() self._accelerometer = xyz.Xyz(self.get_proto().accelerometer) self._accelerometer.get_timestamps().set_default_unit() # noinspection PyTypeChecker self._accelerometer.set_unit_xyz(common.Unit.METERS_PER_SECOND_SQUARED) return self._accelerometer def set_accelerometer(self, accelerometer: xyz.Xyz) -> "Sensors": """ Sets the channel :param accelerometer: Channel to set :return: A modified instance of self """ redvox.api1000.common.typing.check_type(accelerometer, [xyz.Xyz]) self.get_proto().accelerometer.CopyFrom(accelerometer.get_proto()) self._accelerometer = xyz.Xyz(self.get_proto().accelerometer) return self def remove_accelerometer(self) -> "Sensors": """ Removes this channel :return: A modified instance of self """ # noinspection PyTypeChecker self.get_proto().ClearField(Sensors.__ACCELEROMETER_FIELD_NAME) return self def validate_accelerometer(self) -> bool: """ Checks if there are no errors with the accelerometer and it contains at least 1 data entry :return: True if no errors """ # noinspection PyTypeChecker return ( len( xyz.validate_xyz( self._accelerometer, common.Unit.METERS_PER_SECOND_SQUARED ) ) < 1 and self._accelerometer.get_x_samples().get_values_count() > 0 ) def has_ambient_temperature(self) -> bool: """ :return: If this packet contains this channel """ # noinspection PyTypeChecker return self.get_proto().HasField(Sensors.__AMBIENT_TEMPERATURE_FIELD_NAME) def get_ambient_temperature(self) -> Optional[single.Single]: """ :return: The this sensor if it exists otherwise None """ return self._ambient_temperature if self.has_ambient_temperature() else None def new_ambient_temperature(self) -> single.Single: """ :return: A new empty sensor """ self.remove_ambient_temperature() self.get_proto().ambient_temperature.SetInParent() self._ambient_temperature = single.Single(self.get_proto().ambient_temperature) self._ambient_temperature.get_timestamps().set_default_unit() # noinspection PyTypeChecker self._ambient_temperature.get_samples().set_unit(common.Unit.DEGREES_CELSIUS) return self._ambient_temperature def set_ambient_temperature(self, ambient_temperature: single.Single) -> "Sensors": """ Sets the channel :param ambient_temperature: Channel to set :return: A modified instance of self """ redvox.api1000.common.typing.check_type(ambient_temperature, [single.Single]) self.get_proto().ambient_temperature.CopyFrom(ambient_temperature.get_proto()) self._ambient_temperature = single.Single(self.get_proto().ambient_temperature) return self def remove_ambient_temperature(self) -> "Sensors": """ Removes this channel :return: A modified instance of self """ # noinspection PyTypeChecker self.get_proto().ClearField(Sensors.__AMBIENT_TEMPERATURE_FIELD_NAME) return self def validate_ambient_temperature(self) -> bool: """ Checks if there are no errors with the ambient temperature sensor and it contains at least 1 data entry :return: True if no errors """ # noinspection PyTypeChecker return ( len( single.validate_single( self._ambient_temperature, common.Unit.DEGREES_CELSIUS ) ) < 1 and self._ambient_temperature.get_samples().get_values_count() > 0 ) def has_audio(self) -> bool: """ :return: If this packet contains this channel """ # noinspection PyTypeChecker return self.get_proto().HasField(Sensors.__AUDIO_FIELD_NAME) def get_audio(self) -> Optional[audio.Audio]: """ :return: The this sensor if it exists otherwise None """ return self._audio if self.has_audio() else None def new_audio(self) -> audio.Audio: """ :return: A new empty sensor """ self.remove_audio() self.get_proto().audio.SetInParent() self._audio = audio.Audio(self.get_proto().audio) # noinspection PyTypeChecker self._audio.get_samples().set_unit(common.Unit.LSB_PLUS_MINUS_COUNTS) return self._audio def set_audio(self, _audio: audio.Audio) -> "Sensors": """ Sets the channel :param _audio: Channel to set :return: A modified instance of self """ redvox.api1000.common.typing.check_type(_audio, [audio.Audio]) self.get_proto().audio.CopyFrom(_audio.get_proto()) self._audio = audio.Audio(self.get_proto().audio) return self def remove_audio(self) -> "Sensors": """ Removes this channel :return: A modified instance of self """ # noinspection PyTypeChecker self.get_proto().ClearField(Sensors.__AUDIO_FIELD_NAME) return self def validate_audio(self) -> bool: """ Checks if there are no errors with the audio sensor and it contains at least 1 data entry :return: True if no errors """ return ( len(audio.validate_audio(self._audio)) < 1 and self._audio.get_samples().get_values_count() > 0 ) def has_compressed_audio(self) -> bool: """ :return: If this packet contains this channel """ # noinspection PyTypeChecker return self.get_proto().HasField(Sensors.__COMPRESSED_AUDIO_FIELD_NAME) def get_compressed_audio(self) -> Optional[audio.CompressedAudio]: """ :return: The this sensor if it exists otherwise None """ return self._compressed_audio if self.has_compressed_audio() else None def new_compressed_audio(self) -> audio.CompressedAudio: """ :return: A new empty sensor """ self.remove_compressed_audio() self.get_proto().compressed_audio.SetInParent() self._compressed_audio = audio.CompressedAudio( self.get_proto().compressed_audio ) return self._compressed_audio def set_compressed_audio( self, compressed_audio: audio.CompressedAudio ) -> "Sensors": """ Sets the channel :param compressed_audio: Channel to set :return: A modified instance of self """ redvox.api1000.common.typing.check_type( compressed_audio, [audio.CompressedAudio] ) # noinspection Mypy self.get_proto().compressed_audio.CopyFrom(compressed_audio.get_proto()) self._compressed_audio = audio.CompressedAudio( self.get_proto().compressed_audio ) return self def remove_compressed_audio(self) -> "Sensors": """ Removes this channel :return: A modified instance of self """ # noinspection PyTypeChecker self.get_proto().ClearField(Sensors.__COMPRESSED_AUDIO_FIELD_NAME) return self def validate_compressed_audio(self) -> bool: """ Checks if there are no errors with the compressed audio sensor and it contains at least 1 data entry :return: True if no errors """ return len(audio.validate_compressed_audio(self._compressed_audio)) < 1 def has_gravity(self) -> bool: """ :return: If this packet contains this channel """ # noinspection PyTypeChecker,Mypy return self.get_proto().HasField(Sensors.__GRAVITY_FIELD_NAME) def get_gravity(self) -> Optional[xyz.Xyz]: """ :return: The this sensor if it exists otherwise None """ return self._gravity if self.has_gravity() else None def new_gravity(self) -> xyz.Xyz: """ :return: A new empty sensor """ self.remove_gravity() self.get_proto().gravity.SetInParent() self._gravity = xyz.Xyz(self.get_proto().gravity) self._gravity.get_timestamps().set_default_unit() # noinspection PyTypeChecker self._gravity.set_unit_xyz(common.Unit.METERS_PER_SECOND_SQUARED) return self._gravity def set_gravity(self, gravity: xyz.Xyz) -> "Sensors": """ Sets the channel :param gravity: Channel to set :return: A modified instance of self """ redvox.api1000.common.typing.check_type(gravity, [xyz.Xyz]) self.get_proto().gravity.CopyFrom(gravity.get_proto()) self._gravity = xyz.Xyz(self.get_proto().gravity) return self def remove_gravity(self) -> "Sensors": """ Removes this channel :return: A modified instance of self """ # noinspection PyTypeChecker self.get_proto().ClearField(Sensors.__GRAVITY_FIELD_NAME) return self def validate_gravity(self) -> bool: """ Checks if there are no errors with the gravity sensor and it contains at least 1 data entry :return: True if no errors """ # noinspection PyTypeChecker return ( len(xyz.validate_xyz(self._gravity, common.Unit.METERS_PER_SECOND_SQUARED)) < 1 and self._gravity.get_x_samples().get_values_count() > 0 ) def has_gyroscope(self) -> bool: """ :return: If this packet contains this channel """ # noinspection PyTypeChecker return self.get_proto().HasField(Sensors.__GYROSCOPE_FIELD_NAME) def get_gyroscope(self) -> Optional[xyz.Xyz]: """ :return: The this sensor if it exists otherwise None """ return self._gyroscope if self.has_gyroscope() else None def new_gyroscope(self) -> xyz.Xyz: """ :return: A new empty sensor """ self.remove_gyroscope() self.get_proto().gyroscope.SetInParent() self._gyroscope = xyz.Xyz(self.get_proto().gyroscope) self._gyroscope.get_timestamps().set_default_unit() # noinspection PyTypeChecker self._gyroscope.set_unit_xyz(common.Unit.RADIANS_PER_SECOND) return self._gyroscope def set_gyroscope(self, gyroscope: xyz.Xyz) -> "Sensors": """ Sets the channel :param gyroscope: Channel to set :return: A modified instance of self """ redvox.api1000.common.typing.check_type(gyroscope, [xyz.Xyz]) self.get_proto().gyroscope.CopyFrom(gyroscope.get_proto()) self._gyroscope = xyz.Xyz(self.get_proto().gyroscope) return self def remove_gyroscope(self) -> "Sensors": """ Removes this sensor :return: A modified instance of self """ # noinspection PyTypeChecker self.get_proto().ClearField(Sensors.__GYROSCOPE_FIELD_NAME) return self def validate_gyroscope(self) -> bool: """ Checks if there are no errors with the gyroscope and it contains at least 1 data entry :return: True if no errors """ # noinspection PyTypeChecker return ( len(xyz.validate_xyz(self._gyroscope, common.Unit.RADIANS_PER_SECOND)) < 1 and self._gyroscope.get_x_samples().get_values_count() > 0 ) def has_image(self) -> bool: """ :return: If this packet contains this channel """ # noinspection PyTypeChecker return self.get_proto().HasField(Sensors.__IMAGE_FIELD_NAME) def get_image(self) -> Optional[image.Image]: """ :return: The this sensor if it exists otherwise None """ return self._image if self.has_image() else None def new_image(self) -> image.Image: """ :return: A new empty sensor """ self.remove_image() self.get_proto().image.SetInParent() self._image = image.Image(self.get_proto().image) # noinspection PyTypeChecker self._image.set_image_codec(image.ImageCodec.PNG) return self._image def set_image(self, _image: image.Image) -> "Sensors": """ Sets the channel :param _image: Channel to set :return: A modified instance of self """ redvox.api1000.common.typing.check_type(_image, [image.Image]) self.get_proto().image.CopyFrom(_image.get_proto()) self._image = image.Image(self.get_proto().image) return self def remove_image(self) -> "Sensors": """ Removes this sensor :return: A modified instance of self """ # noinspection PyTypeChecker self.get_proto().ClearField(Sensors.__IMAGE_FIELD_NAME) return self def validate_image(self) -> bool: """ Checks if there are no errors with the image sensor and it contains at least 1 data entry :return: True if no errors """ return ( len(image.validate_image(self._image)) < 1 and self._image.get_num_images() > 0 ) def has_light(self) -> bool: """ :return: If this packet contains this channel """ # noinspection PyTypeChecker return self.get_proto().HasField(Sensors.__LIGHT_FIELD_NAME) def get_light(self) -> Optional[single.Single]: """ :return: The this sensor if it exists otherwise None """ return self._light if self.has_light() else None def new_light(self) -> single.Single: """ :return: A new empty sensor """ self.remove_light() self.get_proto().light.SetInParent() self._light = single.Single(self.get_proto().light) self._light.get_timestamps().set_default_unit() # noinspection PyTypeChecker self._light.get_samples().set_unit(common.Unit.LUX) return self._light def set_light(self, light: single.Single) -> "Sensors": """ Sets the channel :param light: Channel to set :return: A modified instance of self """ redvox.api1000.common.typing.check_type(light, [single.Single]) self.get_proto().light.CopyFrom(light.get_proto()) self._light = single.Single(self.get_proto().light) return self def remove_light(self) -> "Sensors": """ Removes this sensor :return: A modified instance of self """ # noinspection PyTypeChecker self.get_proto().ClearField(Sensors.__LIGHT_FIELD_NAME) return self def validate_light(self) -> bool: """ Checks if there are no errors with the light sensor and it contains at least 1 data entry :return: True if no errors """ # noinspection PyTypeChecker return ( len(single.validate_single(self._light, common.Unit.LUX)) < 1 and self._light.get_samples().get_values_count() > 0 ) def has_linear_acceleration(self) -> bool: """ :return: If this packet contains this channel """ # noinspection PyTypeChecker return self.get_proto().HasField(Sensors.__LINEAR_ACCELERATION_FIELD_NAME) def get_linear_acceleration(self) -> Optional[xyz.Xyz]: """ :return: The this sensor if it exists otherwise None """ return self._linear_acceleration if self.has_linear_acceleration() else None def new_linear_acceleration(self) -> xyz.Xyz: """ :return: A new empty sensor """ self.remove_linear_acceleration() self.get_proto().linear_acceleration.SetInParent() self._linear_acceleration = xyz.Xyz(self.get_proto().linear_acceleration) self._linear_acceleration.get_timestamps().set_default_unit() # noinspection PyTypeChecker self._linear_acceleration.set_unit_xyz(common.Unit.METERS_PER_SECOND_SQUARED) return self._linear_acceleration def set_linear_acceleration(self, linear_acceleration: xyz.Xyz) -> "Sensors": """ Sets the channel :param linear_acceleration: Channel to set :return: A modified instance of self """ redvox.api1000.common.typing.check_type(linear_acceleration, [xyz.Xyz]) self.get_proto().linear_acceleration.CopyFrom(linear_acceleration.get_proto()) self._linear_acceleration = xyz.Xyz(self.get_proto().linear_acceleration) return self def remove_linear_acceleration(self) -> "Sensors": """ Removes this sensor :return: A modified instance of self """ # noinspection PyTypeChecker self.get_proto().ClearField(Sensors.__LINEAR_ACCELERATION_FIELD_NAME) return self def validate_linear_acceleration(self) -> bool: """ Checks if there are no errors with the linear acceleration sensor and it contains at least 1 data entry :return: True if no errors """ # noinspection PyTypeChecker return ( len( xyz.validate_xyz( self._linear_acceleration, common.Unit.METERS_PER_SECOND_SQUARED ) ) < 1 and self._linear_acceleration.get_x_samples().get_values_count() > 0 ) def has_location(self) -> bool: """ :return: If this packet contains this channel """ # noinspection PyTypeChecker return self.get_proto().HasField(Sensors.__LOCATION_FIELD_NAME) def get_location(self) -> Optional[location.Location]: """ :return: The this sensor if it exists otherwise None """ return self._location if self.has_location() else None def new_location(self) -> location.Location: """ :return: A new empty sensor """ self.remove_location() self.get_proto().location.SetInParent() self._location = location.Location(self.get_proto().location) self._location.get_timestamps().set_default_unit() # noinspection PyTypeChecker self._location.get_latitude_samples().set_unit(common.Unit.DECIMAL_DEGREES) # noinspection PyTypeChecker self._location.get_longitude_samples().set_unit(common.Unit.DECIMAL_DEGREES) # noinspection PyTypeChecker self._location.get_altitude_samples().set_unit(common.Unit.METERS) # noinspection PyTypeChecker self._location.get_speed_samples().set_unit(common.Unit.METERS_PER_SECOND) # noinspection PyTypeChecker self._location.get_bearing_samples().set_unit(common.Unit.DECIMAL_DEGREES) # noinspection PyTypeChecker self._location.get_horizontal_accuracy_samples().set_unit(common.Unit.METERS) # noinspection PyTypeChecker self._location.get_vertical_accuracy_samples().set_unit(common.Unit.METERS) # noinspection PyTypeChecker self._location.get_speed_accuracy_samples().set_unit( common.Unit.METERS_PER_SECOND ) # noinspection PyTypeChecker self._location.get_bearing_accuracy_samples().set_unit( common.Unit.DECIMAL_DEGREES ) return self._location def set_location(self, _location: location.Location) -> "Sensors": """ Sets the channel :param _location: Channel to set :return: A modified instance of self """ redvox.api1000.common.typing.check_type(_location, [location.Location]) self.get_proto().location.CopyFrom(_location.get_proto()) self._location = location.Location(self.get_proto().location) return self def remove_location(self) -> "Sensors": """ Removes this sensor :return: A modified instance of self """ # noinspection PyTypeChecker self.get_proto().ClearField(Sensors.__LOCATION_FIELD_NAME) return self def validate_location(self) -> bool: """ Checks if there are no errors with the location :return: True if no errors """ return len(location.validate_location(self._location)) < 1 def has_magnetometer(self) -> bool: """ :return: If this packet contains this channel """ # noinspection PyTypeChecker return self.get_proto().HasField(Sensors.__MAGNETOMETER_FIELD_NAME) def get_magnetometer(self) -> Optional[xyz.Xyz]: """ :return: The this sensor if it exists otherwise None """ return self._magnetometer if self.has_magnetometer() else None def new_magnetometer(self) -> xyz.Xyz: """ :return: A new empty sensor """ self.remove_magnetometer() self.get_proto().magnetometer.SetInParent() self._magnetometer = xyz.Xyz(self.get_proto().magnetometer) self._magnetometer.get_timestamps().set_default_unit() # noinspection PyTypeChecker self._magnetometer.set_unit_xyz(common.Unit.MICROTESLA) return self._magnetometer def set_magnetometer(self, magnetometer: xyz.Xyz) -> "Sensors": """ Sets the channel :param magnetometer: Channel to set :return: A modified instance of self """ redvox.api1000.common.typing.check_type(magnetometer, [xyz.Xyz]) self.get_proto().magnetometer.CopyFrom(magnetometer.get_proto()) self._magnetometer = xyz.Xyz(self.get_proto().magnetometer) return self def remove_magnetometer(self) -> "Sensors": """ Removes this sensor :return: A modified instance of self """ # noinspection PyTypeChecker self.get_proto().ClearField(Sensors.__MAGNETOMETER_FIELD_NAME) return self def validate_magnetometer(self) -> bool: """ Checks if there are no errors with the magnetometer and it contains at least 1 data entry :return: True if no errors """ # noinspection PyTypeChecker return ( len(xyz.validate_xyz(self._magnetometer, common.Unit.MICROTESLA)) < 1 and self._magnetometer.get_x_samples().get_values_count() > 0 ) def has_orientation(self) -> bool: """ :return: If this packet contains this channel """ # noinspection PyTypeChecker return self.get_proto().HasField(Sensors.__ORIENTATION_FIELD_NAME) def get_orientation(self) -> Optional[xyz.Xyz]: """ :return: The this sensor if it exists otherwise None """ return self._orientation if self.has_orientation() else None def new_orientation(self) -> xyz.Xyz: """ :return: A new empty sensor """ self.remove_orientation() self.get_proto().orientation.SetInParent() self._orientation = xyz.Xyz(self.get_proto().orientation) self._orientation.get_timestamps().set_default_unit() # noinspection PyTypeChecker self._orientation.set_unit_xyz(common.Unit.RADIANS) return self._orientation def set_orientation(self, orientation: xyz.Xyz) -> "Sensors": """ Sets the channel :param orientation: Channel to set :return: A modified instance of self """ redvox.api1000.common.typing.check_type(orientation, [xyz.Xyz]) self.get_proto().orientation.CopyFrom(orientation.get_proto()) self._orientation = xyz.Xyz(self.get_proto().orientation) return self def remove_orientation(self) -> "Sensors": """ Removes this sensor :return: A modified instance of self """ # noinspection PyTypeChecker self.get_proto().ClearField(Sensors.__ORIENTATION_FIELD_NAME) return self def validate_orientation(self) -> bool: """ Checks if there are no errors with the orientation sensor and it contains at least 1 data entry :return: True if no errors """ # noinspection PyTypeChecker return ( len(xyz.validate_xyz(self._orientation, common.Unit.RADIANS)) < 1 and self._orientation.get_x_samples().get_values_count() > 0 ) def has_pressure(self) -> bool: """ :return: If this packet contains this channel """ # noinspection PyTypeChecker return self.get_proto().HasField(Sensors.__PRESSURE_FIELD_NAME) def get_pressure(self) -> Optional[single.Single]: """ :return: The this sensor if it exists otherwise None """ return self._pressure if self.has_pressure() else None def new_pressure(self) -> single.Single: """ :return: A new empty sensor """ self.remove_pressure() self.get_proto().pressure.SetInParent() self._pressure = single.Single(self.get_proto().pressure) self._pressure.get_timestamps().set_default_unit() # noinspection PyTypeChecker self._pressure.get_samples().set_unit(common.Unit.KILOPASCAL) return self._pressure def set_pressure(self, pressure: single.Single) -> "Sensors": """ Sets the channel :param pressure: Channel to set :return: A modified instance of self """ redvox.api1000.common.typing.check_type(pressure, [single.Single]) self.get_proto().pressure.CopyFrom(pressure.get_proto()) self._pressure = single.Single(self.get_proto().pressure) return self def remove_pressure(self) -> "Sensors": """ Removes this sensor :return: A modified instance of self """ # noinspection PyTypeChecker self.get_proto().ClearField(Sensors.__PRESSURE_FIELD_NAME) return self def validate_pressure(self) -> bool: """ Checks if there are no errors with the pressure sensor and it contains at least 1 data entry :return: True if no errors """ # noinspection PyTypeChecker return ( len(single.validate_single(self._pressure, common.Unit.KILOPASCAL)) < 1 and self._pressure.get_samples().get_values_count() > 0 ) def has_proximity(self) -> bool: """ :return: If this packet contains this channel """ # noinspection PyTypeChecker return self.get_proto().HasField(Sensors.__PROXIMITY_FIELD_NAME) def get_proximity(self) -> Optional[single.Single]: """ :return: The this sensor if it exists otherwise None """ return self._proximity if self.has_proximity() else None def new_proximity(self) -> single.Single: """ :return: A new empty sensor """ self.remove_proximity() self.get_proto().proximity.SetInParent() self._proximity = single.Single(self.get_proto().proximity) self._proximity.get_timestamps().set_default_unit() # noinspection PyTypeChecker self._proximity.get_samples().set_unit(common.Unit.CENTIMETERS) return self._proximity def set_proximity(self, proximity: single.Single) -> "Sensors": """ Sets the channel :param proximity: Channel to set :return: A modified instance of self """ redvox.api1000.common.typing.check_type(proximity, [single.Single]) self.get_proto().proximity.CopyFrom(proximity.get_proto()) self._proximity = single.Single(self.get_proto().proximity) return self def remove_proximity(self) -> "Sensors": """ Removes this sensor :return: A modified instance of self """ # noinspection PyTypeChecker self.get_proto().ClearField(Sensors.__PROXIMITY_FIELD_NAME) return self def validate_proximity(self) -> bool: """ Checks if there are no errors with the proximity sensor and it contains at least 1 data entry :return: True if no errors """ # noinspection PyTypeChecker return ( len(single.validate_single(self._proximity, common.Unit.CENTIMETERS)) < 1 and self._proximity.get_samples().get_values_count() > 0 ) def has_relative_humidity(self) -> bool: """ :return: If this packet contains this channel """ # noinspection PyTypeChecker return self.get_proto().HasField(Sensors.__RELATIVE_HUMIDITY_FIELD_NAME) def get_relative_humidity(self) -> Optional[single.Single]: """ :return: The this sensor if it exists otherwise None """ return self._relative_humidity if self.has_relative_humidity() else None def new_relative_humidity(self) -> single.Single: """ :return: A new empty sensor """ self.remove_relative_humidity() self.get_proto().relative_humidity.SetInParent() self._relative_humidity = single.Single(self.get_proto().relative_humidity) self._relative_humidity.get_timestamps().set_default_unit() # noinspection PyTypeChecker self._relative_humidity.get_samples().set_unit(common.Unit.PERCENTAGE) return self._relative_humidity def set_relative_humidity(self, relative_humidity: single.Single) -> "Sensors": """ Sets the channel :param relative_humidity: Channel to set :return: A modified instance of self """ redvox.api1000.common.typing.check_type(relative_humidity, [single.Single]) self.get_proto().relative_humidity.CopyFrom(relative_humidity.get_proto()) self._relative_humidity = single.Single(self.get_proto().relative_humidity) return self def remove_relative_humidity(self) -> "Sensors": """ Removes this sensor :return: A modified instance of self """ # noinspection PyTypeChecker self.get_proto().ClearField(Sensors.__RELATIVE_HUMIDITY_FIELD_NAME) return self def validate_relative_humidity(self) -> bool: """ Checks if there are no errors with the relative_humidity sensor and it contains at least 1 data entry :return: True if no errors """ # noinspection PyTypeChecker return ( len(single.validate_single(self._relative_humidity, common.Unit.PERCENTAGE)) < 1 and self._relative_humidity.get_samples().get_values_count() > 0 ) def has_rotation_vector(self) -> bool: """ :return: If this packet contains this channel """ # noinspection PyTypeChecker return self.get_proto().HasField(Sensors.__ROTATION_VECTOR) def get_rotation_vector(self) -> Optional[xyz.Xyz]: """ :return: The this sensor if it exists otherwise None """ return self._rotation_vector if self.has_rotation_vector() else None def new_rotation_vector(self) -> xyz.Xyz: """ :return: A new empty sensor """ self.remove_rotation_vector() self.get_proto().rotation_vector.SetInParent() self._rotation_vector = xyz.Xyz(self.get_proto().rotation_vector) self._rotation_vector.get_timestamps().set_default_unit() # noinspection PyTypeChecker self._rotation_vector.set_unit_xyz(common.Unit.UNITLESS) return self._rotation_vector def set_rotation_vector(self, rotation_vector: xyz.Xyz) -> "Sensors": """ Sets the channel :param rotation_vector: Channel to set :return: A modified instance of self """ redvox.api1000.common.typing.check_type(rotation_vector, [xyz.Xyz]) self.get_proto().rotation_vector.CopyFrom(rotation_vector.get_proto()) self._rotation_vector = xyz.Xyz(self.get_proto().rotation_vector) return self def remove_rotation_vector(self) -> "Sensors": """ Removes this sensor :return: A modified instance of self """ # noinspection PyTypeChecker self.get_proto().ClearField(Sensors.__ROTATION_VECTOR) return self def validate_rotation_vector(self) -> bool: """ Checks if there are no errors with the rotation vector sensor and it contains at least 1 data entry :return: True if no errors """ # noinspection PyTypeChecker return ( len(xyz.validate_xyz(self._rotation_vector, common.Unit.UNITLESS)) < 1 and self._rotation_vector.get_x_samples().get_values_count() > 0 ) def has_velocity(self) -> bool: """ :return: If this packet contains this channel """ # noinspection PyTypeChecker return self.get_proto().HasField(Sensors.__VELOCITY) def get_velocity(self) -> Optional[xyz.Xyz]: """ :return: The this sensor if it exists otherwise None """ return self._velocity if self.has_velocity() else None def new_velocity(self) -> xyz.Xyz: """ :return: A new empty sensor """ self.remove_velocity() self.get_proto().velocity.SetInParent() self._velocity = xyz.Xyz(self.get_proto().velocity) self._velocity.get_timestamps().set_default_unit() # noinspection PyTypeChecker self._velocity.set_unit_xyz(common.Unit.METERS_PER_SECOND) return self._velocity def set_velocity(self, velocity: xyz.Xyz) -> "Sensors": """ Sets the channel :param velocity: Channel to set :return: A modified instance of self """ redvox.api1000.common.typing.check_type(velocity, [xyz.Xyz]) self.get_proto().velocity.CopyFrom(velocity.get_proto()) self._velocity = xyz.Xyz(self.get_proto().velocity) return self def remove_velocity(self) -> "Sensors": """ Removes this sensor :return: A modified instance of self """ # noinspection PyTypeChecker self.get_proto().ClearField(Sensors.__VELOCITY) return self def validate_velocity(self) -> bool: """ Checks if there are no errors with the sensor and it contains at least 1 data entry :return: True if no errors """ # noinspection PyTypeChecker return ( len(xyz.validate_xyz(self._velocity, common.Unit.METERS_PER_SECOND)) < 1 and self._velocity.get_x_samples().get_values_count() > 0 )
Ancestors
- ProtoBase
- typing.Generic
Static methods
def new() ‑> Sensors
-
:return: A new, empty Sensors instance
Expand source code
@staticmethod def new() -> "Sensors": """ :return: A new, empty Sensors instance """ return Sensors(redvox_api_m_pb2.RedvoxPacketM.Sensors())
Methods
def get_accelerometer(self) ‑> Optional[Xyz]
-
:return: The this sensor if it exists otherwise None
Expand source code
def get_accelerometer(self) -> Optional[xyz.Xyz]: """ :return: The this sensor if it exists otherwise None """ return self._accelerometer if self.has_accelerometer() else None
def get_ambient_temperature(self) ‑> Optional[Single]
-
:return: The this sensor if it exists otherwise None
Expand source code
def get_ambient_temperature(self) -> Optional[single.Single]: """ :return: The this sensor if it exists otherwise None """ return self._ambient_temperature if self.has_ambient_temperature() else None
def get_audio(self) ‑> Optional[Audio]
-
:return: The this sensor if it exists otherwise None
Expand source code
def get_audio(self) -> Optional[audio.Audio]: """ :return: The this sensor if it exists otherwise None """ return self._audio if self.has_audio() else None
def get_compressed_audio(self) ‑> Optional[CompressedAudio]
-
:return: The this sensor if it exists otherwise None
Expand source code
def get_compressed_audio(self) -> Optional[audio.CompressedAudio]: """ :return: The this sensor if it exists otherwise None """ return self._compressed_audio if self.has_compressed_audio() else None
def get_gravity(self) ‑> Optional[Xyz]
-
:return: The this sensor if it exists otherwise None
Expand source code
def get_gravity(self) -> Optional[xyz.Xyz]: """ :return: The this sensor if it exists otherwise None """ return self._gravity if self.has_gravity() else None
def get_gyroscope(self) ‑> Optional[Xyz]
-
:return: The this sensor if it exists otherwise None
Expand source code
def get_gyroscope(self) -> Optional[xyz.Xyz]: """ :return: The this sensor if it exists otherwise None """ return self._gyroscope if self.has_gyroscope() else None
def get_image(self) ‑> Optional[Image]
-
:return: The this sensor if it exists otherwise None
Expand source code
def get_image(self) -> Optional[image.Image]: """ :return: The this sensor if it exists otherwise None """ return self._image if self.has_image() else None
def get_light(self) ‑> Optional[Single]
-
:return: The this sensor if it exists otherwise None
Expand source code
def get_light(self) -> Optional[single.Single]: """ :return: The this sensor if it exists otherwise None """ return self._light if self.has_light() else None
def get_linear_acceleration(self) ‑> Optional[Xyz]
-
:return: The this sensor if it exists otherwise None
Expand source code
def get_linear_acceleration(self) -> Optional[xyz.Xyz]: """ :return: The this sensor if it exists otherwise None """ return self._linear_acceleration if self.has_linear_acceleration() else None
def get_location(self) ‑> Optional[Location]
-
:return: The this sensor if it exists otherwise None
Expand source code
def get_location(self) -> Optional[location.Location]: """ :return: The this sensor if it exists otherwise None """ return self._location if self.has_location() else None
def get_magnetometer(self) ‑> Optional[Xyz]
-
:return: The this sensor if it exists otherwise None
Expand source code
def get_magnetometer(self) -> Optional[xyz.Xyz]: """ :return: The this sensor if it exists otherwise None """ return self._magnetometer if self.has_magnetometer() else None
def get_orientation(self) ‑> Optional[Xyz]
-
:return: The this sensor if it exists otherwise None
Expand source code
def get_orientation(self) -> Optional[xyz.Xyz]: """ :return: The this sensor if it exists otherwise None """ return self._orientation if self.has_orientation() else None
def get_pressure(self) ‑> Optional[Single]
-
:return: The this sensor if it exists otherwise None
Expand source code
def get_pressure(self) -> Optional[single.Single]: """ :return: The this sensor if it exists otherwise None """ return self._pressure if self.has_pressure() else None
def get_proximity(self) ‑> Optional[Single]
-
:return: The this sensor if it exists otherwise None
Expand source code
def get_proximity(self) -> Optional[single.Single]: """ :return: The this sensor if it exists otherwise None """ return self._proximity if self.has_proximity() else None
def get_relative_humidity(self) ‑> Optional[Single]
-
:return: The this sensor if it exists otherwise None
Expand source code
def get_relative_humidity(self) -> Optional[single.Single]: """ :return: The this sensor if it exists otherwise None """ return self._relative_humidity if self.has_relative_humidity() else None
def get_rotation_vector(self) ‑> Optional[Xyz]
-
:return: The this sensor if it exists otherwise None
Expand source code
def get_rotation_vector(self) -> Optional[xyz.Xyz]: """ :return: The this sensor if it exists otherwise None """ return self._rotation_vector if self.has_rotation_vector() else None
def get_velocity(self) ‑> Optional[Xyz]
-
:return: The this sensor if it exists otherwise None
Expand source code
def get_velocity(self) -> Optional[xyz.Xyz]: """ :return: The this sensor if it exists otherwise None """ return self._velocity if self.has_velocity() else None
def has_accelerometer(self) ‑> bool
-
:return: If this packet contains this channel
Expand source code
def has_accelerometer(self) -> bool: """ :return: If this packet contains this channel """ # noinspection PyTypeChecker return self.get_proto().HasField(Sensors.__ACCELEROMETER_FIELD_NAME)
def has_ambient_temperature(self) ‑> bool
-
:return: If this packet contains this channel
Expand source code
def has_ambient_temperature(self) -> bool: """ :return: If this packet contains this channel """ # noinspection PyTypeChecker return self.get_proto().HasField(Sensors.__AMBIENT_TEMPERATURE_FIELD_NAME)
def has_audio(self) ‑> bool
-
:return: If this packet contains this channel
Expand source code
def has_audio(self) -> bool: """ :return: If this packet contains this channel """ # noinspection PyTypeChecker return self.get_proto().HasField(Sensors.__AUDIO_FIELD_NAME)
def has_compressed_audio(self) ‑> bool
-
:return: If this packet contains this channel
Expand source code
def has_compressed_audio(self) -> bool: """ :return: If this packet contains this channel """ # noinspection PyTypeChecker return self.get_proto().HasField(Sensors.__COMPRESSED_AUDIO_FIELD_NAME)
def has_gravity(self) ‑> bool
-
:return: If this packet contains this channel
Expand source code
def has_gravity(self) -> bool: """ :return: If this packet contains this channel """ # noinspection PyTypeChecker,Mypy return self.get_proto().HasField(Sensors.__GRAVITY_FIELD_NAME)
def has_gyroscope(self) ‑> bool
-
:return: If this packet contains this channel
Expand source code
def has_gyroscope(self) -> bool: """ :return: If this packet contains this channel """ # noinspection PyTypeChecker return self.get_proto().HasField(Sensors.__GYROSCOPE_FIELD_NAME)
def has_image(self) ‑> bool
-
:return: If this packet contains this channel
Expand source code
def has_image(self) -> bool: """ :return: If this packet contains this channel """ # noinspection PyTypeChecker return self.get_proto().HasField(Sensors.__IMAGE_FIELD_NAME)
def has_light(self) ‑> bool
-
:return: If this packet contains this channel
Expand source code
def has_light(self) -> bool: """ :return: If this packet contains this channel """ # noinspection PyTypeChecker return self.get_proto().HasField(Sensors.__LIGHT_FIELD_NAME)
def has_linear_acceleration(self) ‑> bool
-
:return: If this packet contains this channel
Expand source code
def has_linear_acceleration(self) -> bool: """ :return: If this packet contains this channel """ # noinspection PyTypeChecker return self.get_proto().HasField(Sensors.__LINEAR_ACCELERATION_FIELD_NAME)
def has_location(self) ‑> bool
-
:return: If this packet contains this channel
Expand source code
def has_location(self) -> bool: """ :return: If this packet contains this channel """ # noinspection PyTypeChecker return self.get_proto().HasField(Sensors.__LOCATION_FIELD_NAME)
def has_magnetometer(self) ‑> bool
-
:return: If this packet contains this channel
Expand source code
def has_magnetometer(self) -> bool: """ :return: If this packet contains this channel """ # noinspection PyTypeChecker return self.get_proto().HasField(Sensors.__MAGNETOMETER_FIELD_NAME)
def has_orientation(self) ‑> bool
-
:return: If this packet contains this channel
Expand source code
def has_orientation(self) -> bool: """ :return: If this packet contains this channel """ # noinspection PyTypeChecker return self.get_proto().HasField(Sensors.__ORIENTATION_FIELD_NAME)
def has_pressure(self) ‑> bool
-
:return: If this packet contains this channel
Expand source code
def has_pressure(self) -> bool: """ :return: If this packet contains this channel """ # noinspection PyTypeChecker return self.get_proto().HasField(Sensors.__PRESSURE_FIELD_NAME)
def has_proximity(self) ‑> bool
-
:return: If this packet contains this channel
Expand source code
def has_proximity(self) -> bool: """ :return: If this packet contains this channel """ # noinspection PyTypeChecker return self.get_proto().HasField(Sensors.__PROXIMITY_FIELD_NAME)
def has_relative_humidity(self) ‑> bool
-
:return: If this packet contains this channel
Expand source code
def has_relative_humidity(self) -> bool: """ :return: If this packet contains this channel """ # noinspection PyTypeChecker return self.get_proto().HasField(Sensors.__RELATIVE_HUMIDITY_FIELD_NAME)
def has_rotation_vector(self) ‑> bool
-
:return: If this packet contains this channel
Expand source code
def has_rotation_vector(self) -> bool: """ :return: If this packet contains this channel """ # noinspection PyTypeChecker return self.get_proto().HasField(Sensors.__ROTATION_VECTOR)
def has_velocity(self) ‑> bool
-
:return: If this packet contains this channel
Expand source code
def has_velocity(self) -> bool: """ :return: If this packet contains this channel """ # noinspection PyTypeChecker return self.get_proto().HasField(Sensors.__VELOCITY)
def new_accelerometer(self) ‑> Xyz
-
:return: A new empty sensor
Expand source code
def new_accelerometer(self) -> xyz.Xyz: """ :return: A new empty sensor """ self.remove_accelerometer() self.get_proto().accelerometer.SetInParent() self._accelerometer = xyz.Xyz(self.get_proto().accelerometer) self._accelerometer.get_timestamps().set_default_unit() # noinspection PyTypeChecker self._accelerometer.set_unit_xyz(common.Unit.METERS_PER_SECOND_SQUARED) return self._accelerometer
def new_ambient_temperature(self) ‑> Single
-
:return: A new empty sensor
Expand source code
def new_ambient_temperature(self) -> single.Single: """ :return: A new empty sensor """ self.remove_ambient_temperature() self.get_proto().ambient_temperature.SetInParent() self._ambient_temperature = single.Single(self.get_proto().ambient_temperature) self._ambient_temperature.get_timestamps().set_default_unit() # noinspection PyTypeChecker self._ambient_temperature.get_samples().set_unit(common.Unit.DEGREES_CELSIUS) return self._ambient_temperature
def new_audio(self) ‑> Audio
-
:return: A new empty sensor
Expand source code
def new_audio(self) -> audio.Audio: """ :return: A new empty sensor """ self.remove_audio() self.get_proto().audio.SetInParent() self._audio = audio.Audio(self.get_proto().audio) # noinspection PyTypeChecker self._audio.get_samples().set_unit(common.Unit.LSB_PLUS_MINUS_COUNTS) return self._audio
def new_compressed_audio(self) ‑> CompressedAudio
-
:return: A new empty sensor
Expand source code
def new_compressed_audio(self) -> audio.CompressedAudio: """ :return: A new empty sensor """ self.remove_compressed_audio() self.get_proto().compressed_audio.SetInParent() self._compressed_audio = audio.CompressedAudio( self.get_proto().compressed_audio ) return self._compressed_audio
def new_gravity(self) ‑> Xyz
-
:return: A new empty sensor
Expand source code
def new_gravity(self) -> xyz.Xyz: """ :return: A new empty sensor """ self.remove_gravity() self.get_proto().gravity.SetInParent() self._gravity = xyz.Xyz(self.get_proto().gravity) self._gravity.get_timestamps().set_default_unit() # noinspection PyTypeChecker self._gravity.set_unit_xyz(common.Unit.METERS_PER_SECOND_SQUARED) return self._gravity
def new_gyroscope(self) ‑> Xyz
-
:return: A new empty sensor
Expand source code
def new_gyroscope(self) -> xyz.Xyz: """ :return: A new empty sensor """ self.remove_gyroscope() self.get_proto().gyroscope.SetInParent() self._gyroscope = xyz.Xyz(self.get_proto().gyroscope) self._gyroscope.get_timestamps().set_default_unit() # noinspection PyTypeChecker self._gyroscope.set_unit_xyz(common.Unit.RADIANS_PER_SECOND) return self._gyroscope
def new_image(self) ‑> Image
-
:return: A new empty sensor
Expand source code
def new_image(self) -> image.Image: """ :return: A new empty sensor """ self.remove_image() self.get_proto().image.SetInParent() self._image = image.Image(self.get_proto().image) # noinspection PyTypeChecker self._image.set_image_codec(image.ImageCodec.PNG) return self._image
def new_light(self) ‑> Single
-
:return: A new empty sensor
Expand source code
def new_light(self) -> single.Single: """ :return: A new empty sensor """ self.remove_light() self.get_proto().light.SetInParent() self._light = single.Single(self.get_proto().light) self._light.get_timestamps().set_default_unit() # noinspection PyTypeChecker self._light.get_samples().set_unit(common.Unit.LUX) return self._light
def new_linear_acceleration(self) ‑> Xyz
-
:return: A new empty sensor
Expand source code
def new_linear_acceleration(self) -> xyz.Xyz: """ :return: A new empty sensor """ self.remove_linear_acceleration() self.get_proto().linear_acceleration.SetInParent() self._linear_acceleration = xyz.Xyz(self.get_proto().linear_acceleration) self._linear_acceleration.get_timestamps().set_default_unit() # noinspection PyTypeChecker self._linear_acceleration.set_unit_xyz(common.Unit.METERS_PER_SECOND_SQUARED) return self._linear_acceleration
def new_location(self) ‑> Location
-
:return: A new empty sensor
Expand source code
def new_location(self) -> location.Location: """ :return: A new empty sensor """ self.remove_location() self.get_proto().location.SetInParent() self._location = location.Location(self.get_proto().location) self._location.get_timestamps().set_default_unit() # noinspection PyTypeChecker self._location.get_latitude_samples().set_unit(common.Unit.DECIMAL_DEGREES) # noinspection PyTypeChecker self._location.get_longitude_samples().set_unit(common.Unit.DECIMAL_DEGREES) # noinspection PyTypeChecker self._location.get_altitude_samples().set_unit(common.Unit.METERS) # noinspection PyTypeChecker self._location.get_speed_samples().set_unit(common.Unit.METERS_PER_SECOND) # noinspection PyTypeChecker self._location.get_bearing_samples().set_unit(common.Unit.DECIMAL_DEGREES) # noinspection PyTypeChecker self._location.get_horizontal_accuracy_samples().set_unit(common.Unit.METERS) # noinspection PyTypeChecker self._location.get_vertical_accuracy_samples().set_unit(common.Unit.METERS) # noinspection PyTypeChecker self._location.get_speed_accuracy_samples().set_unit( common.Unit.METERS_PER_SECOND ) # noinspection PyTypeChecker self._location.get_bearing_accuracy_samples().set_unit( common.Unit.DECIMAL_DEGREES ) return self._location
def new_magnetometer(self) ‑> Xyz
-
:return: A new empty sensor
Expand source code
def new_magnetometer(self) -> xyz.Xyz: """ :return: A new empty sensor """ self.remove_magnetometer() self.get_proto().magnetometer.SetInParent() self._magnetometer = xyz.Xyz(self.get_proto().magnetometer) self._magnetometer.get_timestamps().set_default_unit() # noinspection PyTypeChecker self._magnetometer.set_unit_xyz(common.Unit.MICROTESLA) return self._magnetometer
def new_orientation(self) ‑> Xyz
-
:return: A new empty sensor
Expand source code
def new_orientation(self) -> xyz.Xyz: """ :return: A new empty sensor """ self.remove_orientation() self.get_proto().orientation.SetInParent() self._orientation = xyz.Xyz(self.get_proto().orientation) self._orientation.get_timestamps().set_default_unit() # noinspection PyTypeChecker self._orientation.set_unit_xyz(common.Unit.RADIANS) return self._orientation
def new_pressure(self) ‑> Single
-
:return: A new empty sensor
Expand source code
def new_pressure(self) -> single.Single: """ :return: A new empty sensor """ self.remove_pressure() self.get_proto().pressure.SetInParent() self._pressure = single.Single(self.get_proto().pressure) self._pressure.get_timestamps().set_default_unit() # noinspection PyTypeChecker self._pressure.get_samples().set_unit(common.Unit.KILOPASCAL) return self._pressure
def new_proximity(self) ‑> Single
-
:return: A new empty sensor
Expand source code
def new_proximity(self) -> single.Single: """ :return: A new empty sensor """ self.remove_proximity() self.get_proto().proximity.SetInParent() self._proximity = single.Single(self.get_proto().proximity) self._proximity.get_timestamps().set_default_unit() # noinspection PyTypeChecker self._proximity.get_samples().set_unit(common.Unit.CENTIMETERS) return self._proximity
def new_relative_humidity(self) ‑> Single
-
:return: A new empty sensor
Expand source code
def new_relative_humidity(self) -> single.Single: """ :return: A new empty sensor """ self.remove_relative_humidity() self.get_proto().relative_humidity.SetInParent() self._relative_humidity = single.Single(self.get_proto().relative_humidity) self._relative_humidity.get_timestamps().set_default_unit() # noinspection PyTypeChecker self._relative_humidity.get_samples().set_unit(common.Unit.PERCENTAGE) return self._relative_humidity
def new_rotation_vector(self) ‑> Xyz
-
:return: A new empty sensor
Expand source code
def new_rotation_vector(self) -> xyz.Xyz: """ :return: A new empty sensor """ self.remove_rotation_vector() self.get_proto().rotation_vector.SetInParent() self._rotation_vector = xyz.Xyz(self.get_proto().rotation_vector) self._rotation_vector.get_timestamps().set_default_unit() # noinspection PyTypeChecker self._rotation_vector.set_unit_xyz(common.Unit.UNITLESS) return self._rotation_vector
def new_velocity(self) ‑> Xyz
-
:return: A new empty sensor
Expand source code
def new_velocity(self) -> xyz.Xyz: """ :return: A new empty sensor """ self.remove_velocity() self.get_proto().velocity.SetInParent() self._velocity = xyz.Xyz(self.get_proto().velocity) self._velocity.get_timestamps().set_default_unit() # noinspection PyTypeChecker self._velocity.set_unit_xyz(common.Unit.METERS_PER_SECOND) return self._velocity
def remove_accelerometer(self) ‑> Sensors
-
Removes this channel :return: A modified instance of self
Expand source code
def remove_accelerometer(self) -> "Sensors": """ Removes this channel :return: A modified instance of self """ # noinspection PyTypeChecker self.get_proto().ClearField(Sensors.__ACCELEROMETER_FIELD_NAME) return self
def remove_ambient_temperature(self) ‑> Sensors
-
Removes this channel :return: A modified instance of self
Expand source code
def remove_ambient_temperature(self) -> "Sensors": """ Removes this channel :return: A modified instance of self """ # noinspection PyTypeChecker self.get_proto().ClearField(Sensors.__AMBIENT_TEMPERATURE_FIELD_NAME) return self
def remove_audio(self) ‑> Sensors
-
Removes this channel :return: A modified instance of self
Expand source code
def remove_audio(self) -> "Sensors": """ Removes this channel :return: A modified instance of self """ # noinspection PyTypeChecker self.get_proto().ClearField(Sensors.__AUDIO_FIELD_NAME) return self
def remove_compressed_audio(self) ‑> Sensors
-
Removes this channel :return: A modified instance of self
Expand source code
def remove_compressed_audio(self) -> "Sensors": """ Removes this channel :return: A modified instance of self """ # noinspection PyTypeChecker self.get_proto().ClearField(Sensors.__COMPRESSED_AUDIO_FIELD_NAME) return self
def remove_gravity(self) ‑> Sensors
-
Removes this channel :return: A modified instance of self
Expand source code
def remove_gravity(self) -> "Sensors": """ Removes this channel :return: A modified instance of self """ # noinspection PyTypeChecker self.get_proto().ClearField(Sensors.__GRAVITY_FIELD_NAME) return self
def remove_gyroscope(self) ‑> Sensors
-
Removes this sensor :return: A modified instance of self
Expand source code
def remove_gyroscope(self) -> "Sensors": """ Removes this sensor :return: A modified instance of self """ # noinspection PyTypeChecker self.get_proto().ClearField(Sensors.__GYROSCOPE_FIELD_NAME) return self
def remove_image(self) ‑> Sensors
-
Removes this sensor :return: A modified instance of self
Expand source code
def remove_image(self) -> "Sensors": """ Removes this sensor :return: A modified instance of self """ # noinspection PyTypeChecker self.get_proto().ClearField(Sensors.__IMAGE_FIELD_NAME) return self
def remove_light(self) ‑> Sensors
-
Removes this sensor :return: A modified instance of self
Expand source code
def remove_light(self) -> "Sensors": """ Removes this sensor :return: A modified instance of self """ # noinspection PyTypeChecker self.get_proto().ClearField(Sensors.__LIGHT_FIELD_NAME) return self
def remove_linear_acceleration(self) ‑> Sensors
-
Removes this sensor :return: A modified instance of self
Expand source code
def remove_linear_acceleration(self) -> "Sensors": """ Removes this sensor :return: A modified instance of self """ # noinspection PyTypeChecker self.get_proto().ClearField(Sensors.__LINEAR_ACCELERATION_FIELD_NAME) return self
def remove_location(self) ‑> Sensors
-
Removes this sensor :return: A modified instance of self
Expand source code
def remove_location(self) -> "Sensors": """ Removes this sensor :return: A modified instance of self """ # noinspection PyTypeChecker self.get_proto().ClearField(Sensors.__LOCATION_FIELD_NAME) return self
def remove_magnetometer(self) ‑> Sensors
-
Removes this sensor :return: A modified instance of self
Expand source code
def remove_magnetometer(self) -> "Sensors": """ Removes this sensor :return: A modified instance of self """ # noinspection PyTypeChecker self.get_proto().ClearField(Sensors.__MAGNETOMETER_FIELD_NAME) return self
def remove_orientation(self) ‑> Sensors
-
Removes this sensor :return: A modified instance of self
Expand source code
def remove_orientation(self) -> "Sensors": """ Removes this sensor :return: A modified instance of self """ # noinspection PyTypeChecker self.get_proto().ClearField(Sensors.__ORIENTATION_FIELD_NAME) return self
def remove_pressure(self) ‑> Sensors
-
Removes this sensor :return: A modified instance of self
Expand source code
def remove_pressure(self) -> "Sensors": """ Removes this sensor :return: A modified instance of self """ # noinspection PyTypeChecker self.get_proto().ClearField(Sensors.__PRESSURE_FIELD_NAME) return self
def remove_proximity(self) ‑> Sensors
-
Removes this sensor :return: A modified instance of self
Expand source code
def remove_proximity(self) -> "Sensors": """ Removes this sensor :return: A modified instance of self """ # noinspection PyTypeChecker self.get_proto().ClearField(Sensors.__PROXIMITY_FIELD_NAME) return self
def remove_relative_humidity(self) ‑> Sensors
-
Removes this sensor :return: A modified instance of self
Expand source code
def remove_relative_humidity(self) -> "Sensors": """ Removes this sensor :return: A modified instance of self """ # noinspection PyTypeChecker self.get_proto().ClearField(Sensors.__RELATIVE_HUMIDITY_FIELD_NAME) return self
def remove_rotation_vector(self) ‑> Sensors
-
Removes this sensor :return: A modified instance of self
Expand source code
def remove_rotation_vector(self) -> "Sensors": """ Removes this sensor :return: A modified instance of self """ # noinspection PyTypeChecker self.get_proto().ClearField(Sensors.__ROTATION_VECTOR) return self
def remove_velocity(self) ‑> Sensors
-
Removes this sensor :return: A modified instance of self
Expand source code
def remove_velocity(self) -> "Sensors": """ Removes this sensor :return: A modified instance of self """ # noinspection PyTypeChecker self.get_proto().ClearField(Sensors.__VELOCITY) return self
def set_accelerometer(self, accelerometer: Xyz) ‑> Sensors
-
Sets the channel :param accelerometer: Channel to set :return: A modified instance of self
Expand source code
def set_accelerometer(self, accelerometer: xyz.Xyz) -> "Sensors": """ Sets the channel :param accelerometer: Channel to set :return: A modified instance of self """ redvox.api1000.common.typing.check_type(accelerometer, [xyz.Xyz]) self.get_proto().accelerometer.CopyFrom(accelerometer.get_proto()) self._accelerometer = xyz.Xyz(self.get_proto().accelerometer) return self
def set_ambient_temperature(self, ambient_temperature: Single) ‑> Sensors
-
Sets the channel :param ambient_temperature: Channel to set :return: A modified instance of self
Expand source code
def set_ambient_temperature(self, ambient_temperature: single.Single) -> "Sensors": """ Sets the channel :param ambient_temperature: Channel to set :return: A modified instance of self """ redvox.api1000.common.typing.check_type(ambient_temperature, [single.Single]) self.get_proto().ambient_temperature.CopyFrom(ambient_temperature.get_proto()) self._ambient_temperature = single.Single(self.get_proto().ambient_temperature) return self
def set_audio(self, _audio: Audio) ‑> Sensors
-
Sets the channel :param _audio: Channel to set :return: A modified instance of self
Expand source code
def set_audio(self, _audio: audio.Audio) -> "Sensors": """ Sets the channel :param _audio: Channel to set :return: A modified instance of self """ redvox.api1000.common.typing.check_type(_audio, [audio.Audio]) self.get_proto().audio.CopyFrom(_audio.get_proto()) self._audio = audio.Audio(self.get_proto().audio) return self
def set_compressed_audio(self, compressed_audio: CompressedAudio) ‑> Sensors
-
Sets the channel :param compressed_audio: Channel to set :return: A modified instance of self
Expand source code
def set_compressed_audio( self, compressed_audio: audio.CompressedAudio ) -> "Sensors": """ Sets the channel :param compressed_audio: Channel to set :return: A modified instance of self """ redvox.api1000.common.typing.check_type( compressed_audio, [audio.CompressedAudio] ) # noinspection Mypy self.get_proto().compressed_audio.CopyFrom(compressed_audio.get_proto()) self._compressed_audio = audio.CompressedAudio( self.get_proto().compressed_audio ) return self
def set_gravity(self, gravity: Xyz) ‑> Sensors
-
Sets the channel :param gravity: Channel to set :return: A modified instance of self
Expand source code
def set_gravity(self, gravity: xyz.Xyz) -> "Sensors": """ Sets the channel :param gravity: Channel to set :return: A modified instance of self """ redvox.api1000.common.typing.check_type(gravity, [xyz.Xyz]) self.get_proto().gravity.CopyFrom(gravity.get_proto()) self._gravity = xyz.Xyz(self.get_proto().gravity) return self
def set_gyroscope(self, gyroscope: Xyz) ‑> Sensors
-
Sets the channel :param gyroscope: Channel to set :return: A modified instance of self
Expand source code
def set_gyroscope(self, gyroscope: xyz.Xyz) -> "Sensors": """ Sets the channel :param gyroscope: Channel to set :return: A modified instance of self """ redvox.api1000.common.typing.check_type(gyroscope, [xyz.Xyz]) self.get_proto().gyroscope.CopyFrom(gyroscope.get_proto()) self._gyroscope = xyz.Xyz(self.get_proto().gyroscope) return self
def set_image(self, _image: Image) ‑> Sensors
-
Sets the channel :param _image: Channel to set :return: A modified instance of self
Expand source code
def set_image(self, _image: image.Image) -> "Sensors": """ Sets the channel :param _image: Channel to set :return: A modified instance of self """ redvox.api1000.common.typing.check_type(_image, [image.Image]) self.get_proto().image.CopyFrom(_image.get_proto()) self._image = image.Image(self.get_proto().image) return self
def set_light(self, light: Single) ‑> Sensors
-
Sets the channel :param light: Channel to set :return: A modified instance of self
Expand source code
def set_light(self, light: single.Single) -> "Sensors": """ Sets the channel :param light: Channel to set :return: A modified instance of self """ redvox.api1000.common.typing.check_type(light, [single.Single]) self.get_proto().light.CopyFrom(light.get_proto()) self._light = single.Single(self.get_proto().light) return self
def set_linear_acceleration(self, linear_acceleration: Xyz) ‑> Sensors
-
Sets the channel :param linear_acceleration: Channel to set :return: A modified instance of self
Expand source code
def set_linear_acceleration(self, linear_acceleration: xyz.Xyz) -> "Sensors": """ Sets the channel :param linear_acceleration: Channel to set :return: A modified instance of self """ redvox.api1000.common.typing.check_type(linear_acceleration, [xyz.Xyz]) self.get_proto().linear_acceleration.CopyFrom(linear_acceleration.get_proto()) self._linear_acceleration = xyz.Xyz(self.get_proto().linear_acceleration) return self
def set_location(self, _location: Location) ‑> Sensors
-
Sets the channel :param _location: Channel to set :return: A modified instance of self
Expand source code
def set_location(self, _location: location.Location) -> "Sensors": """ Sets the channel :param _location: Channel to set :return: A modified instance of self """ redvox.api1000.common.typing.check_type(_location, [location.Location]) self.get_proto().location.CopyFrom(_location.get_proto()) self._location = location.Location(self.get_proto().location) return self
def set_magnetometer(self, magnetometer: Xyz) ‑> Sensors
-
Sets the channel :param magnetometer: Channel to set :return: A modified instance of self
Expand source code
def set_magnetometer(self, magnetometer: xyz.Xyz) -> "Sensors": """ Sets the channel :param magnetometer: Channel to set :return: A modified instance of self """ redvox.api1000.common.typing.check_type(magnetometer, [xyz.Xyz]) self.get_proto().magnetometer.CopyFrom(magnetometer.get_proto()) self._magnetometer = xyz.Xyz(self.get_proto().magnetometer) return self
def set_orientation(self, orientation: Xyz) ‑> Sensors
-
Sets the channel :param orientation: Channel to set :return: A modified instance of self
Expand source code
def set_orientation(self, orientation: xyz.Xyz) -> "Sensors": """ Sets the channel :param orientation: Channel to set :return: A modified instance of self """ redvox.api1000.common.typing.check_type(orientation, [xyz.Xyz]) self.get_proto().orientation.CopyFrom(orientation.get_proto()) self._orientation = xyz.Xyz(self.get_proto().orientation) return self
def set_pressure(self, pressure: Single) ‑> Sensors
-
Sets the channel :param pressure: Channel to set :return: A modified instance of self
Expand source code
def set_pressure(self, pressure: single.Single) -> "Sensors": """ Sets the channel :param pressure: Channel to set :return: A modified instance of self """ redvox.api1000.common.typing.check_type(pressure, [single.Single]) self.get_proto().pressure.CopyFrom(pressure.get_proto()) self._pressure = single.Single(self.get_proto().pressure) return self
def set_proximity(self, proximity: Single) ‑> Sensors
-
Sets the channel :param proximity: Channel to set :return: A modified instance of self
Expand source code
def set_proximity(self, proximity: single.Single) -> "Sensors": """ Sets the channel :param proximity: Channel to set :return: A modified instance of self """ redvox.api1000.common.typing.check_type(proximity, [single.Single]) self.get_proto().proximity.CopyFrom(proximity.get_proto()) self._proximity = single.Single(self.get_proto().proximity) return self
def set_relative_humidity(self, relative_humidity: Single) ‑> Sensors
-
Sets the channel :param relative_humidity: Channel to set :return: A modified instance of self
Expand source code
def set_relative_humidity(self, relative_humidity: single.Single) -> "Sensors": """ Sets the channel :param relative_humidity: Channel to set :return: A modified instance of self """ redvox.api1000.common.typing.check_type(relative_humidity, [single.Single]) self.get_proto().relative_humidity.CopyFrom(relative_humidity.get_proto()) self._relative_humidity = single.Single(self.get_proto().relative_humidity) return self
def set_rotation_vector(self, rotation_vector: Xyz) ‑> Sensors
-
Sets the channel :param rotation_vector: Channel to set :return: A modified instance of self
Expand source code
def set_rotation_vector(self, rotation_vector: xyz.Xyz) -> "Sensors": """ Sets the channel :param rotation_vector: Channel to set :return: A modified instance of self """ redvox.api1000.common.typing.check_type(rotation_vector, [xyz.Xyz]) self.get_proto().rotation_vector.CopyFrom(rotation_vector.get_proto()) self._rotation_vector = xyz.Xyz(self.get_proto().rotation_vector) return self
def set_velocity(self, velocity: Xyz) ‑> Sensors
-
Sets the channel :param velocity: Channel to set :return: A modified instance of self
Expand source code
def set_velocity(self, velocity: xyz.Xyz) -> "Sensors": """ Sets the channel :param velocity: Channel to set :return: A modified instance of self """ redvox.api1000.common.typing.check_type(velocity, [xyz.Xyz]) self.get_proto().velocity.CopyFrom(velocity.get_proto()) self._velocity = xyz.Xyz(self.get_proto().velocity) return self
def validate_accelerometer(self) ‑> bool
-
Checks if there are no errors with the accelerometer and it contains at least 1 data entry :return: True if no errors
Expand source code
def validate_accelerometer(self) -> bool: """ Checks if there are no errors with the accelerometer and it contains at least 1 data entry :return: True if no errors """ # noinspection PyTypeChecker return ( len( xyz.validate_xyz( self._accelerometer, common.Unit.METERS_PER_SECOND_SQUARED ) ) < 1 and self._accelerometer.get_x_samples().get_values_count() > 0 )
def validate_ambient_temperature(self) ‑> bool
-
Checks if there are no errors with the ambient temperature sensor and it contains at least 1 data entry :return: True if no errors
Expand source code
def validate_ambient_temperature(self) -> bool: """ Checks if there are no errors with the ambient temperature sensor and it contains at least 1 data entry :return: True if no errors """ # noinspection PyTypeChecker return ( len( single.validate_single( self._ambient_temperature, common.Unit.DEGREES_CELSIUS ) ) < 1 and self._ambient_temperature.get_samples().get_values_count() > 0 )
def validate_audio(self) ‑> bool
-
Checks if there are no errors with the audio sensor and it contains at least 1 data entry :return: True if no errors
Expand source code
def validate_audio(self) -> bool: """ Checks if there are no errors with the audio sensor and it contains at least 1 data entry :return: True if no errors """ return ( len(audio.validate_audio(self._audio)) < 1 and self._audio.get_samples().get_values_count() > 0 )
def validate_compressed_audio(self) ‑> bool
-
Checks if there are no errors with the compressed audio sensor and it contains at least 1 data entry :return: True if no errors
Expand source code
def validate_compressed_audio(self) -> bool: """ Checks if there are no errors with the compressed audio sensor and it contains at least 1 data entry :return: True if no errors """ return len(audio.validate_compressed_audio(self._compressed_audio)) < 1
def validate_gravity(self) ‑> bool
-
Checks if there are no errors with the gravity sensor and it contains at least 1 data entry :return: True if no errors
Expand source code
def validate_gravity(self) -> bool: """ Checks if there are no errors with the gravity sensor and it contains at least 1 data entry :return: True if no errors """ # noinspection PyTypeChecker return ( len(xyz.validate_xyz(self._gravity, common.Unit.METERS_PER_SECOND_SQUARED)) < 1 and self._gravity.get_x_samples().get_values_count() > 0 )
def validate_gyroscope(self) ‑> bool
-
Checks if there are no errors with the gyroscope and it contains at least 1 data entry :return: True if no errors
Expand source code
def validate_gyroscope(self) -> bool: """ Checks if there are no errors with the gyroscope and it contains at least 1 data entry :return: True if no errors """ # noinspection PyTypeChecker return ( len(xyz.validate_xyz(self._gyroscope, common.Unit.RADIANS_PER_SECOND)) < 1 and self._gyroscope.get_x_samples().get_values_count() > 0 )
def validate_image(self) ‑> bool
-
Checks if there are no errors with the image sensor and it contains at least 1 data entry :return: True if no errors
Expand source code
def validate_image(self) -> bool: """ Checks if there are no errors with the image sensor and it contains at least 1 data entry :return: True if no errors """ return ( len(image.validate_image(self._image)) < 1 and self._image.get_num_images() > 0 )
def validate_light(self) ‑> bool
-
Checks if there are no errors with the light sensor and it contains at least 1 data entry :return: True if no errors
Expand source code
def validate_light(self) -> bool: """ Checks if there are no errors with the light sensor and it contains at least 1 data entry :return: True if no errors """ # noinspection PyTypeChecker return ( len(single.validate_single(self._light, common.Unit.LUX)) < 1 and self._light.get_samples().get_values_count() > 0 )
def validate_linear_acceleration(self) ‑> bool
-
Checks if there are no errors with the linear acceleration sensor and it contains at least 1 data entry :return: True if no errors
Expand source code
def validate_linear_acceleration(self) -> bool: """ Checks if there are no errors with the linear acceleration sensor and it contains at least 1 data entry :return: True if no errors """ # noinspection PyTypeChecker return ( len( xyz.validate_xyz( self._linear_acceleration, common.Unit.METERS_PER_SECOND_SQUARED ) ) < 1 and self._linear_acceleration.get_x_samples().get_values_count() > 0 )
def validate_location(self) ‑> bool
-
Checks if there are no errors with the location :return: True if no errors
Expand source code
def validate_location(self) -> bool: """ Checks if there are no errors with the location :return: True if no errors """ return len(location.validate_location(self._location)) < 1
def validate_magnetometer(self) ‑> bool
-
Checks if there are no errors with the magnetometer and it contains at least 1 data entry :return: True if no errors
Expand source code
def validate_magnetometer(self) -> bool: """ Checks if there are no errors with the magnetometer and it contains at least 1 data entry :return: True if no errors """ # noinspection PyTypeChecker return ( len(xyz.validate_xyz(self._magnetometer, common.Unit.MICROTESLA)) < 1 and self._magnetometer.get_x_samples().get_values_count() > 0 )
def validate_orientation(self) ‑> bool
-
Checks if there are no errors with the orientation sensor and it contains at least 1 data entry :return: True if no errors
Expand source code
def validate_orientation(self) -> bool: """ Checks if there are no errors with the orientation sensor and it contains at least 1 data entry :return: True if no errors """ # noinspection PyTypeChecker return ( len(xyz.validate_xyz(self._orientation, common.Unit.RADIANS)) < 1 and self._orientation.get_x_samples().get_values_count() > 0 )
def validate_pressure(self) ‑> bool
-
Checks if there are no errors with the pressure sensor and it contains at least 1 data entry :return: True if no errors
Expand source code
def validate_pressure(self) -> bool: """ Checks if there are no errors with the pressure sensor and it contains at least 1 data entry :return: True if no errors """ # noinspection PyTypeChecker return ( len(single.validate_single(self._pressure, common.Unit.KILOPASCAL)) < 1 and self._pressure.get_samples().get_values_count() > 0 )
def validate_proximity(self) ‑> bool
-
Checks if there are no errors with the proximity sensor and it contains at least 1 data entry :return: True if no errors
Expand source code
def validate_proximity(self) -> bool: """ Checks if there are no errors with the proximity sensor and it contains at least 1 data entry :return: True if no errors """ # noinspection PyTypeChecker return ( len(single.validate_single(self._proximity, common.Unit.CENTIMETERS)) < 1 and self._proximity.get_samples().get_values_count() > 0 )
def validate_relative_humidity(self) ‑> bool
-
Checks if there are no errors with the relative_humidity sensor and it contains at least 1 data entry :return: True if no errors
Expand source code
def validate_relative_humidity(self) -> bool: """ Checks if there are no errors with the relative_humidity sensor and it contains at least 1 data entry :return: True if no errors """ # noinspection PyTypeChecker return ( len(single.validate_single(self._relative_humidity, common.Unit.PERCENTAGE)) < 1 and self._relative_humidity.get_samples().get_values_count() > 0 )
def validate_rotation_vector(self) ‑> bool
-
Checks if there are no errors with the rotation vector sensor and it contains at least 1 data entry :return: True if no errors
Expand source code
def validate_rotation_vector(self) -> bool: """ Checks if there are no errors with the rotation vector sensor and it contains at least 1 data entry :return: True if no errors """ # noinspection PyTypeChecker return ( len(xyz.validate_xyz(self._rotation_vector, common.Unit.UNITLESS)) < 1 and self._rotation_vector.get_x_samples().get_values_count() > 0 )
def validate_velocity(self) ‑> bool
-
Checks if there are no errors with the sensor and it contains at least 1 data entry :return: True if no errors
Expand source code
def validate_velocity(self) -> bool: """ Checks if there are no errors with the sensor and it contains at least 1 data entry :return: True if no errors """ # noinspection PyTypeChecker return ( len(xyz.validate_xyz(self._velocity, common.Unit.METERS_PER_SECOND)) < 1 and self._velocity.get_x_samples().get_values_count() > 0 )
Inherited members