BLE Температура маяка - PullRequest
0 голосов
/ 12 февраля 2019

У меня есть маяк Bluetooth, который излучает температуру и влажность.Я создал приложение для Android, которое может получать данные от маяка, такие как идентификатор, адрес и т. Д.

Но оно не показывает значение температуры.Как это сделать?Нужно ли добавлять какие-либо дополнительные методы, функции, переменные?

Код прилагается ниже.Заранее спасибо

tx1.setText("ID1:"+beacon.getId1());
                tx2.setText("ID2: "+beacon.getId2());
                tx3.setText("ID3: "+beacon.getId3());
                tx5.setText("BLE Addr: "+beacon.getBluetoothAddress());
                tx6.setText("Distance: "+beacon.getDistance());
                tx7.setText("Manufacturer: "+beacon.getManufacturer());
                tx8.setText(""+beacon.getDataFields());
                Log.d("beacon123",""+beacon.getDataFields());
                String b= String.valueOf(beacon.getDataFields());
                Toast toastt = Toast.makeText(context,"" +b, duration);
                toastt.show();

Я читаю маяк через приложение для Android nRF, которое показывает следующие данные

Идентификационные данные

Идентификатор производителя Температура

1 Ответ

0 голосов
/ 12 февраля 2019

Здесь может быть несколько проблем.

  • Метод beacon.getDataFields() возвращает массив.Попробуйте получить первое поле данных с помощью beacon.getDataFields().get(0)

  • Убедитесь, что ваш маяк либо поддерживает формат AltBeacon и имеет температуру, закодированную в последнем байте передачи, либо вы создаете BeaconParser.с форматом вашего маяка.

  • Если вы используете формат Eddystone, вам необходимо убедиться, что телеметрия включена, BeaconParser настроен для Eddystone-TLM, затем температура доступа от g etExtraDataFields()

...