Близость iBeacons ненадежна

Некоторое время назад я купил три маяка для проекта, над которым работаю. Я хочу знать, к какому маяку я ближе всего и на каком расстоянии (например, от 0 до 2 метров).

У меня есть следующий код, использующий Core Location: (урезанный)

- (void)locationManager:(CLLocationManager *)manager didRangeBeacons:(NSArray *)beacons inRegion:(CLBeaconRegion *)region
{
    NSLog(@"beacons %@", beacons);
}

что вроде работает, я заносил свои маяки в журнал. Сортировка по расстоянию. Но даже когда у меня рядом только один маяк. (например, примерно в 50 см от моего устройства) близость меняется с непосредственной на ближнюю и дальнюю. Он просто «прыгает».

Есть ли способ сделать это точнее? В моем коде теперь есть проверка, где я проверяю, изменилось ли расстояние хотя бы один раз, прежде чем «подтвердить» изменение. Но даже тогда близость глючит.


person Matthijn    schedule 25.04.2014    source источник
comment
какую марку и модель маяка вы используете?   -  person davidgyoung    schedule 26.04.2014


Ответы (2)


Удивительно, что он так скачет. Вы держите устройство в руках или оно неподвижно лежит на столе? Теоретически радиосигнал не должен становиться существенно сильнее или слабее без причины. Возможно, что-то в вашем окружении мешает.

CLBeacon* предоставляет свойство NSInteger rssi. Это индикатор уровня принимаемого сигнала радиобуя. Вы можете отслеживать это с помощью таймера, чтобы увидеть мощность необработанного сигнала в реальном времени, однако затем вам придется написать свой собственный алгоритм для определения корреляции между RSSI и близостью.

Тем не менее, это может быть интересным упражнением, чтобы увидеть, как взаимодействие с устройством или окружающей средой увеличивает или уменьшает мощность сигнала.

person wjl    schedule 25.04.2014

Я видел некоторое мгновенное / близкое дрожание, но не сразу / близко / далеко, как вы описываете. Похоже, у вас плохой маяк. (или потеря связи на антенне Bluetooth на вашем iDevice ... Или, может быть, Apple сломала API iBeacon в недавнем выпуске.)

Какое устройство вы используете, какую версию iOS, на каком iDevice

person Duncan C    schedule 25.04.2014
comment
У меня iPhone 5S с последней версией iOS (7.1.1) и три BLEep beacon. - person Matthijn; 26.04.2014