我想获得“A& D UA-651BLE”设备的HRM值。 这是用于获取HRM值的设备数据表中的内容:
- 将应用程序设置为配对模式以开始扫描。
- 按照每个使用说明书开始配对A& D BLE设备。
- 在配对模式下,应用程序应设置时间和日期以及任何其他设备设置 到A& D BLE设备。配对成功后,A& D BLE设备在屏幕上显示“结束”。
- 进行测量并完成测量,然后A& D BLE设备启动BLE 与广告的联系。应用程序以适当的间隔开始扫描 该应用程序尽快捕获A& D BLE设备的广告。
- 在初始连接或配对时,应用程序将“2”设置为CCCD(客户端特性 配置描述符)使A& D BLE设备发送测量数据 指示。
- A& D设备识别出设置为“2”到CCCD并同步时间和日期 连接后5秒内,使用Indication发送数据。
- 如果超时设置CCCD和时间和日期到期,A& D BLE设备将不会发送数据 并将数据存储在内存中。 A& D BLE设备中存储的数据可以接下来发送 成功的联系。
醇>
这是我的服务代码:
public void setCharacteristicNotification(BluetoothGattCharacteristic characteristic,
boolean enabled) {
if (mBluetoothAdapter == null || mBluetoothGatt == null) {
Log.w(TAG, "BluetoothAdapter not initialized");
return;
}
mBluetoothGatt.setCharacteristicNotification(characteristic, enabled);
// This is specific to Heart Rate Measurement.
if (UUID_HEART_RATE_MEASUREMENT.equals(characteristic.getUuid())) {
BluetoothGattDescriptor descriptor = characteristic.getDescriptor(
UUID.fromString(SampleGattAttributes.CLIENT_CHARACTERISTIC_CONFIG));
descriptor.setValue(BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE);
mBluetoothGatt.writeDescriptor(descriptor);
}
}
这是读取数据的方法:
final byte[] data = characteristic.getValue();
if (data != null && data.length > 0) {
final StringBuilder stringBuilder = new StringBuilder(data.length);
for(byte byteChar : data)
stringBuilder.append(String.format("%02X ", byteChar));
Log.e("HRM value",stringBuilder.toString());
dataComposition.put(characteristic.getUuid().toString(),stringBuilder.toString());
intent.putExtra(EXTRA_DATA,dataComposition);
}
问题是这段代码没有返回任何数据!!
答案 0 :(得分:4)
Google样本代码不包含RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /test\.php\?whatever=([^\&\ ]+)
RewriteRule ^/?test\.php$ /test/%1? [L,R=301]
和import requests
import requests.auth
import json
def assign(key, name):
url = "http://xxx/rest/api/2/issue/" + key
headers = {'Content-type': 'application/json', 'Accept': 'application/json'}
data = json.dumps({"fields": {"assignee": {"name": name}}})
r = requests.put(url, data=data, headers=headers, auth=requests.auth.HTTPBasicAuth('fred', 'fred'))
print(r.status_code)
print(r.json())
的方法。
在您的情况下,您必须首先写入时间值,将write
值更改为2,然后设备将向您发送HRM值。要做到这一点,你可以在这个repository写入和指示方法中找到它,你只需将它们集成到你的代码中。
答案 1 :(得分:3)
有一个Android Open Source Project example可以做到这一点,最简单的选择是克隆android-BluetoothLeGatt code,构建并将其与您自己的比较。如果您无法发现差异/问题,只需部署应用程序并逐步执行这两组代码。拥有一些已知的工作代码也有助于排除HRM无法正常运行的可能性。
答案 2 :(得分:0)
你有和例子,我尝试使用相同的设备,我无法获得信息和尝试
public String response() {
if (mConnected) {
mBluetoothLeService.readCharacteristic(characteristica);
byte response[] = characteristica.getValue();
String respuesta = ReadBytes(response);
mBluetoothLeService.disconnect();
return respuesta;
} else {
return null;
}
}