generated from Grigo/AndroidTemplate
added refference point
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -191,9 +191,6 @@ def apply_migrations(conn: sqlite3.Connection) -> list[str]:
|
||||
rssi REAL,
|
||||
role TEXT,
|
||||
meta TEXT,
|
||||
preset_id TEXT,
|
||||
preset_name TEXT,
|
||||
params_json TEXT,
|
||||
FOREIGN KEY (session_id) REFERENCES reference_point_sessions(id)
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS idx_reference_samples_session_ts
|
||||
|
||||
+4
-32
@@ -554,28 +554,9 @@ def _metric_stats(values: list[float]) -> dict[str, Any]:
|
||||
def _reference_stats(samples: list[dict[str, Any]]) -> dict[str, Any]:
|
||||
per = [_metric_from_meta(s.get("meta"), "per_percent") for s in samples]
|
||||
quality = [_metric_from_meta(s.get("meta"), "rx_quality_percent") for s in samples]
|
||||
by_preset: dict[str, dict[str, list[float]]] = {}
|
||||
for sample in samples:
|
||||
key = sample.get("preset_id") or sample.get("preset_name") or "none"
|
||||
bucket = by_preset.setdefault(
|
||||
str(key), {"per_percent": [], "rx_quality_percent": []}
|
||||
)
|
||||
per_v = _metric_from_meta(sample.get("meta"), "per_percent")
|
||||
q_v = _metric_from_meta(sample.get("meta"), "rx_quality_percent")
|
||||
if per_v is not None:
|
||||
bucket["per_percent"].append(per_v)
|
||||
if q_v is not None:
|
||||
bucket["rx_quality_percent"].append(q_v)
|
||||
return {
|
||||
"per_percent": _metric_stats([v for v in per if v is not None]),
|
||||
"rx_quality_percent": _metric_stats([v for v in quality if v is not None]),
|
||||
"by_preset": {
|
||||
key: {
|
||||
"per_percent": _metric_stats(vals["per_percent"]),
|
||||
"rx_quality_percent": _metric_stats(vals["rx_quality_percent"]),
|
||||
}
|
||||
for key, vals in by_preset.items()
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
@@ -633,9 +614,8 @@ def add_reference_point_samples(
|
||||
conn.execute(
|
||||
"""
|
||||
INSERT INTO reference_point_samples
|
||||
(session_id, ts, lat, lon, rssi, role, meta,
|
||||
preset_id, preset_name, params_json)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
||||
(session_id, ts, lat, lon, rssi, role, meta)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?)
|
||||
""",
|
||||
(
|
||||
session_id,
|
||||
@@ -645,9 +625,6 @@ def add_reference_point_samples(
|
||||
sample.get("rssi"),
|
||||
sample.get("role"),
|
||||
_json_or_none(sample.get("meta")),
|
||||
sample.get("preset_id"),
|
||||
sample.get("preset_name"),
|
||||
_json_or_none(sample.get("params")),
|
||||
),
|
||||
)
|
||||
added += 1
|
||||
@@ -722,19 +699,14 @@ def get_reference_point_session(session_id: int) -> dict[str, Any]:
|
||||
raise ValueError(f"reference point session {session_id} not found")
|
||||
rows = conn.execute(
|
||||
"""
|
||||
SELECT id, session_id, ts, lat, lon, rssi, role, meta,
|
||||
preset_id, preset_name, params_json
|
||||
SELECT id, session_id, ts, lat, lon, rssi, role, meta
|
||||
FROM reference_point_samples
|
||||
WHERE session_id = ?
|
||||
ORDER BY ts ASC
|
||||
""",
|
||||
(session_id,),
|
||||
).fetchall()
|
||||
samples = []
|
||||
for row in rows:
|
||||
sample = dict(row)
|
||||
sample["params"] = _json_load(sample.pop("params_json"))
|
||||
samples.append(sample)
|
||||
samples = [dict(row) for row in rows]
|
||||
result = dict(session)
|
||||
result["sample_count"] = len(samples)
|
||||
result["samples"] = samples
|
||||
|
||||
Reference in New Issue
Block a user