Víc spojení najednou
Centrála může držet desítky spojení současně — a protože je BLE plánované, není to soutěž o médium jako u Wi-Fi. Je to rozvrh, a rozvrh má pevnou kapacitu.
Jedna schůzka s dvěma pakety trvá kolem 1,2 ms. Do třicetimilisekundového intervalu se tedy vejde asi dvacet pět spojení — a to je opravdový strop, ne odhad. Nad ním centrála buď spojení odmítne, nebo některým prodlouží interval, aniž by se koho ptala.
Tři důsledky pro návrh
- Krátký interval je drahý dvakrát. Nejen na baterii periferie, ale i na kapacitě centrály. Šest zařízení po 7,5 ms zabere centrálu úplně.
- Vyjednaný interval se může změnit. Periferie požádá o 30 ms, dostane 30 ms, a při připojení dalších deseti zařízení jí ho centrála prodlouží na 120. Aplikace o tom musí vědět — zpoždění se právě zečtyřnásobilo.
- Míchat rychlá a pomalá spojení jde dobře. Rychlé zařízení s intervalem 15 ms a deset pomalých po sekundě se vejdou snadno; deset rychlých ne. Rozvrh se plní součtem podílů, ne počtem zařízení.
Co dělá skutečný řadič
Rozvrhování je jediná část BLE, kterou specifikace nepředepisuje — každý výrobce si ho dělá po svém a nikdo ho nezveřejňuje. Proto se strop v datasheetech uvádí jako „až 20 spojení“ a v praxi to znamená „dvacet, pokud jsou pomalá“.
Tahle labka počítá ideální rozvrh bez rezerv. Reálný řadič si nechává místo na inzerci, skenování a na vlastní režii, takže skutečná kapacita bývá o třicet až padesát procent nižší. Je to řečeno nahlas, protože přesnější číslo by bylo vymyšlené.
A jedna věc, která překvapí: spojení se nemusí vejít do téhož intervalu — každé má svůj vlastní. Centrála je skládá tak, aby se schůzky nepřekrývaly, a když se to nedaří, posune některým „kotvu“. Proto se občas stane, že se latence jednoho spojení skokem změní, aniž by se cokoli nastavovalo: rozvrh se přeskládal kvůli někomu jinému.