Как читать Bluetooth Low Energy RSSI в Java не Android

У меня есть Bluetooth с низким энергопотреблением USB, который основан на TI CC2540, все, что мне нужно сделать, это сканировать значения RSSI с других маяков с помощью моего компьютера и сохранять его в базе данных (Mysql и т. Д.), Есть ли библиотека Java, которая делает этот? Я знаю, как сделать это в Android, но мне нужно сделать это на моем компьютере, работающем под Windows

3 ответа

Я работал на платформе Linux с похожим приложением.

Первая C-программа, которая ищет устройства с поддержкой BLE через терминал. Убедитесь, что вы установили bluez и btmon

    strcpy( command, "sudo ./btmon & hcitool lescan" );
    system(command);

скомпилируйте и запустите файл из Java и прочитайте InputStream из консоли.

        ProcessBuilder builder = new ProcessBuilder("/beacon");
        builder.redirectErrorStream(true);
        Process process = builder.start();
        InputStream is = process.getInputStream();
        BufferedReader reader = new BufferedReader(new InputStreamReader(is));

Вы получаете поток данных, можете искать значения RSSI и экспортировать их в свою базу данных.

Bluetooth Low Energy API для Windows 7.0 задает аналогичный вопрос. К сожалению, ответ, похоже, заключается в том, что только Windows 8 (не более старые версии) поддерживает BLE.

Попробуйте эту библиотеку:

https://github.com/movisens/SmartGattLib

Из ReadMe:

"SmartGattLib - это библиотека Java, которая упрощает работу с устройствами Bluetooth SMART (также известными как Bluetooth Low Energy в Bluetooth 4.0). Она предоставляет все идентификаторы UUID принятой спецификации GATT и удобный способ интерпретации характеристик (например, Heart Rate, BatteryLevel)".

Другие вопросы по тегам