feat: include self-reported tx_power in measurement calls

This commit is contained in:
2026-05-16 14:42:37 +02:00
parent f5e148bb88
commit 0f0f377e98
3 changed files with 32 additions and 20 deletions
+3 -3
View File
@@ -6,7 +6,7 @@ defmodule Localiser.RSSI.Buffer do
@flush_interval_ms 500
# reading :: %{sensor_id: String.t(), tag_id: String.t(), rssi: integer()}
# reading :: %{sensor_id: String.t(), tag_id: String.t(), rssi: integer(), tx_power: integer() | nil}
def push(reading) do
GenServer.cast(__MODULE__, {:push, reading})
end
@@ -50,14 +50,14 @@ defmodule Localiser.RSSI.Buffer do
# If the sensor is in calibration mode, feeds the reading to Sensor.Server instead
# and returns [] so the sample is excluded from Tag.Filter measurements.
# If the sensor server isn't running, returns [].
defp resolve_measurement(%{sensor_id: sensor_id, rssi: rssi}) do
defp resolve_measurement(%{sensor_id: sensor_id, rssi: rssi, tx_power: tx_power}) do
case Registry.lookup(Localiser.Registry, {:sensor, sensor_id}) do
[{_pid, _}] ->
if SensorServer.calibrating?(sensor_id) do
SensorServer.calibration_reading(sensor_id, rssi)
[]
else
[SensorServer.measure(sensor_id, rssi)]
[SensorServer.measure(sensor_id, rssi, tx_power)]
end
[] ->