diff --git a/MapView/domain/accelerometer.py b/MapView/domain/accelerometer.py index 38dbd45..8a8fb6d 100644 --- a/MapView/domain/accelerometer.py +++ b/MapView/domain/accelerometer.py @@ -2,6 +2,6 @@ from dataclasses import dataclass @dataclass class Accelerometer: - x: int - y: int - z: int + x: float + y: float + z: float diff --git a/agent/src/domain/accelerometer.py b/agent/src/domain/accelerometer.py index 44c9ed7..d16634a 100644 --- a/agent/src/domain/accelerometer.py +++ b/agent/src/domain/accelerometer.py @@ -3,6 +3,6 @@ from dataclasses import dataclass @dataclass class Accelerometer: - x: int - y: int - z: int + x: float + y: float + z: float diff --git a/agent/src/file_datasource.py b/agent/src/file_datasource.py index 0425ca6..8bde32e 100644 --- a/agent/src/file_datasource.py +++ b/agent/src/file_datasource.py @@ -15,6 +15,7 @@ class FileDatasource: def __init__( self, + acc_divisor: float, accelerometer_filename: str, gps_filename: str, park_filename: str, @@ -34,6 +35,8 @@ class FileDatasource: self._started = False + self.acc_divisor = acc_divisor + def startReading(self, *args, **kwargs): """Must be called before read()""" if self._started: @@ -160,15 +163,14 @@ class FileDatasource: return row - @staticmethod - def _parse_acc(row: List[str]) -> Accelerometer: + def _parse_acc(self, row: List[str]) -> Accelerometer: if len(row) < 3: raise ValueError(f"Accelerometer row must have 3 values (x,y,z). Got: {row}") try: - x = int(row[0]) - y = int(row[1]) - z = int(row[2]) + x = int(row[0]) / self.acc_divisor + y = int(row[1]) / self.acc_divisor + z = int(row[2]) / self.acc_divisor except ValueError as e: raise ValueError(f"Invalid accelerometer values (expected integers): {row}") from e diff --git a/agent/src/main.py b/agent/src/main.py index db81260..eff8da8 100644 --- a/agent/src/main.py +++ b/agent/src/main.py @@ -39,7 +39,7 @@ def run(): # Prepare mqtt client client = connect_mqtt(config.MQTT_BROKER_HOST, config.MQTT_BROKER_PORT) # Prepare datasource - datasource = FileDatasource("data/accelerometer.csv", "data/gps.csv", "data/parking.csv") + datasource = FileDatasource(16384.0, "data/accelerometer.csv", "data/gps.csv", "data/parking.csv") # Infinity publish data publish(client, config.MQTT_TOPIC, datasource) diff --git a/agent/src/schema/accelerometer_schema.py b/agent/src/schema/accelerometer_schema.py index 8dcc76b..b309539 100644 --- a/agent/src/schema/accelerometer_schema.py +++ b/agent/src/schema/accelerometer_schema.py @@ -2,6 +2,6 @@ from marshmallow import Schema, fields class AccelerometerSchema(Schema): - x = fields.Int() - y = fields.Int() - z = fields.Int() + x = fields.Float() + y = fields.Float() + z = fields.Float()