micropython / micropython/micropython-lib
Add filter options to scanning
Nessuno ha ancora preso questa issue.
- Lingua principale
- Python
- Stelle
- 2.9k
- Fork
- 1.1k
- Merge medio
- 7g 6h
- PR unite (30g)
- 3
Descrizione
This is a feature request for the aioble/low-level bluetooth libraries
The use case is a remote patient monitoring central application that needs to support a large set of personal health devices, a few of which support the BT SIG health device profiles but the vast majority of which are proprietary. The idea is to present to the user only newly discovered devices that the central understands and connect automatically to those the user has already opted to connected to. The users are not tech-savvy and know nothing about Bluetooth.
It would be advantageous (at least for these needs) if the scan results could be filtered. For example, I want to only receive connectable advertisements/scan responses that have one of a list of service UUIDs or whose name contains a certain string or whose manufacturer data contains certain sets of masked byes. IN my case I am looking for these values in the adv and or scan response.
Of course it is possible to do this filtering on the scanResults received at the application level but in a location where there are floods of advertisements coming from all kinds of junk (such as in an apartment building) the library would be able to block the unwanted material at a lower level, and depending upon the platform and BTLE chip, maybe even in hardware. This would increase efficiency.
It would also be convenient to knock off duplicates by address. Of course, that would only work if the scanner is run periodically (say for 12 seconds) and then restarted resetting the duplicate filter, otherwise a device would be permanently blocked once seen.
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Non sono indicati file o test. Inizia individuando i punti di ingresso di aioble e della scansione Bluetooth a basso livello, quindi esamina come i risultati della scansione espongono gli annunci e le risposte alla scansione; definisci gli input di filtraggio supportati e il comportamento dei duplicati per indirizzo prima dell’implementazione. Il completamento deve essere dimostrato con una copertura per i filtri richiesti e per la semantica del ripristino dei duplicati nelle scansioni periodiche.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- python
- Ambito
- embedded-iot
- Tipo di issue
- Funzionalità
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Stato di attività
- Ferma
- Chiarezza
- Da chiarire
- Idoneità per principianti
- 35/100