jantman / python-wifi-survey-heatmap

A Python application for Linux machines to perform WiFi site surveys and present the results as a heatmap overlayed on a floorplan
GNU Affero General Public License v3.0
373 stars 87 forks source link

Fixes sudo, UI, duplicate point plotting issues #38

Open byteit101 opened 2 months ago

byteit101 commented 2 months ago

IMPORTANT: Please take note of the below checklist, especially the first two items.

Pull Request Checklist

Contributor License Agreement

By submitting this work for inclusion in wifi-survey-heatmap, I agree to the following terms:

UI & Sudo & Duplicate Point fixes

I think the UI repainting is fully fixed here. I'm not confident of sudo/paplay yet.

UI + Scan background thread

The scan method now launches a background thread, if not already launched, to do the work of scanning. This makes the UI interactive and keeps desktop environments happy. I had to setup a pubsub thread callback mechanism as the scan background thread wants to repaint and update the status.

Sudo + paplay ding

This works, in some environments. I need to fix the other environments and/or document. Feedback appreciated. The UI drops permissions ASAP once it launches the scan subprocess. Communication is via JSON and a Scanner proxy object. Also a security win.

Plotting duplicate points

Duplicate points cause fun patterns, but useless output. Now they are filtered out

jantman commented 2 months ago

Thanks so much, @byteit101 ! Once you feel this is ready and tested, I'll be happy to give it a spin on my machine and merge! Thank you SO much for this! I no longer use this project for work, which means I pretty much only use it if a friend or family member is moving house and wants to know where to put their access point. So... I very rarely use this project at all anymore. I'm deeply appreciative of the users who are keeping it going (and much improved).

byteit101 commented 2 months ago

This seems to be working for me now. I didn't want to muck with the readme or changelog too much, but the pulseAudo issue and root issue both are only for non-docker environments.

I haven't tested in docker.