Eddystone, что означает getBeaconAdvertisingData (маяк)? - PullRequest
0 голосов
/ 31 мая 2018

У меня есть Eddystone, и я хочу получить значения акселерометра, но я не знаю, как действовать ... Я видел, чтобы мы могли получить данные от маяка с

beacon.getExtraDataFields()

, но в моем случаевозвращаемое значение пусто, даже если я активировал излучение акселерометра в своем Eddistone. Итак, я увидел этот пост: Получение пакетных данных, передаваемых с iBeacon android

, но мое возвращаемое значение выглядит так: c03be53 и яне знаю, что это значит ... Не могли бы вы помочь мне получить данные акселерометра?

Вот мой код:

 ArrayList<BeaconParser> beaconParsers = new ArrayList<BeaconParser>();

        beaconParsers.add(new BeaconParser().setBeaconLayout(EDDYSTONE_UID_LAYOUT));

        Beacon beacon = null;
        for (BeaconParser parser : beaconParsers) {
            beacon = parser.fromScanData(scanRecord,
                    rssi, device);

            if (beacon != null) {
                if (beacon.getServiceUuid() == 0xfeaa) {
                    // This is Eddystone, which uses a service Uuid of 0xfeaa
                    Identifier eddystoneNamespaceId = beacon.getId1();
                    Identifier eddystoneInstanceId = beacon.getId2();

                    WirelessDevice wirelessDevice = new WirelessDevice(null, beacon.getRssi(), null, eddystoneNamespaceId.toString());
                    mainActivity.addDevice(wirelessDevice);


                    byte[] bytes = parser.getBeaconAdvertisementData(beacon);

Спасибо

1 Ответ

0 голосов
/ 31 мая 2018

Не существует стандартного способа передачи данных акселерометра с любым форматом Eddystone, включая Eddystone-TLM.Eddystone-TLM включает в себя поле для температуры маяка, но не для показаний акселерометра.

В документации по BNBeacon, связанной в комментарии под вопросом, в этом утверждении упоминается только акселерометр: «Intègre un accéléromètre, un vibreuret un buzzer 90 dB "Нет документации о том, что делает акселерометр (возможно, он просто включает маяк?), или даже если его выходной сигнал датчика вообще открыт.Возможно, что выход может быть каким-то образом закодирован в стандартное поле маяка нестандартным способом.Но без дальнейшей документации производителя это только предположение. Как получить доступ к данным акселерометра, вероятно, придется ответить производителю.

parser.getBeaconAdvertisementData(beacon); просто вернет необработанных байтов пакета маяка. Предназначен для использования радиобуями , а не для общего доступа к данным. К той же информации проще получить доступ, используя одно из проанализированных полей , например beacon.getId1(), beacon.getId2(), beacon.getDataFields().get(0) и т. Д. Эти последние методы доступа предоставляют доступ к проанализированным полям макета маяка..

...