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.imu import Accelerometer, Gyroscope, IMU
from spatz.sensors.pressure import PressureSensor
from spatz.sensors.temperature import TemperatureSensor
from spatz.sensors.compound import CompoundSensor

View File

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

View File

@ -38,11 +38,11 @@ class Sensor:
@abstractmethod
def _sensor_specific_effects(self, x: ArrayLike | float) -> ArrayLike | float:
raise NotImplementedError()
@abstractmethod
def _get_data(self) -> ArrayLike | float:
raise NotImplementedError()
def get_init_data() -> ArrayLike:
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:
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:
return self.__dataset