Asynchronní komunikace s BLE zařízením pomocí knihovny Bleak
Soubor Ble.py umožňuje automatizovanou komunikaci s BLE zařízením.
Pravidelně kontroluje řídicí soubory v /home/host/FTP/ramdisk/ a podle nich odesílá
příkazy do BLE zařízení. Po obdržení odpovědi uloží textový výsledek do výstupních souborů.
ADDRESS = "2C:CF:67:EF:1D:0A"
WRITE_CHAR_ID = "0000FF15-0000-1000-8000-00805F9B34FB"
WRITE_CHAR_ID2 = "0000FF11-0000-1000-8000-00805F9B34FB"
Skript reaguje na existenci souborů v RAMdisku:
| Soubor | Kód | BLE příkaz | Výstup |
|---|---|---|---|
| S | 0x53 | *S | Sresp.txt |
| U | 0x55 | *U | Uresp.txt |
| H | 0x48 | *H | Hresp.txt |
| R | 0x52 | *R | Rresp.txt |
| Sreq | 0x2F | *0000000# | State.txt |
| Quit | 0x51 | Ukončení skriptu | — |
Ukládá notifikace BLE do fronty.
Načte textový příkaz ze souboru Sreq.
Určí typ příkazu podle existujících souborů.
Odstraní řídicí soubor po úspěšném zpracování.
Uloží odpověď BLE do správného výstupního souboru.
Spustí asynchronní BLE komunikaci.
Zastaví smyčku komunikace.
Hlavní funkce skriptu – zajišťuje připojení, smyčku komunikace, čtení odpovědí, zápis a odpojení zařízení.
GetWhatScan()
↓
Odeslání BLE příkazu
↓
Čtení odpovědi
↓
WriteFileResp()
↓
RemoveWhatScan()
from Ble import start_call_ble
from queue import Queue
q = Queue()
start_call_ble("2C:CF:67:EF:1D:0A", q)
RemoveWhatScan() je špatná cesta:
os.remove('\\home\\host\\FTP\\ramdisk\\S')
správně má být:
os.remove('/home/host/FTP/ramdisk/S')
asyncio.sleep().Soubor Ble.py poskytuje plně automatizovanou BLE komunikaci řízenou souborovým systémem. Je vhodný pro průmyslové aplikace, testovací systémy i diagnostiku. Dokumentace obsahuje kompletní popis funkcí, toku programu i výstupů.