Renamed ms5611 and added temperature sensor

This commit is contained in:
dario 2024-06-01 17:44:16 +02:00
parent d20d1b750b
commit 1b06db4152
5 changed files with 40 additions and 5 deletions

View File

@ -2,4 +2,5 @@ from spatz.sensors.sensor import Sensor
from spatz.sensors.gps import GPS from spatz.sensors.gps import GPS
from spatz.sensors.imu import Accelerometer, Gyroscope, IMU from spatz.sensors.imu import Accelerometer, Gyroscope, IMU
from spatz.sensors.pressure import PressureSensor from spatz.sensors.pressure import PressureSensor
from spatz.sensors.temperature import TemperatureSensor
from spatz.sensors.compound import CompoundSensor from spatz.sensors.compound import CompoundSensor

View File

@ -7,7 +7,7 @@ from spatz.logger import Logger
from spatz.transforms import GaussianNoise, Transform, ProportionalGaussian from spatz.transforms import GaussianNoise, Transform, ProportionalGaussian
class MS5611_01BA03(PressureSensor): class MS5611(PressureSensor):
def __init__(self, dataset: Dataset, logger: Logger, transforms: List[Transform] = [], ts_effects=True): def __init__(self, dataset: Dataset, logger: Logger, transforms: List[Transform] = [], ts_effects=True):
super().__init__(dataset, logger, transforms, ts_effects) super().__init__(dataset, logger, transforms, ts_effects)
@ -17,7 +17,7 @@ class MS5611_01BA03(PressureSensor):
self.__noise = ProportionalGaussian(0, 0.0015) self.__noise = ProportionalGaussian(0, 0.0015)
def _get_name(self) -> AnyStr: def _get_name(self) -> AnyStr:
return 'MS5611_01BA03' return 'MS5611'
def _sensor_specific_effects(self, x: ArrayLike | float) -> ArrayLike | float: def _sensor_specific_effects(self, x: ArrayLike | float) -> ArrayLike | float:
t = self._dataset.get_time() t = self._dataset.get_time()
@ -30,4 +30,4 @@ class MS5611_01BA03(PressureSensor):
# Log the noise added to the pressure measurements. # Log the noise added to the pressure measurements.
self._logger.write('noise', noisy - x, domain=self._get_name()) self._logger.write('noise', noisy - x, domain=self._get_name())
return noisy return noisy

View File

@ -38,11 +38,11 @@ class Sensor:
@abstractmethod @abstractmethod
def _sensor_specific_effects(self, x: ArrayLike | float) -> ArrayLike | float: def _sensor_specific_effects(self, x: ArrayLike | float) -> ArrayLike | float:
raise NotImplementedError() raise NotImplementedError()
@abstractmethod @abstractmethod
def _get_data(self) -> ArrayLike | float: def _get_data(self) -> ArrayLike | float:
raise NotImplementedError() raise NotImplementedError()
def get_init_data() -> ArrayLike: def get_init_data() -> ArrayLike:
pass pass

View File

@ -0,0 +1,25 @@
from numpy.typing import ArrayLike
from typing import List, AnyStr
from spatz.transforms.noise import GaussianNoise
from spatz.dataset import Dataset
from spatz.sensors import TemperatureSensor
from spatz.transforms import Transform
class MS5611Temperature(TemperatureSensor):
def __init__(self, dataset: Dataset, transforms: List[Transform] = ...):
super().__init__(dataset, transforms)
self.__noise = GaussianNoise(0, 0.5)
def _get_name(self) -> AnyStr:
return 'MS5611'
def _sensor_specific_effects(self, x: ArrayLike | float) -> ArrayLike | float:
t = self._dataset.get_time()
noisy = self.__noise(t, x)
self._log('temperature', noisy)
return noisy

View File

@ -75,6 +75,15 @@ class Simulation:
if verbose: if verbose:
pbar.close() pbar.close()
def advance_to(self, t: float):
t_old = self.__dataset.get_time()
self.__dataset.step(t - t_old)
self.__logger.step(t - t_old)
def advance(self, dt: float):
self.__dataset.step(dt)
self.__logger.step(dt)
def get_dataset(self) -> Dataset: def get_dataset(self) -> Dataset:
return self.__dataset return self.__dataset