- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我通过 Android 的 Nordic 库 thingylib
( github ) 连接到 thingy52 并在回调监听器 ThingyListener
中接收有关设备的信息 (例如 onGravityVectorChangedEvent
、onAccelerometerValueChangedEvent
、onGyroscopeValueChangedEvent
等等...)。
我不能做的(而且我找不到如何做)是如何获取有关与设备连接的信息,确切地说是 RSSI 值。
使用 BluetoothLeScannerCompat ,在 onBatchScanResults
扫描回调中,我检测到 thingy52 蓝牙设备及其 RSSI 值,但是如果我设置高扫描频率,例如 .setReportDelay(10)
,它几乎总是检测不到设备。
我是如何进行扫描的:
private void startBLEScan() {
// set scan
ScanSettings scanSettings = new ScanSettings.Builder()
.setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY)
.setReportDelay(10) // set frequency
.setUseHardwareBatchingIfSupported(false)
.build();
// filter scan by uuid
List<no.nordicsemi.android.support.v18.scanner.ScanFilter> filters = new ArrayList<>();
filters.add(new ScanFilter.Builder().setServiceUuid(new ParcelUuid(ThingyUtils.THINGY_BASE_UUID)).build());
// start scan, this will trigger the scanCallback
BluetoothLeScannerCompat scanner = BluetoothLeScannerCompat.getScanner();
scanner.startScan(filters, scanSettings, scanCallback);
}
private final ScanCallback scanCallback = new ScanCallback() {
@Override
public void onBatchScanResults(@NonNull List<ScanResult> results) {
super.onBatchScanResults(results);
for(ScanResult result : results) {
result.getRssi(); // read RSSI values
}
}
};
我需要以 10Hz
或 100Hz
的频率获取 nordic thingy52 的 RSSI 值,我无法从 ThingyListener 获取
事件。
我该怎么做?提前谢谢你。
我的 ThingyListener 示例:
private ThingyListener mThingyListener = new ThingyListener() {
@Override
public void onGravityVectorChangedEvent(BluetoothDevice bluetoothDevice, float x, float y, float z) {
// Here I got the data from device... but no RSSI value
};
最佳答案
最后我是这样解决的:
我不使用 ScannerCompact
,而是使用 BluetoothGATT
:
当我将 nordic 链接到 ThingyLibSdkManager
时,我还将它链接到 GATT
:
ThingyListenerHelper.registerThingyListener(getApplicationContext(), mThingyListener, device);
mBluetoothGatt = device.connectGatt(getApplicationContext(), true, gattCallback);
这样,在 mThingylistener
中,我现在可以请求 rssi
:
@Override
public void onGyroscopeValueChangedEvent(BluetoothDevice bluetoothDevice, float x, float y, float z) {
collectedData.put("onGyroscopeValueChangedEvent_x", x + "");
collectedData.put("onGyroscopeValueChangedEvent_y", y + "");
collectedData.put("onGyroscopeValueChangedEvent_z", z + "");
// request rssi from gatt
mBluetoothGatt.readRemoteRssi();
}
现在,以异步方式,您将收到 mBluetoothGatt
中的回调:
@Override
public void onReadRemoteRssi(BluetoothGatt gatt, int rssi, int status) {
// do some stuff
}
关于java - 无法从 BLE nordic thingy :52 检索 RSSI 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60295545/
使用Docker,如果我想检查一个没有 shell 的运行容器,则可以运行如下代码: docker run --net=container:thingie --pid=container:thingi
有人能够为以下内容提供链接、建议或其他形式的帮助吗? 目标 - 使用 python 对 10 秒音频样本进行分类,以便之后我可以对着麦克风说话,并让 python 从数据库中挑选并播放最接近匹配的片段
我有一个表单,其中检查输入字段的值,然后使用 typewatch 插件(一个小东西,检测用户在预定义的时间间隔后停止输入)进行 Ajax 调用。效果很好。 由于此字段是订单中的“优惠券折扣”,因此可以
我想要在操作栏中有一个共享图标,按下后会出现一个选择器。我已经准备好了大部分内容,但是这个不受欢迎的中间人介入了...... 菜单: SherlockFragment 的 onC
我使用此代码的目标是,当您输入某个数字时,系统会根据您键入的内容打印该数字和一些其他输出。出于某种原因,我这里给出的错误是“ValueError:格式不完整”。它与百分比有关。该错误是什么意思,我该如
我通过 Android 的 Nordic 库 thingylib ( github ) 连接到 thingy52 并在回调监听器 ThingyListener 中接收有关设备的信息 (例如 onGra
我是一名优秀的程序员,十分优秀!