mirror of
https://github.com/malmeloo/FindMy.py.git
synced 2026-04-17 21:53:57 +02:00
scanner: detect OF devices in Nearby state
This commit is contained in:
@@ -1,11 +1,36 @@
|
||||
import asyncio
|
||||
import logging
|
||||
|
||||
from findmy.scanner import OfflineFindingScanner
|
||||
from findmy.scanner import (
|
||||
NearbyOfflineFindingDevice,
|
||||
OfflineFindingScanner,
|
||||
SeparatedOfflineFindingDevice,
|
||||
)
|
||||
|
||||
logging.basicConfig(level=logging.INFO)
|
||||
|
||||
|
||||
def _print_nearby(device: NearbyOfflineFindingDevice) -> None:
|
||||
print(f"NEARBY Device - {device.mac_address}")
|
||||
print(f" Status byte: {device.status:x}")
|
||||
print(" Extra data:")
|
||||
for k, v in sorted(device.additional_data.items()):
|
||||
print(f" {k:20}: {v}")
|
||||
print()
|
||||
|
||||
|
||||
def _print_separated(device: SeparatedOfflineFindingDevice) -> None:
|
||||
print(f"SEPARATED Device - {device.mac_address}")
|
||||
print(f" Public key: {device.adv_key_b64}")
|
||||
print(f" Lookup key: {device.hashed_adv_key_b64}")
|
||||
print(f" Status byte: {device.status:x}")
|
||||
print(f" Hint byte: {device.hint:x}")
|
||||
print(" Extra data:")
|
||||
for k, v in sorted(device.additional_data.items()):
|
||||
print(f" {k:20}: {v}")
|
||||
print()
|
||||
|
||||
|
||||
async def scan() -> None:
|
||||
scanner = await OfflineFindingScanner.create()
|
||||
|
||||
@@ -13,15 +38,13 @@ async def scan() -> None:
|
||||
print()
|
||||
|
||||
async for device in scanner.scan_for(10, extend_timeout=True):
|
||||
print(f"Device - {device.mac_address}")
|
||||
print(f" Public key: {device.adv_key_b64}")
|
||||
print(f" Lookup key: {device.hashed_adv_key_b64}")
|
||||
print(f" Status byte: {device.status:x}")
|
||||
print(f" Hint byte: {device.hint:x}")
|
||||
print(" Extra data:")
|
||||
for k, v in sorted(device.additional_data.items()):
|
||||
print(f" {k:20}: {v}")
|
||||
print()
|
||||
if isinstance(device, NearbyOfflineFindingDevice):
|
||||
_print_nearby(device)
|
||||
elif isinstance(device, SeparatedOfflineFindingDevice):
|
||||
_print_separated(device)
|
||||
else:
|
||||
print(f"Unknown device: {device}")
|
||||
print()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
Reference in New Issue
Block a user