Как читать 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)".