Таким образом, есть несколько проблем:
Вам нужно передать параметры во второй вызов pizzaPrice()
следующим образом
pizzaPrice(width, length, priceRect);
Вам нужно хранить результаты вызовов методов в переменных типа
pricePerInchRound = pizzaPrice(a, b);
pricePerInchRect = pizzaPrice(a, b, c);
Не уверен, что API позволит вам делать, но команда Bluetooth Host Controller Interface (HCI), лежащая в основе этой команды, является «командой запроса»
. Это позволит вам запросить информацию об устройствах либо фиксированное время и / или фиксированное количество ответов.
Я новичок Bluetooth, не эксперт, но ...
Чтобы получить хотя бы 1 ответ от устройства Bluetooth, находящегося в режиме низкого энергопотребления, требуется 1,28 секунд, поэтому время запроса умножается на этот период максимум до 61,44 секунды (48 периодов), поэтому диапазон времени составляет от 1 (1,28 секунды) до 48 (61,44 секунды).
Хотя может быть несколько устройств, которые могли бы отвечать за один период в 1.28 секунды.
Вы также можете указать количество принятых ответов (1..255) или 0 для неограниченного времени, например, до истечения времени.
Вы также можете отменить запрос, если вы нашли конкретное устройство, которое искали.
Ненаучный тест с моего стола с использованием Bluetooth-чипа CSR с прошивкой Bluetooth 2.1 + EDR, выполняющего запрос на чип с выходом отладки через чип UART. Выполнил каждый запрос 10 раз и получил среднее значение результатов:
Я говорю «уникальные», на самом деле результаты повторяют множество одних и тех же адресов снова и снова, хотя это может зависеть от реализации, а Apple API может возвращать только уникальные адреса.
Тем не менее, это не является представителем «реального мира», так как большинство устройств Bluetooth (мой офис) не находятся в режиме низкого энергопотребления. Я думаю, я мог бы отфильтровать ПК, ноутбуки и наборы тестов по классу устройств. Это позволило бы получить мобильные телефоны, гарнитуры, которые можно было обнаружить и т. Д.
Запрос также можно комбинировать с RSSI, чтобы получить устройства с самым сильным сигналом, но они не обязательно могут быть ближайшими.
Для вашего сценария вы можете хотите сделать запрос на основе времени и количества устройств, например 4 * 1,28 секунды или 10 устройств.
Подводя итог: Самое короткое время, за которое вы можете сделать запрос, составляет 1,28 секунды, и это может получить 10 +/-? устройства в зоне действия, если они не спят и находятся поблизости.
Если у вас насыщенная среда Bluetooth или (микроволновая печь идет в той же комнате), поиск всех устройств в радиусе действия может занять больше времени.