Compare commits

..

2 Commits

Author SHA1 Message Date
db63eb6d79 [P] Improve logging logic in agent
All checks were successful
Component testing / Hub testing (push) Successful in 24s
Component testing / Store testing (push) Successful in 27s
Component testing / Integration smoke testing (push) Successful in 2m25s
2026-03-25 15:40:07 +02:00
77d6968297 [P] Fix map lat, lon confusion
All checks were successful
Component testing / Hub testing (push) Successful in 23s
Component testing / Store testing (push) Successful in 18s
Component testing / Integration smoke testing (push) Successful in 2m22s
2026-03-25 14:57:38 +02:00
6 changed files with 12 additions and 33 deletions

View File

@@ -72,8 +72,8 @@ class Datasource:
)
new_points = [
(
processed_agent_data.latitude,
processed_agent_data.longitude,
processed_agent_data.latitude,
processed_agent_data.road_state,
processed_agent_data.user_id
)

View File

@@ -87,7 +87,8 @@ class MapViewApp(App):
self.car_markers[user_id].lat = lat
self.car_markers[user_id].lon = lon
self.mapview.center_on(lat, lon)
if user_id == 1:
self.mapview.center_on(lat, lon)
def set_pothole_marker(self, point):
if isinstance(point, dict):

View File

@@ -16,6 +16,8 @@ def connect_mqtt(broker, port):
print("Failed to connect {broker}:{port}, return code %d\n", rc)
exit(rc) # Stop execution
logging.info(f"Acting as USER_ID = {config.USER_ID}")
client = mqtt_client.Client()
client.on_connect = on_connect
client.connect(broker, port)
@@ -29,13 +31,14 @@ def publish(client, topic, datasource):
data = datasource.read()
msg = AggregatedDataSchema().dumps(data)
result = client.publish(topic, msg)
logging.info(f"Published to {topic}: {msg[:50]}...")
logging.debug(f"Published to {topic}: {msg[:50]}...")
status = result[0]
if status != 0:
print(f"Failed to send message to topic {topic}")
logging.error(f"Failed to send message to topic {topic}")
def run():
logging.basicConfig(level = logging.INFO)
# Prepare mqtt client
client = connect_mqtt(config.MQTT_BROKER_HOST, config.MQTT_BROKER_PORT)
# Prepare datasource

View File

@@ -7,6 +7,5 @@ CREATE TABLE processed_agent_data (
z FLOAT,
latitude FLOAT,
longitude FLOAT,
timestamp TIMESTAMP,
visible BOOLEAN
);
timestamp TIMESTAMP
);

View File

@@ -8,13 +8,12 @@ from sqlalchemy import (
Integer,
String,
Float,
Boolean,
DateTime,
)
from sqlalchemy.sql import select
from database import metadata, SessionLocal
from schemas import ProcessedAgentData, ProcessedAgentDataInDB, WebSocketData
from schemas import ProcessedAgentData, ProcessedAgentDataInDB
# FastAPI app setup
app = FastAPI()
@@ -31,7 +30,6 @@ processed_agent_data = Table(
Column("latitude", Float),
Column("longitude", Float),
Column("timestamp", DateTime),
Column("visible", Boolean),
)
# WebSocket subscriptions
@@ -59,24 +57,7 @@ async def websocket_endpoint(websocket: WebSocket, user_id: int):
# receive forever
while True:
data = await websocket.receive_text()
try:
if (data):
ws_data = WebSocketData.model_validate(json.loads(data))
session = SessionLocal()
update_query = (
processed_agent_data.update()
.where(processed_agent_data.c.id == ws_data.id)
.values(visible=False)
).returning(processed_agent_data)
res = session.execute(update_query).fetchone()
if (not res):
session.rollback()
raise Exception("Error while websocket PUT")
session.commit()
finally:
session.close()
await websocket.receive_text()
except WebSocketDisconnect:
subscriptions.remove(websocket)
@@ -100,7 +81,6 @@ def ProcessedAgentData_to_td(data: List[ProcessedAgentData]):
"latitude": item.agent_data.gps.latitude,
"longitude": item.agent_data.gps.longitude,
"timestamp": item.agent_data.timestamp,
"visible": True,
}
for item in data
]

View File

@@ -49,7 +49,3 @@ class AgentData(BaseModel):
class ProcessedAgentData(BaseModel):
road_state: str
agent_data: AgentData
class WebSocketData(BaseModel):
id: int