Closed cha99cg closed 3 months ago
bluetoothctl -v
i'm using bleak to just recover distance every 50ms in fact the recovery is in 200ms or more. the distance is between two shields NXP.
i did a script to just display the real distance like this
import asyncio import timeit from bleak import BleakScanner from bleak.backends.scanner import AdvertisementData import csv output = 'Recup_Data.csv' from bleak.backends.scanner import AdvertisementData with open(output, 'w', newline='') as f: writer = csv.writer(f) writer.writerow(["Counter", "Distance","Adresse MAC"]) last_counter = None timeit.timeit(lambda: "-".join(map(str, range(100))), number=10000) async def get_advertisement_data_between_macs(): def detection_callback(device, advertisement_data: AdvertisementData): global last_counter if (advertisement_data.local_name == "W"): print(advertisement_data) print(advertisement_data.manufacturer_data[0xFFFF]) counter = advertisement_data.manufacturer_data[0xFFFF][0] + (advertisement_data.manufacturer_data[0xFFFF][1] << 8) print("Compteur :",counter) if counter != last_counter : last_counter = counter Mac_adrr = advertisement_data.manufacturer_data[0xFFFF][2:9] mac_address_str = ':'.join(f'{b:02x}' for b in Mac_adrr) print("MAC Address :",mac_address_str ) Distance = advertisement_data.manufacturer_data[0xFFFF][9] + (advertisement_data.manufacturer_data[0xFFFF][10] ) print("Distance : " , Distance) with open(output, 'a', newline='') as f: writer = csv.writer(f) writer.writerow([counter, Distance, mac_address_str]) async with BleakScanner(detection_callback, scanning_mode ='passive') as scanner: while True: await asyncio.sleep(0.05) asyncio.run(get_advertisement_data_between_macs())
every 200ms there is a new distance but i want iin every 50ms
bluetoothctl -v
) in case of Linux:Description
i'm using bleak to just recover distance every 50ms in fact the recovery is in 200ms or more. the distance is between two shields NXP.
What I Did
i did a script to just display the real distance like this
Logs
every 200ms there is a new distance but i want iin every 50ms