Tässä on toinen näkökohta, joka puuttuu muista vastauksista. Core BLE -määrityksen mukaan n vain yksi mainoskanava tarkastellaan jokaisen scanInterval: n aikana ja sitä kierretään seuraavaan 3 kanavaan jokaisella aikavälillä. Joten jos kyseisellä kanavalla on radiotaajuushäiriöitä, et ehkä näe laitetta, vaikka skannausikkuna olisi yhtä suuri kuin scanInterval jatkuvan skannauksen suorittamiseksi.
BLE-oheislaite, joka tekee mainontaa, pyörii normaalisti kaikkien kolmen mainoskanavan läpi peräkkäin erittäin nopeasti jokaisen mainosjakson ajan. Joten parhaalla keskitetyllä laitteen skannausalgoritmilla olisi lyhyemmät ikkunat ja intervallit kunkin mainoskanavan peräkkäisen tarkistamisen kannalta. Apple käyttää ilmeisesti 30 ms: n skannausikkunaa 40 ms: n skannausintervallilla iOS: ssä etualalla olevien sovellusten kanssa. Tämä tarkoittaa, että jokainen mainoskanava tarkistetaan 40 ms: n välein. BLE-ydinmäärityksen mukaan:
Jokainen mainostapahtuma koostuu yhdestä tai useammasta lähetetystä mainonnan PDU: sta
käytetty mainoskanavaindeksejä. Mainostapahtuma suljetaan tämän jälkeen
yksi mainostettu PDU on lähetetty kullekin käytetylle mainoskanavalle
indeksit (katso kohta 4.4.2.1) tai mainostaja voi sulkea mainostapahtuman
aikaisemmin muiden toimintojen mukauttamiseksi.
Toinen erittäin tärkeä näkökohta on htaako oheislaite asettamaan mainosväli, joka on suhteellisen ensisijainen verrattuna keskuslaitteen scanIntervaliin. Siksi Apple määrittelee tietyt mainosvälit. Jos valitsisit 100 ms: n skannausvälin ScanWindow-ikkunalla, joka oli pienempi, esimerkiksi 80 ms ja jonka mainosväli oli 1000 ms (1 sekunti), voit epäonnistua ja mainostaa aina 20 ms: n aikana, kun keskuslaite ei skannannut jokaisen skannausvälin aikana. Todellisuudessa BLE-ydinspesifikaatio lisää mainosväliin satunnaisen 0-10 ms: n, mikä auttaa estämään täydellisen umpikujan, mutta se on todella tehty enemmän, jotta vältetään useiden lähes samaan aikaan mainostavien laitteiden häiritseminen toisiinsa ikuisesti.
Kaikille ohjaamattomille mainostapahtumille tai yhdistettävälle suunnatulle mainonnalle
tapahtumia, joita käytetään matalan käyttöjakson tilassa, kahden aloituksen välinen aika
peräkkäin
mainostapahtumat (T_advEvent) lasketaan seuraavasti jokaiselle
mainostapahtuma:
T_advEvent = advInterval + advDelay
AdvInterval-arvon on oltava 0,625 ms: n kokonaislukukerroin välillä 20 ms
10,24 s. Jos mainostapahtumatyyppi on joko skannattava ohjaamaton
tapahtuma
-tyyppinen tai yhdistämätön ohjaamaton tapahtumatyyppi, advInterval ei ole
alle 100 ms. Jos mainostapahtumatyyppi on yhdistämätön ohjaamaton
tapahtumityyppi tai yhdistettävä ohjattavan tapahtuman tyyppi, jota käytetään matalan käyttöjakson tilassa,
advInterval voi olla 20 ms tai suurempi.
The advDelay on näennäissatunnaisarvo, jonka alue on 0–10 ms
linkkikerroksella jokaiselle mainostapahtumalle.
Ajattele, että sinulla on kaksi taajuutta lähellä toisiaan ja miten saat niiden välisen tahdin taajuuden. Juuri näin voi tapahtua scanIntervalin ja mainosvälin välillä. Apple teki kunnollista työtä asetuksillaan, joten standardien noudattaminen ei toimisi vain iOS: n lisäksi myös Androidille. Applen etualalla oleva 30 ms: n etsintätila Ikkuna 40 ms: n skannausintervallilla tarkoittaa, että 1022,5 ms: n perusmainontavälillä laite näkyy 1 sekunnissa noin 3 / 4s ajanosasta ja aina 2 sekunnin kuluessa, olettaen, ettei mainospakettia peitä RF-häiriöitä . Taustatilassa, jossa on 30 ms: n scanWindow ja 300 ms: n scanInterval, mediaani-aika muuttuu 5 sekunniksi ja tavallisesta maksimista tulee 19 sekuntia, vaikka satunnaisten siirtymien erittäin huonolla onnella se voi olla hieman pidempi.
https://developer.apple.com/hardwaredrivers/BluetoothDesignGuidelines.pdf
Applen suosittelemat oheislaitteiden mainosvälit ovat 152,5, 211,25, 318,75, 417,5, 546,25, 760, 852,5, 1022,5, 1285 ms.