wifimeasurement → beaconmeasurement… and editor scancollector implementation

This commit is contained in:
Laura Klünder 2024-03-31 16:23:15 +02:00
parent 35d030a6fd
commit 20fbcc9139
13 changed files with 169 additions and 85 deletions

View file

@ -12,7 +12,7 @@ class Command(BaseCommand):
def add_arguments(self, parser):
parser.add_argument('--yes', action='store_true', help='really delete it')
parser.add_argument('--wifi-measurements', action='store_true', help='delete wifi measurements')
parser.add_argument('--beacon-measurements', action='store_true', help='delete beacon measurements')
def handle(self, *args, **options):
from django.contrib.auth import get_user_model
@ -21,7 +21,7 @@ class Command(BaseCommand):
from c3nav.editor.models import ChangeSet
from c3nav.mapdata.models import MapUpdate
from c3nav.mapdata.models.access import AccessPermissionToken
from c3nav.mapdata.models.geometry.space import WifiMeasurement
from c3nav.mapdata.models.geometry.space import BeaconMeasurement
from c3nav.site.models import Announcement
logger = logging.getLogger('c3nav')
@ -46,9 +46,9 @@ class Command(BaseCommand):
UserPermissions.objects.filter(user__is_superuser=False).delete()
logger.info('Deleted all UserPermissions not attached to a super user')
if options['wifi_measurements']:
WifiMeasurement.objects.all().delete()
logger.info('Deleted all WifiMeasurements')
if options['beacon_measurements']:
BeaconMeasurement.objects.all().delete()
logger.info('Deleted all BeaconMeasurements')
get_user_model().objects.filter(is_superuser=False).delete()
logger.info('Deleted all Users who are not a super user')

View file

@ -1,7 +1,7 @@
import numpy as np
from django.core.management.base import BaseCommand
from c3nav.mapdata.models.geometry.space import WifiMeasurement, RangingBeacon
from c3nav.mapdata.models.geometry.space import BeaconMeasurement, RangingBeacon
class Command(BaseCommand):
@ -10,11 +10,11 @@ class Command(BaseCommand):
def handle(self, *args, **options):
found_beacons = {}
# lets collect them
for wifi_measurement in WifiMeasurement.objects.select_related("space"):
for measurement_list in wifi_measurement.data:
for beacon_measurement in BeaconMeasurement.objects.select_related("space"):
for measurement_list in beacon_measurement.data:
for measurement in measurement_list:
if measurement.get("supports80211mc", False) or measurement.get("distance", None):
found_beacons.setdefault(measurement["bssid"], []).append((wifi_measurement, measurement))
found_beacons.setdefault(measurement["bssid"], []).append((beacon_measurement, measurement))
# put in the ones we know
known = {r.wifi_bssid: r for r in RangingBeacon.objects.all()}
@ -22,8 +22,8 @@ class Command(BaseCommand):
# lets go through them
for bssid, measurements in found_beacons.items():
print(bssid, measurements[0][1]["ssid"], known.get(bssid))
points = {wifi_measurement.geometry for wifi_measurement, measurement in measurements}
for wifi_measurement, measurement in measurements:
points = {beacon_measurement.geometry for beacon_measurement, measurement in measurements}
for beacon_measurement, measurement in measurements:
break
#print(f" Space={wifi_measurement.space.title!r} RSSI={measurement['rssi']} "
# f"distance={measurement.get('distance')} distance_sd={measurement.get('distance_sd')}")